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

#ifndef phonemetadata_2eproto_2epb_2eh
#define phonemetadata_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_phonemetadata_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_phonemetadata_2eproto {
  static const ::uint32_t offsets[];
};
namespace i18n {
namespace phonenumbers {
class NumberFormat;
struct NumberFormatGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern NumberFormatGlobalsTypeInternal NumberFormat_globals_;
extern const ::google::protobuf::internal::ClassDataLite NumberFormat_class_data_;
#else
extern const NumberFormatGlobalsTypeInternal NumberFormat_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PhoneMetadata;
struct PhoneMetadataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PhoneMetadataGlobalsTypeInternal PhoneMetadata_globals_;
extern const ::google::protobuf::internal::ClassDataLite PhoneMetadata_class_data_;
#else
extern const PhoneMetadataGlobalsTypeInternal PhoneMetadata_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PhoneMetadataCollection;
struct PhoneMetadataCollectionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PhoneMetadataCollectionGlobalsTypeInternal PhoneMetadataCollection_globals_;
extern const ::google::protobuf::internal::ClassDataLite PhoneMetadataCollection_class_data_;
#else
extern const PhoneMetadataCollectionGlobalsTypeInternal PhoneMetadataCollection_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PhoneNumberDesc;
struct PhoneNumberDescGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PhoneNumberDescGlobalsTypeInternal PhoneNumberDesc_globals_;
extern const ::google::protobuf::internal::ClassDataLite PhoneNumberDesc_class_data_;
#else
extern const PhoneNumberDescGlobalsTypeInternal PhoneNumberDesc_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace phonenumbers
}  // namespace i18n
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace i18n {
namespace phonenumbers {

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


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

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PhoneNumberDesc final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:i18n.phonenumbers.PhoneNumberDesc) */ {
 public:
  inline PhoneNumberDesc() : PhoneNumberDesc(nullptr) {}
  ~PhoneNumberDesc() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PhoneNumberDesc* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PhoneNumberDesc));
  }
#endif

  template <typename = void>
  explicit constexpr PhoneNumberDesc(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PhoneNumberDesc(const PhoneNumberDesc& from) : PhoneNumberDesc(nullptr, from) {}
  inline PhoneNumberDesc(PhoneNumberDesc&& from) noexcept : PhoneNumberDesc(nullptr, ::std::move(from)) {}
  inline PhoneNumberDesc& operator=(const PhoneNumberDesc& from) {
    CopyFrom(from);
    return *this;
  }
  inline PhoneNumberDesc& operator=(PhoneNumberDesc&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const PhoneNumberDesc& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PhoneNumberDesc>(&PhoneNumberDesc_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(PhoneNumberDesc& a, PhoneNumberDesc& b) { a.Swap(&b); }
  inline void Swap(PhoneNumberDesc* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PhoneNumberDesc* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PhoneNumberDesc* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<PhoneNumberDesc>(arena);
  }
  void CopyFrom(const PhoneNumberDesc& from);
  void MergeFrom(const PhoneNumberDesc& from) { PhoneNumberDesc::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PhoneNumberDesc* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "i18n.phonenumbers.PhoneNumberDesc"; }

  explicit PhoneNumberDesc(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PhoneNumberDesc(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PhoneNumberDesc& from);
  PhoneNumberDesc(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PhoneNumberDesc&& from) noexcept
      : PhoneNumberDesc(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kPossibleLengthFieldNumber = 9,
    kNationalNumberPatternFieldNumber = 2,
    kExampleNumberFieldNumber = 6,
    kPossibleLengthLocalOnlyFieldNumber = 10,
  };
  // repeated int32 possible_length = 9;
  [[nodiscard]] int possible_length_size()
      const;
  private:
  int _internal_possible_length_size() const;

  public:
  void clear_possible_length() ;
  [[nodiscard]] ::int32_t possible_length(int index) const;
  void set_possible_length(int index, ::int32_t value);
  void add_possible_length(::int32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::int32_t>& possible_length()
      const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL mutable_possible_length();

  private:
  const ::google::protobuf::RepeatedField<::int32_t>& _internal_possible_length() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL _internal_mutable_possible_length();

  public:
  // optional string national_number_pattern = 2;
  [[nodiscard]] bool has_national_number_pattern()
      const;
  void clear_national_number_pattern() ;
  [[nodiscard]] const ::std::string& national_number_pattern() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_national_number_pattern(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_national_number_pattern();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_national_number_pattern();
  void set_allocated_national_number_pattern(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_national_number_pattern() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_national_number_pattern(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_national_number_pattern();

  public:
  // optional string example_number = 6;
  [[nodiscard]] bool has_example_number()
      const;
  void clear_example_number() ;
  [[nodiscard]] const ::std::string& example_number() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_example_number(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_example_number();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_example_number();
  void set_allocated_example_number(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_example_number() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_example_number(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_example_number();

  public:
  // repeated int32 possible_length_local_only = 10;
  [[nodiscard]] int possible_length_local_only_size()
      const;
  private:
  int _internal_possible_length_local_only_size() const;

  public:
  void clear_possible_length_local_only() ;
  [[nodiscard]] ::int32_t possible_length_local_only(int index) const;
  void set_possible_length_local_only(int index, ::int32_t value);
  void add_possible_length_local_only(::int32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::int32_t>& possible_length_local_only()
      const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL mutable_possible_length_local_only();

  private:
  const ::google::protobuf::RepeatedField<::int32_t>& _internal_possible_length_local_only() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL _internal_mutable_possible_length_local_only();

  public:
  // @@protoc_insertion_point(class_scope:i18n.phonenumbers.PhoneNumberDesc)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 4,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PhoneNumberDesc& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::int32_t> possible_length_;
    ::google::protobuf::internal::ArenaStringPtr national_number_pattern_;
    ::google::protobuf::internal::ArenaStringPtr example_number_;
    ::google::protobuf::RepeatedField<::int32_t> possible_length_local_only_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_phonemetadata_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED NumberFormat final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:i18n.phonenumbers.NumberFormat) */ {
 public:
  inline NumberFormat() : NumberFormat(nullptr) {}
  ~NumberFormat() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(NumberFormat* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(NumberFormat));
  }
#endif

  template <typename = void>
  explicit constexpr NumberFormat(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline NumberFormat(const NumberFormat& from) : NumberFormat(nullptr, from) {}
  inline NumberFormat(NumberFormat&& from) noexcept : NumberFormat(nullptr, ::std::move(from)) {}
  inline NumberFormat& operator=(const NumberFormat& from) {
    CopyFrom(from);
    return *this;
  }
  inline NumberFormat& operator=(NumberFormat&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const NumberFormat& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<NumberFormat>(&NumberFormat_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(NumberFormat& a, NumberFormat& b) { a.Swap(&b); }
  inline void Swap(NumberFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(NumberFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] NumberFormat* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<NumberFormat>(arena);
  }
  void CopyFrom(const NumberFormat& from);
  void MergeFrom(const NumberFormat& from) { NumberFormat::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(NumberFormat* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "i18n.phonenumbers.NumberFormat"; }

  explicit NumberFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  NumberFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const NumberFormat& from);
  NumberFormat(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, NumberFormat&& from) noexcept
      : NumberFormat(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kLeadingDigitsPatternFieldNumber = 3,
    kPatternFieldNumber = 1,
    kFormatFieldNumber = 2,
    kNationalPrefixFormattingRuleFieldNumber = 4,
    kDomesticCarrierCodeFormattingRuleFieldNumber = 5,
    kNationalPrefixOptionalWhenFormattingFieldNumber = 6,
  };
  // repeated string leading_digits_pattern = 3;
  [[nodiscard]] int leading_digits_pattern_size()
      const;
  private:
  int _internal_leading_digits_pattern_size() const;

  public:
  void clear_leading_digits_pattern() ;
  [[nodiscard]] const ::std::string& leading_digits_pattern(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_leading_digits_pattern(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_leading_digits_pattern(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_leading_digits_pattern();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_leading_digits_pattern(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      leading_digits_pattern() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_leading_digits_pattern();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_leading_digits_pattern() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_leading_digits_pattern();

  public:
  // required string pattern = 1;
  [[nodiscard]] bool has_pattern()
      const;
  void clear_pattern() ;
  [[nodiscard]] const ::std::string& pattern() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_pattern(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_pattern();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_pattern();
  void set_allocated_pattern(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_pattern() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_pattern(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_pattern();

  public:
  // required string format = 2;
  [[nodiscard]] bool has_format()
      const;
  void clear_format() ;
  [[nodiscard]] const ::std::string& format() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_format(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_format();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_format();
  void set_allocated_format(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_format() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_format(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_format();

  public:
  // optional string national_prefix_formatting_rule = 4;
  [[nodiscard]] bool has_national_prefix_formatting_rule()
      const;
  void clear_national_prefix_formatting_rule() ;
  [[nodiscard]] const ::std::string& national_prefix_formatting_rule() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_national_prefix_formatting_rule(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_national_prefix_formatting_rule();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_national_prefix_formatting_rule();
  void set_allocated_national_prefix_formatting_rule(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_national_prefix_formatting_rule() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_national_prefix_formatting_rule(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_national_prefix_formatting_rule();

  public:
  // optional string domestic_carrier_code_formatting_rule = 5;
  [[nodiscard]] bool has_domestic_carrier_code_formatting_rule()
      const;
  void clear_domestic_carrier_code_formatting_rule() ;
  [[nodiscard]] const ::std::string& domestic_carrier_code_formatting_rule() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_domestic_carrier_code_formatting_rule(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_domestic_carrier_code_formatting_rule();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_domestic_carrier_code_formatting_rule();
  void set_allocated_domestic_carrier_code_formatting_rule(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_domestic_carrier_code_formatting_rule() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_domestic_carrier_code_formatting_rule(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_domestic_carrier_code_formatting_rule();

  public:
  // optional bool national_prefix_optional_when_formatting = 6 [default = false];
  [[nodiscard]] bool has_national_prefix_optional_when_formatting()
      const;
  void clear_national_prefix_optional_when_formatting() ;
  [[nodiscard]] bool national_prefix_optional_when_formatting() const;
  void set_national_prefix_optional_when_formatting(bool value);

  private:
  bool _internal_national_prefix_optional_when_formatting() const;
  void _internal_set_national_prefix_optional_when_formatting(bool value);

  public:
  // @@protoc_insertion_point(class_scope:i18n.phonenumbers.NumberFormat)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const NumberFormat& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> leading_digits_pattern_;
    ::google::protobuf::internal::ArenaStringPtr pattern_;
    ::google::protobuf::internal::ArenaStringPtr format_;
    ::google::protobuf::internal::ArenaStringPtr national_prefix_formatting_rule_;
    ::google::protobuf::internal::ArenaStringPtr domestic_carrier_code_formatting_rule_;
    bool national_prefix_optional_when_formatting_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_phonemetadata_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PhoneMetadata final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:i18n.phonenumbers.PhoneMetadata) */ {
 public:
  inline PhoneMetadata() : PhoneMetadata(nullptr) {}
  ~PhoneMetadata() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PhoneMetadata* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PhoneMetadata));
  }
#endif

  template <typename = void>
  explicit constexpr PhoneMetadata(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PhoneMetadata(const PhoneMetadata& from) : PhoneMetadata(nullptr, from) {}
  inline PhoneMetadata(PhoneMetadata&& from) noexcept : PhoneMetadata(nullptr, ::std::move(from)) {}
  inline PhoneMetadata& operator=(const PhoneMetadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline PhoneMetadata& operator=(PhoneMetadata&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const PhoneMetadata& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PhoneMetadata>(&PhoneMetadata_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(PhoneMetadata& a, PhoneMetadata& b) { a.Swap(&b); }
  inline void Swap(PhoneMetadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PhoneMetadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PhoneMetadata* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<PhoneMetadata>(arena);
  }
  void CopyFrom(const PhoneMetadata& from);
  void MergeFrom(const PhoneMetadata& from) { PhoneMetadata::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PhoneMetadata* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "i18n.phonenumbers.PhoneMetadata"; }

  explicit PhoneMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PhoneMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PhoneMetadata& from);
  PhoneMetadata(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PhoneMetadata&& from) noexcept
      : PhoneMetadata(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kNumberFormatFieldNumber = 19,
    kIntlNumberFormatFieldNumber = 20,
    kIdFieldNumber = 9,
    kInternationalPrefixFieldNumber = 11,
    kNationalPrefixFieldNumber = 12,
    kPreferredExtnPrefixFieldNumber = 13,
    kNationalPrefixForParsingFieldNumber = 15,
    kNationalPrefixTransformRuleFieldNumber = 16,
    kPreferredInternationalPrefixFieldNumber = 17,
    kLeadingDigitsFieldNumber = 23,
    kGeneralDescFieldNumber = 1,
    kFixedLineFieldNumber = 2,
    kMobileFieldNumber = 3,
    kTollFreeFieldNumber = 4,
    kPremiumRateFieldNumber = 5,
    kSharedCostFieldNumber = 6,
    kPersonalNumberFieldNumber = 7,
    kVoipFieldNumber = 8,
    kPagerFieldNumber = 21,
    kNoInternationalDiallingFieldNumber = 24,
    kUanFieldNumber = 25,
    kEmergencyFieldNumber = 27,
    kVoicemailFieldNumber = 28,
    kShortCodeFieldNumber = 29,
    kStandardRateFieldNumber = 30,
    kCarrierSpecificFieldNumber = 31,
    kSmsServicesFieldNumber = 33,
    kCountryCodeFieldNumber = 10,
    kSameMobileAndFixedLinePatternFieldNumber = 18,
    kMainCountryForCodeFieldNumber = 22,
    kMobileNumberPortableRegionFieldNumber = 32,
  };
  // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
  [[nodiscard]] int number_format_size()
      const;
  private:
  int _internal_number_format_size() const;

  public:
  void clear_number_format() ;
  [[nodiscard]] const ::i18n::phonenumbers::NumberFormat& number_format(int index) const;
  [[nodiscard]] ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL mutable_number_format(int index);
  ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL add_number_format();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>&
  number_format() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL
  mutable_number_format();

  private:
  const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>& _internal_number_format() const;
  ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL _internal_mutable_number_format();

  public:
  // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
  [[nodiscard]] int intl_number_format_size()
      const;
  private:
  int _internal_intl_number_format_size() const;

  public:
  void clear_intl_number_format() ;
  [[nodiscard]] const ::i18n::phonenumbers::NumberFormat& intl_number_format(int index) const;
  [[nodiscard]] ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL mutable_intl_number_format(int index);
  ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL add_intl_number_format();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>&
  intl_number_format() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL
  mutable_intl_number_format();

  private:
  const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>& _internal_intl_number_format() const;
  ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL _internal_mutable_intl_number_format();

  public:
  // required string id = 9;
  [[nodiscard]] bool has_id()
      const;
  void clear_id() ;
  [[nodiscard]] const ::std::string& id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_id();
  void set_allocated_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_id();

  public:
  // optional string international_prefix = 11;
  [[nodiscard]] bool has_international_prefix()
      const;
  void clear_international_prefix() ;
  [[nodiscard]] const ::std::string& international_prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_international_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_international_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_international_prefix();
  void set_allocated_international_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_international_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_international_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_international_prefix();

  public:
  // optional string national_prefix = 12;
  [[nodiscard]] bool has_national_prefix()
      const;
  void clear_national_prefix() ;
  [[nodiscard]] const ::std::string& national_prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_national_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_national_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_national_prefix();
  void set_allocated_national_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_national_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_national_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_national_prefix();

  public:
  // optional string preferred_extn_prefix = 13;
  [[nodiscard]] bool has_preferred_extn_prefix()
      const;
  void clear_preferred_extn_prefix() ;
  [[nodiscard]] const ::std::string& preferred_extn_prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_preferred_extn_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_preferred_extn_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_preferred_extn_prefix();
  void set_allocated_preferred_extn_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_preferred_extn_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_preferred_extn_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_preferred_extn_prefix();

  public:
  // optional string national_prefix_for_parsing = 15;
  [[nodiscard]] bool has_national_prefix_for_parsing()
      const;
  void clear_national_prefix_for_parsing() ;
  [[nodiscard]] const ::std::string& national_prefix_for_parsing() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_national_prefix_for_parsing(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_national_prefix_for_parsing();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_national_prefix_for_parsing();
  void set_allocated_national_prefix_for_parsing(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_national_prefix_for_parsing() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_national_prefix_for_parsing(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_national_prefix_for_parsing();

  public:
  // optional string national_prefix_transform_rule = 16;
  [[nodiscard]] bool has_national_prefix_transform_rule()
      const;
  void clear_national_prefix_transform_rule() ;
  [[nodiscard]] const ::std::string& national_prefix_transform_rule() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_national_prefix_transform_rule(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_national_prefix_transform_rule();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_national_prefix_transform_rule();
  void set_allocated_national_prefix_transform_rule(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_national_prefix_transform_rule() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_national_prefix_transform_rule(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_national_prefix_transform_rule();

  public:
  // optional string preferred_international_prefix = 17;
  [[nodiscard]] bool has_preferred_international_prefix()
      const;
  void clear_preferred_international_prefix() ;
  [[nodiscard]] const ::std::string& preferred_international_prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_preferred_international_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_preferred_international_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_preferred_international_prefix();
  void set_allocated_preferred_international_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_preferred_international_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_preferred_international_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_preferred_international_prefix();

  public:
  // optional string leading_digits = 23;
  [[nodiscard]] bool has_leading_digits()
      const;
  void clear_leading_digits() ;
  [[nodiscard]] const ::std::string& leading_digits() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_leading_digits(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_leading_digits();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_leading_digits();
  void set_allocated_leading_digits(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_leading_digits() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_leading_digits(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_leading_digits();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
  [[nodiscard]] bool has_general_desc()
      const;
  void clear_general_desc() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& general_desc() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_general_desc();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_general_desc();
  void set_allocated_general_desc(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_general_desc(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_general_desc();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_general_desc() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_general_desc();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
  [[nodiscard]] bool has_fixed_line()
      const;
  void clear_fixed_line() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& fixed_line() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_fixed_line();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_fixed_line();
  void set_allocated_fixed_line(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_fixed_line(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_fixed_line();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_fixed_line() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_fixed_line();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
  [[nodiscard]] bool has_mobile()
      const;
  void clear_mobile() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& mobile() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_mobile();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_mobile();
  void set_allocated_mobile(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_mobile(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_mobile();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_mobile() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_mobile();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
  [[nodiscard]] bool has_toll_free()
      const;
  void clear_toll_free() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& toll_free() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_toll_free();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_toll_free();
  void set_allocated_toll_free(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_toll_free(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_toll_free();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_toll_free() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_toll_free();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
  [[nodiscard]] bool has_premium_rate()
      const;
  void clear_premium_rate() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& premium_rate() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_premium_rate();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_premium_rate();
  void set_allocated_premium_rate(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_premium_rate(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_premium_rate();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_premium_rate() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_premium_rate();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
  [[nodiscard]] bool has_shared_cost()
      const;
  void clear_shared_cost() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& shared_cost() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_shared_cost();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_shared_cost();
  void set_allocated_shared_cost(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_shared_cost(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_shared_cost();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_shared_cost() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_shared_cost();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
  [[nodiscard]] bool has_personal_number()
      const;
  void clear_personal_number() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& personal_number() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_personal_number();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_personal_number();
  void set_allocated_personal_number(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_personal_number(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_personal_number();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_personal_number() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_personal_number();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
  [[nodiscard]] bool has_voip()
      const;
  void clear_voip() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& voip() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_voip();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_voip();
  void set_allocated_voip(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_voip(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_voip();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_voip() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_voip();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
  [[nodiscard]] bool has_pager()
      const;
  void clear_pager() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& pager() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_pager();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_pager();
  void set_allocated_pager(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_pager(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_pager();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_pager() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_pager();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
  [[nodiscard]] bool has_no_international_dialling()
      const;
  void clear_no_international_dialling() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& no_international_dialling() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_no_international_dialling();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_no_international_dialling();
  void set_allocated_no_international_dialling(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_no_international_dialling(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_no_international_dialling();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_no_international_dialling() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_no_international_dialling();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
  [[nodiscard]] bool has_uan()
      const;
  void clear_uan() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& uan() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_uan();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_uan();
  void set_allocated_uan(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_uan(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_uan();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_uan() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_uan();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
  [[nodiscard]] bool has_emergency()
      const;
  void clear_emergency() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& emergency() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_emergency();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_emergency();
  void set_allocated_emergency(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_emergency(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_emergency();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_emergency() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_emergency();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
  [[nodiscard]] bool has_voicemail()
      const;
  void clear_voicemail() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& voicemail() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_voicemail();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_voicemail();
  void set_allocated_voicemail(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_voicemail(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_voicemail();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_voicemail() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_voicemail();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
  [[nodiscard]] bool has_short_code()
      const;
  void clear_short_code() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& short_code() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_short_code();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_short_code();
  void set_allocated_short_code(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_short_code(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_short_code();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_short_code() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_short_code();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
  [[nodiscard]] bool has_standard_rate()
      const;
  void clear_standard_rate() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& standard_rate() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_standard_rate();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_standard_rate();
  void set_allocated_standard_rate(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_standard_rate(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_standard_rate();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_standard_rate() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_standard_rate();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
  [[nodiscard]] bool has_carrier_specific()
      const;
  void clear_carrier_specific() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& carrier_specific() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_carrier_specific();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_carrier_specific();
  void set_allocated_carrier_specific(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_carrier_specific(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_carrier_specific();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_carrier_specific() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_carrier_specific();

  public:
  // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
  [[nodiscard]] bool has_sms_services()
      const;
  void clear_sms_services() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneNumberDesc& sms_services() const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE release_sms_services();
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL mutable_sms_services();
  void set_allocated_sms_services(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_sms_services(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value);
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE unsafe_arena_release_sms_services();

  private:
  const ::i18n::phonenumbers::PhoneNumberDesc& _internal_sms_services() const;
  ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL _internal_mutable_sms_services();

  public:
  // optional int32 country_code = 10;
  [[nodiscard]] bool has_country_code()
      const;
  void clear_country_code() ;
  [[nodiscard]] ::int32_t country_code() const;
  void set_country_code(::int32_t value);

  private:
  ::int32_t _internal_country_code() const;
  void _internal_set_country_code(::int32_t value);

  public:
  // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
  [[nodiscard]] bool has_same_mobile_and_fixed_line_pattern()
      const;
  void clear_same_mobile_and_fixed_line_pattern() ;
  [[nodiscard]] bool same_mobile_and_fixed_line_pattern() const;
  void set_same_mobile_and_fixed_line_pattern(bool value);

  private:
  bool _internal_same_mobile_and_fixed_line_pattern() const;
  void _internal_set_same_mobile_and_fixed_line_pattern(bool value);

  public:
  // optional bool main_country_for_code = 22 [default = false];
  [[nodiscard]] bool has_main_country_for_code()
      const;
  void clear_main_country_for_code() ;
  [[nodiscard]] bool main_country_for_code() const;
  void set_main_country_for_code(bool value);

  private:
  bool _internal_main_country_for_code() const;
  void _internal_set_main_country_for_code(bool value);

  public:
  // optional bool mobile_number_portable_region = 32 [default = false];
  [[nodiscard]] bool has_mobile_number_portable_region()
      const;
  void clear_mobile_number_portable_region() ;
  [[nodiscard]] bool mobile_number_portable_region() const;
  void set_mobile_number_portable_region(bool value);

  private:
  bool _internal_mobile_number_portable_region() const;
  void _internal_set_mobile_number_portable_region(bool value);

  public:
  // @@protoc_insertion_point(class_scope:i18n.phonenumbers.PhoneMetadata)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<5, 31,
                          19, 0,
                          7>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PhoneMetadata& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::i18n::phonenumbers::NumberFormat > number_format_;
    ::google::protobuf::RepeatedPtrField< ::i18n::phonenumbers::NumberFormat > intl_number_format_;
    ::google::protobuf::internal::ArenaStringPtr id_;
    ::google::protobuf::internal::ArenaStringPtr international_prefix_;
    ::google::protobuf::internal::ArenaStringPtr national_prefix_;
    ::google::protobuf::internal::ArenaStringPtr preferred_extn_prefix_;
    ::google::protobuf::internal::ArenaStringPtr national_prefix_for_parsing_;
    ::google::protobuf::internal::ArenaStringPtr national_prefix_transform_rule_;
    ::google::protobuf::internal::ArenaStringPtr preferred_international_prefix_;
    ::google::protobuf::internal::ArenaStringPtr leading_digits_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE general_desc_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE fixed_line_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE mobile_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE toll_free_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE premium_rate_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE shared_cost_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE personal_number_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE voip_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE pager_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE no_international_dialling_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE uan_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE emergency_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE voicemail_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE short_code_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE standard_rate_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE carrier_specific_;
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE sms_services_;
    ::int32_t country_code_;
    bool same_mobile_and_fixed_line_pattern_;
    bool main_country_for_code_;
    bool mobile_number_portable_region_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_phonemetadata_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PhoneMetadataCollection final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:i18n.phonenumbers.PhoneMetadataCollection) */ {
 public:
  inline PhoneMetadataCollection() : PhoneMetadataCollection(nullptr) {}
  ~PhoneMetadataCollection() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PhoneMetadataCollection* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PhoneMetadataCollection));
  }
#endif

  template <typename = void>
  explicit constexpr PhoneMetadataCollection(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PhoneMetadataCollection(const PhoneMetadataCollection& from) : PhoneMetadataCollection(nullptr, from) {}
  inline PhoneMetadataCollection(PhoneMetadataCollection&& from) noexcept : PhoneMetadataCollection(nullptr, ::std::move(from)) {}
  inline PhoneMetadataCollection& operator=(const PhoneMetadataCollection& from) {
    CopyFrom(from);
    return *this;
  }
  inline PhoneMetadataCollection& operator=(PhoneMetadataCollection&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  [[nodiscard]] inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  [[nodiscard]] static const PhoneMetadataCollection& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PhoneMetadataCollection>(&PhoneMetadataCollection_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(PhoneMetadataCollection& a, PhoneMetadataCollection& b) { a.Swap(&b); }
  inline void Swap(PhoneMetadataCollection* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PhoneMetadataCollection* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PhoneMetadataCollection* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<PhoneMetadataCollection>(arena);
  }
  void CopyFrom(const PhoneMetadataCollection& from);
  void MergeFrom(const PhoneMetadataCollection& from) { PhoneMetadataCollection::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PhoneMetadataCollection* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "i18n.phonenumbers.PhoneMetadataCollection"; }

  explicit PhoneMetadataCollection(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PhoneMetadataCollection(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PhoneMetadataCollection& from);
  PhoneMetadataCollection(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PhoneMetadataCollection&& from) noexcept
      : PhoneMetadataCollection(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kMetadataFieldNumber = 1,
  };
  // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
  [[nodiscard]] int metadata_size()
      const;
  private:
  int _internal_metadata_size() const;

  public:
  void clear_metadata() ;
  [[nodiscard]] const ::i18n::phonenumbers::PhoneMetadata& metadata(int index) const;
  [[nodiscard]] ::i18n::phonenumbers::PhoneMetadata* PROTOBUF_NONNULL mutable_metadata(int index);
  ::i18n::phonenumbers::PhoneMetadata* PROTOBUF_NONNULL add_metadata();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>&
  metadata() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>* PROTOBUF_NONNULL
  mutable_metadata();

  private:
  const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>& _internal_metadata() const;
  ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>* PROTOBUF_NONNULL _internal_mutable_metadata();

  public:
  // @@protoc_insertion_point(class_scope:i18n.phonenumbers.PhoneMetadataCollection)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PhoneMetadataCollection& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::i18n::phonenumbers::PhoneMetadata > metadata_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_phonemetadata_2eproto;
};

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




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


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

// NumberFormat

// required string pattern = 1;
inline bool NumberFormat::has_pattern() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void NumberFormat::clear_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pattern_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& NumberFormat::pattern() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.NumberFormat.pattern)
  return _internal_pattern();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NumberFormat::set_pattern(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.pattern_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.NumberFormat.pattern)
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::mutable_pattern()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_pattern();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.NumberFormat.pattern)
  return _s;
}
inline const ::std::string& NumberFormat::_internal_pattern() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.pattern_.Get();
}
inline void NumberFormat::_internal_set_pattern(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pattern_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::_internal_mutable_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.pattern_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NumberFormat::release_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.NumberFormat.pattern)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.pattern_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.pattern_.Set("", GetArena());
  }
  return released;
}
inline void NumberFormat::set_allocated_pattern(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.pattern_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.pattern_.IsDefault()) {
    _impl_.pattern_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.NumberFormat.pattern)
}

// required string format = 2;
inline bool NumberFormat::has_format() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void NumberFormat::clear_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.format_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& NumberFormat::format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.NumberFormat.format)
  return _internal_format();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NumberFormat::set_format(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.NumberFormat.format)
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::mutable_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_format();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.NumberFormat.format)
  return _s;
}
inline const ::std::string& NumberFormat::_internal_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.format_.Get();
}
inline void NumberFormat::_internal_set_format(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.format_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::_internal_mutable_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.format_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NumberFormat::release_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.NumberFormat.format)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.format_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.format_.Set("", GetArena());
  }
  return released;
}
inline void NumberFormat::set_allocated_format(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.format_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.format_.IsDefault()) {
    _impl_.format_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.NumberFormat.format)
}

// repeated string leading_digits_pattern = 3;
inline int NumberFormat::_internal_leading_digits_pattern_size() const {
  return _internal_leading_digits_pattern().size();
}
inline int NumberFormat::leading_digits_pattern_size() const {
  return _internal_leading_digits_pattern_size();
}
inline void NumberFormat::clear_leading_digits_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.leading_digits_pattern_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::add_leading_digits_pattern()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_leading_digits_pattern()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
  return _s;
}
inline const ::std::string& NumberFormat::leading_digits_pattern(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
  return _internal_leading_digits_pattern().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::mutable_leading_digits_pattern(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
  return _internal_mutable_leading_digits_pattern()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void NumberFormat::set_leading_digits_pattern(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_leading_digits_pattern()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
}
template <typename Arg_, typename... Args_>
inline void NumberFormat::add_leading_digits_pattern(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_leading_digits_pattern(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& NumberFormat::leading_digits_pattern()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
  return _internal_leading_digits_pattern();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
NumberFormat::mutable_leading_digits_pattern() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:i18n.phonenumbers.NumberFormat.leading_digits_pattern)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_leading_digits_pattern();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
NumberFormat::_internal_leading_digits_pattern() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.leading_digits_pattern_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
NumberFormat::_internal_mutable_leading_digits_pattern() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.leading_digits_pattern_;
}

// optional string national_prefix_formatting_rule = 4;
inline bool NumberFormat::has_national_prefix_formatting_rule() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void NumberFormat::clear_national_prefix_formatting_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_formatting_rule_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& NumberFormat::national_prefix_formatting_rule() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.NumberFormat.national_prefix_formatting_rule)
  return _internal_national_prefix_formatting_rule();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NumberFormat::set_national_prefix_formatting_rule(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.national_prefix_formatting_rule_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.NumberFormat.national_prefix_formatting_rule)
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::mutable_national_prefix_formatting_rule()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_national_prefix_formatting_rule();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.NumberFormat.national_prefix_formatting_rule)
  return _s;
}
inline const ::std::string& NumberFormat::_internal_national_prefix_formatting_rule() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.national_prefix_formatting_rule_.Get();
}
inline void NumberFormat::_internal_set_national_prefix_formatting_rule(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_formatting_rule_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::_internal_mutable_national_prefix_formatting_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.national_prefix_formatting_rule_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NumberFormat::release_national_prefix_formatting_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.NumberFormat.national_prefix_formatting_rule)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.national_prefix_formatting_rule_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.national_prefix_formatting_rule_.Set("", GetArena());
  }
  return released;
}
inline void NumberFormat::set_allocated_national_prefix_formatting_rule(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.national_prefix_formatting_rule_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.national_prefix_formatting_rule_.IsDefault()) {
    _impl_.national_prefix_formatting_rule_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.NumberFormat.national_prefix_formatting_rule)
}

// optional bool national_prefix_optional_when_formatting = 6 [default = false];
inline bool NumberFormat::has_national_prefix_optional_when_formatting() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void NumberFormat::clear_national_prefix_optional_when_formatting() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_optional_when_formatting_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool NumberFormat::national_prefix_optional_when_formatting() const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.NumberFormat.national_prefix_optional_when_formatting)
  return _internal_national_prefix_optional_when_formatting();
}
inline void NumberFormat::set_national_prefix_optional_when_formatting(bool value) {
  _internal_set_national_prefix_optional_when_formatting(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.NumberFormat.national_prefix_optional_when_formatting)
}
inline bool NumberFormat::_internal_national_prefix_optional_when_formatting() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.national_prefix_optional_when_formatting_;
}
inline void NumberFormat::_internal_set_national_prefix_optional_when_formatting(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_optional_when_formatting_ = value;
}

// optional string domestic_carrier_code_formatting_rule = 5;
inline bool NumberFormat::has_domestic_carrier_code_formatting_rule() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void NumberFormat::clear_domestic_carrier_code_formatting_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.domestic_carrier_code_formatting_rule_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& NumberFormat::domestic_carrier_code_formatting_rule() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.NumberFormat.domestic_carrier_code_formatting_rule)
  return _internal_domestic_carrier_code_formatting_rule();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void NumberFormat::set_domestic_carrier_code_formatting_rule(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.domestic_carrier_code_formatting_rule_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.NumberFormat.domestic_carrier_code_formatting_rule)
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::mutable_domestic_carrier_code_formatting_rule()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_domestic_carrier_code_formatting_rule();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.NumberFormat.domestic_carrier_code_formatting_rule)
  return _s;
}
inline const ::std::string& NumberFormat::_internal_domestic_carrier_code_formatting_rule() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.domestic_carrier_code_formatting_rule_.Get();
}
inline void NumberFormat::_internal_set_domestic_carrier_code_formatting_rule(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.domestic_carrier_code_formatting_rule_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL NumberFormat::_internal_mutable_domestic_carrier_code_formatting_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.domestic_carrier_code_formatting_rule_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE NumberFormat::release_domestic_carrier_code_formatting_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.NumberFormat.domestic_carrier_code_formatting_rule)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.domestic_carrier_code_formatting_rule_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.domestic_carrier_code_formatting_rule_.Set("", GetArena());
  }
  return released;
}
inline void NumberFormat::set_allocated_domestic_carrier_code_formatting_rule(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.domestic_carrier_code_formatting_rule_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.domestic_carrier_code_formatting_rule_.IsDefault()) {
    _impl_.domestic_carrier_code_formatting_rule_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.NumberFormat.domestic_carrier_code_formatting_rule)
}

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

// PhoneNumberDesc

// optional string national_number_pattern = 2;
inline bool PhoneNumberDesc::has_national_number_pattern() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void PhoneNumberDesc::clear_national_number_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_number_pattern_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PhoneNumberDesc::national_number_pattern() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumberDesc.national_number_pattern)
  return _internal_national_number_pattern();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneNumberDesc::set_national_number_pattern(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.national_number_pattern_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumberDesc.national_number_pattern)
}
inline ::std::string* PROTOBUF_NONNULL PhoneNumberDesc::mutable_national_number_pattern()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_national_number_pattern();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneNumberDesc.national_number_pattern)
  return _s;
}
inline const ::std::string& PhoneNumberDesc::_internal_national_number_pattern() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.national_number_pattern_.Get();
}
inline void PhoneNumberDesc::_internal_set_national_number_pattern(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_number_pattern_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneNumberDesc::_internal_mutable_national_number_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.national_number_pattern_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneNumberDesc::release_national_number_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneNumberDesc.national_number_pattern)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.national_number_pattern_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.national_number_pattern_.Set("", GetArena());
  }
  return released;
}
inline void PhoneNumberDesc::set_allocated_national_number_pattern(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.national_number_pattern_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.national_number_pattern_.IsDefault()) {
    _impl_.national_number_pattern_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneNumberDesc.national_number_pattern)
}

// repeated int32 possible_length = 9;
inline int PhoneNumberDesc::_internal_possible_length_size() const {
  return _internal_possible_length().size();
}
inline int PhoneNumberDesc::possible_length_size() const {
  return _internal_possible_length_size();
}
inline void PhoneNumberDesc::clear_possible_length() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.possible_length_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int32_t PhoneNumberDesc::possible_length(int index) const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumberDesc.possible_length)
  return _internal_possible_length().Get(index);
}
inline void PhoneNumberDesc::set_possible_length(int index, ::int32_t value) {
  _internal_mutable_possible_length()->Set(index, value);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumberDesc.possible_length)
}
inline void PhoneNumberDesc::add_possible_length(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_possible_length()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:i18n.phonenumbers.PhoneNumberDesc.possible_length)
}
inline const ::google::protobuf::RepeatedField<::int32_t>& PhoneNumberDesc::possible_length() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:i18n.phonenumbers.PhoneNumberDesc.possible_length)
  return _internal_possible_length();
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL PhoneNumberDesc::mutable_possible_length()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:i18n.phonenumbers.PhoneNumberDesc.possible_length)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_possible_length();
}
inline const ::google::protobuf::RepeatedField<::int32_t>&
PhoneNumberDesc::_internal_possible_length() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.possible_length_;
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL
PhoneNumberDesc::_internal_mutable_possible_length() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.possible_length_;
}

// repeated int32 possible_length_local_only = 10;
inline int PhoneNumberDesc::_internal_possible_length_local_only_size() const {
  return _internal_possible_length_local_only().size();
}
inline int PhoneNumberDesc::possible_length_local_only_size() const {
  return _internal_possible_length_local_only_size();
}
inline void PhoneNumberDesc::clear_possible_length_local_only() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.possible_length_local_only_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::int32_t PhoneNumberDesc::possible_length_local_only(int index) const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumberDesc.possible_length_local_only)
  return _internal_possible_length_local_only().Get(index);
}
inline void PhoneNumberDesc::set_possible_length_local_only(int index, ::int32_t value) {
  _internal_mutable_possible_length_local_only()->Set(index, value);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumberDesc.possible_length_local_only)
}
inline void PhoneNumberDesc::add_possible_length_local_only(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_possible_length_local_only()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_add:i18n.phonenumbers.PhoneNumberDesc.possible_length_local_only)
}
inline const ::google::protobuf::RepeatedField<::int32_t>& PhoneNumberDesc::possible_length_local_only() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:i18n.phonenumbers.PhoneNumberDesc.possible_length_local_only)
  return _internal_possible_length_local_only();
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL PhoneNumberDesc::mutable_possible_length_local_only()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_mutable_list:i18n.phonenumbers.PhoneNumberDesc.possible_length_local_only)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_possible_length_local_only();
}
inline const ::google::protobuf::RepeatedField<::int32_t>&
PhoneNumberDesc::_internal_possible_length_local_only() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.possible_length_local_only_;
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL
PhoneNumberDesc::_internal_mutable_possible_length_local_only() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.possible_length_local_only_;
}

// optional string example_number = 6;
inline bool PhoneNumberDesc::has_example_number() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void PhoneNumberDesc::clear_example_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.example_number_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PhoneNumberDesc::example_number() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumberDesc.example_number)
  return _internal_example_number();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneNumberDesc::set_example_number(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.example_number_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumberDesc.example_number)
}
inline ::std::string* PROTOBUF_NONNULL PhoneNumberDesc::mutable_example_number()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_example_number();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneNumberDesc.example_number)
  return _s;
}
inline const ::std::string& PhoneNumberDesc::_internal_example_number() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.example_number_.Get();
}
inline void PhoneNumberDesc::_internal_set_example_number(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.example_number_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneNumberDesc::_internal_mutable_example_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.example_number_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneNumberDesc::release_example_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneNumberDesc.example_number)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.example_number_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.example_number_.Set("", GetArena());
  }
  return released;
}
inline void PhoneNumberDesc::set_allocated_example_number(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.example_number_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.example_number_.IsDefault()) {
    _impl_.example_number_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneNumberDesc.example_number)
}

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

// PhoneMetadata

// optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
inline bool PhoneMetadata::has_general_desc() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  PROTOBUF_ASSUME(!value || _impl_.general_desc_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_general_desc() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.general_desc_ != nullptr) _impl_.general_desc_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_general_desc() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.general_desc_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::general_desc() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.general_desc)
  return _internal_general_desc();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_general_desc(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.general_desc_);
  }
  _impl_.general_desc_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.general_desc)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_general_desc() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.general_desc_;
  _impl_.general_desc_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_general_desc() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.general_desc)

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.general_desc_;
  _impl_.general_desc_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_general_desc() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.general_desc_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.general_desc_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.general_desc_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_general_desc()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_general_desc();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.general_desc)
  return _msg;
}
inline void PhoneMetadata::set_allocated_general_desc(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.general_desc_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }

  _impl_.general_desc_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.general_desc)
}

// optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
inline bool PhoneMetadata::has_fixed_line() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  PROTOBUF_ASSUME(!value || _impl_.fixed_line_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_fixed_line() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.fixed_line_ != nullptr) _impl_.fixed_line_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_fixed_line() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.fixed_line_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::fixed_line() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.fixed_line)
  return _internal_fixed_line();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_fixed_line(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.fixed_line_);
  }
  _impl_.fixed_line_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.fixed_line)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_fixed_line() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.fixed_line_;
  _impl_.fixed_line_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_fixed_line() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.fixed_line)

  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.fixed_line_;
  _impl_.fixed_line_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_fixed_line() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.fixed_line_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.fixed_line_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.fixed_line_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_fixed_line()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_fixed_line();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.fixed_line)
  return _msg;
}
inline void PhoneMetadata::set_allocated_fixed_line(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.fixed_line_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  }

  _impl_.fixed_line_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.fixed_line)
}

// optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
inline bool PhoneMetadata::has_mobile() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  PROTOBUF_ASSUME(!value || _impl_.mobile_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_mobile() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.mobile_ != nullptr) _impl_.mobile_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_mobile() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.mobile_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::mobile() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.mobile)
  return _internal_mobile();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_mobile(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.mobile_);
  }
  _impl_.mobile_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.mobile)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_mobile() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.mobile_;
  _impl_.mobile_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_mobile() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.mobile)

  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.mobile_;
  _impl_.mobile_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_mobile() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.mobile_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.mobile_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.mobile_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_mobile()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_mobile();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.mobile)
  return _msg;
}
inline void PhoneMetadata::set_allocated_mobile(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.mobile_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
  }

  _impl_.mobile_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.mobile)
}

// optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
inline bool PhoneMetadata::has_toll_free() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00002000U);
  PROTOBUF_ASSUME(!value || _impl_.toll_free_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_toll_free() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toll_free_ != nullptr) _impl_.toll_free_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_toll_free() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.toll_free_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::toll_free() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.toll_free)
  return _internal_toll_free();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_toll_free(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.toll_free_);
  }
  _impl_.toll_free_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.toll_free)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_toll_free() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.toll_free_;
  _impl_.toll_free_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_toll_free() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.toll_free)

  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.toll_free_;
  _impl_.toll_free_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_toll_free() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.toll_free_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.toll_free_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.toll_free_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_toll_free()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_toll_free();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.toll_free)
  return _msg;
}
inline void PhoneMetadata::set_allocated_toll_free(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.toll_free_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
  }

  _impl_.toll_free_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.toll_free)
}

// optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
inline bool PhoneMetadata::has_premium_rate() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00004000U);
  PROTOBUF_ASSUME(!value || _impl_.premium_rate_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_premium_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.premium_rate_ != nullptr) _impl_.premium_rate_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_premium_rate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.premium_rate_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::premium_rate() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.premium_rate)
  return _internal_premium_rate();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_premium_rate(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.premium_rate_);
  }
  _impl_.premium_rate_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.premium_rate)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_premium_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.premium_rate_;
  _impl_.premium_rate_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_premium_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.premium_rate)

  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.premium_rate_;
  _impl_.premium_rate_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_premium_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.premium_rate_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.premium_rate_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.premium_rate_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_premium_rate()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_premium_rate();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.premium_rate)
  return _msg;
}
inline void PhoneMetadata::set_allocated_premium_rate(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.premium_rate_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
  }

  _impl_.premium_rate_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.premium_rate)
}

// optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
inline bool PhoneMetadata::has_shared_cost() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00008000U);
  PROTOBUF_ASSUME(!value || _impl_.shared_cost_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_shared_cost() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.shared_cost_ != nullptr) _impl_.shared_cost_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_shared_cost() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.shared_cost_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::shared_cost() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.shared_cost)
  return _internal_shared_cost();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_shared_cost(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.shared_cost_);
  }
  _impl_.shared_cost_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.shared_cost)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_shared_cost() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.shared_cost_;
  _impl_.shared_cost_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_shared_cost() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.shared_cost)

  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.shared_cost_;
  _impl_.shared_cost_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_shared_cost() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.shared_cost_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.shared_cost_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.shared_cost_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_shared_cost()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_shared_cost();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.shared_cost)
  return _msg;
}
inline void PhoneMetadata::set_allocated_shared_cost(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.shared_cost_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
  }

  _impl_.shared_cost_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.shared_cost)
}

// optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
inline bool PhoneMetadata::has_personal_number() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00010000U);
  PROTOBUF_ASSUME(!value || _impl_.personal_number_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_personal_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.personal_number_ != nullptr) _impl_.personal_number_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_personal_number() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.personal_number_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::personal_number() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.personal_number)
  return _internal_personal_number();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_personal_number(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.personal_number_);
  }
  _impl_.personal_number_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.personal_number)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_personal_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.personal_number_;
  _impl_.personal_number_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_personal_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.personal_number)

  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.personal_number_;
  _impl_.personal_number_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_personal_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.personal_number_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.personal_number_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.personal_number_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_personal_number()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_personal_number();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.personal_number)
  return _msg;
}
inline void PhoneMetadata::set_allocated_personal_number(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.personal_number_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
  }

  _impl_.personal_number_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.personal_number)
}

// optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
inline bool PhoneMetadata::has_voip() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00020000U);
  PROTOBUF_ASSUME(!value || _impl_.voip_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_voip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.voip_ != nullptr) _impl_.voip_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_voip() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.voip_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::voip() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.voip)
  return _internal_voip();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_voip(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.voip_);
  }
  _impl_.voip_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.voip)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_voip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.voip_;
  _impl_.voip_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_voip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.voip)

  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.voip_;
  _impl_.voip_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_voip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.voip_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.voip_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.voip_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_voip()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_voip();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.voip)
  return _msg;
}
inline void PhoneMetadata::set_allocated_voip(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.voip_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
  }

  _impl_.voip_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.voip)
}

// optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
inline bool PhoneMetadata::has_pager() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00040000U);
  PROTOBUF_ASSUME(!value || _impl_.pager_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_pager() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.pager_ != nullptr) _impl_.pager_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_pager() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.pager_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::pager() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.pager)
  return _internal_pager();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_pager(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.pager_);
  }
  _impl_.pager_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.pager)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_pager() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.pager_;
  _impl_.pager_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_pager() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.pager)

  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.pager_;
  _impl_.pager_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_pager() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.pager_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.pager_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.pager_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_pager()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_pager();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.pager)
  return _msg;
}
inline void PhoneMetadata::set_allocated_pager(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.pager_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
  }

  _impl_.pager_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.pager)
}

// optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
inline bool PhoneMetadata::has_uan() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00100000U);
  PROTOBUF_ASSUME(!value || _impl_.uan_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_uan() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.uan_ != nullptr) _impl_.uan_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_uan() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.uan_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::uan() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.uan)
  return _internal_uan();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_uan(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uan_);
  }
  _impl_.uan_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00100000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.uan)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_uan() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.uan_;
  _impl_.uan_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_uan() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.uan)

  ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.uan_;
  _impl_.uan_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_uan() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.uan_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.uan_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.uan_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_uan()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00100000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_uan();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.uan)
  return _msg;
}
inline void PhoneMetadata::set_allocated_uan(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.uan_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00100000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
  }

  _impl_.uan_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.uan)
}

// optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
inline bool PhoneMetadata::has_emergency() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00200000U);
  PROTOBUF_ASSUME(!value || _impl_.emergency_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_emergency() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.emergency_ != nullptr) _impl_.emergency_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_emergency() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.emergency_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::emergency() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.emergency)
  return _internal_emergency();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_emergency(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.emergency_);
  }
  _impl_.emergency_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00200000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.emergency)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_emergency() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.emergency_;
  _impl_.emergency_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_emergency() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.emergency)

  ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.emergency_;
  _impl_.emergency_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_emergency() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.emergency_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.emergency_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.emergency_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_emergency()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00200000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_emergency();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.emergency)
  return _msg;
}
inline void PhoneMetadata::set_allocated_emergency(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.emergency_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00200000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
  }

  _impl_.emergency_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.emergency)
}

// optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
inline bool PhoneMetadata::has_voicemail() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00400000U);
  PROTOBUF_ASSUME(!value || _impl_.voicemail_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_voicemail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.voicemail_ != nullptr) _impl_.voicemail_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_voicemail() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.voicemail_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::voicemail() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.voicemail)
  return _internal_voicemail();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_voicemail(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.voicemail_);
  }
  _impl_.voicemail_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00400000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.voicemail)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_voicemail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.voicemail_;
  _impl_.voicemail_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_voicemail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.voicemail)

  ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.voicemail_;
  _impl_.voicemail_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_voicemail() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.voicemail_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.voicemail_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.voicemail_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_voicemail()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00400000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_voicemail();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.voicemail)
  return _msg;
}
inline void PhoneMetadata::set_allocated_voicemail(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.voicemail_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00400000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
  }

  _impl_.voicemail_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.voicemail)
}

// optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
inline bool PhoneMetadata::has_short_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00800000U);
  PROTOBUF_ASSUME(!value || _impl_.short_code_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_short_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.short_code_ != nullptr) _impl_.short_code_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_short_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.short_code_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::short_code() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.short_code)
  return _internal_short_code();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_short_code(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.short_code_);
  }
  _impl_.short_code_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00800000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.short_code)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_short_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.short_code_;
  _impl_.short_code_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_short_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.short_code)

  ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.short_code_;
  _impl_.short_code_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_short_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.short_code_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.short_code_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.short_code_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_short_code()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00800000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_short_code();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.short_code)
  return _msg;
}
inline void PhoneMetadata::set_allocated_short_code(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.short_code_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00800000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
  }

  _impl_.short_code_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.short_code)
}

// optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
inline bool PhoneMetadata::has_standard_rate() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x01000000U);
  PROTOBUF_ASSUME(!value || _impl_.standard_rate_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_standard_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.standard_rate_ != nullptr) _impl_.standard_rate_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_standard_rate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.standard_rate_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::standard_rate() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.standard_rate)
  return _internal_standard_rate();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_standard_rate(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.standard_rate_);
  }
  _impl_.standard_rate_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x01000000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.standard_rate)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_standard_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.standard_rate_;
  _impl_.standard_rate_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_standard_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.standard_rate)

  ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.standard_rate_;
  _impl_.standard_rate_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_standard_rate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.standard_rate_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.standard_rate_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.standard_rate_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_standard_rate()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x01000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_standard_rate();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.standard_rate)
  return _msg;
}
inline void PhoneMetadata::set_allocated_standard_rate(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.standard_rate_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x01000000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
  }

  _impl_.standard_rate_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.standard_rate)
}

// optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
inline bool PhoneMetadata::has_carrier_specific() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x02000000U);
  PROTOBUF_ASSUME(!value || _impl_.carrier_specific_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_carrier_specific() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.carrier_specific_ != nullptr) _impl_.carrier_specific_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_carrier_specific() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.carrier_specific_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::carrier_specific() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.carrier_specific)
  return _internal_carrier_specific();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_carrier_specific(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.carrier_specific_);
  }
  _impl_.carrier_specific_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x02000000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.carrier_specific)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_carrier_specific() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.carrier_specific_;
  _impl_.carrier_specific_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_carrier_specific() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.carrier_specific)

  ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.carrier_specific_;
  _impl_.carrier_specific_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_carrier_specific() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.carrier_specific_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.carrier_specific_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.carrier_specific_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_carrier_specific()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x02000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_carrier_specific();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.carrier_specific)
  return _msg;
}
inline void PhoneMetadata::set_allocated_carrier_specific(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.carrier_specific_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x02000000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
  }

  _impl_.carrier_specific_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.carrier_specific)
}

// optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
inline bool PhoneMetadata::has_sms_services() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x04000000U);
  PROTOBUF_ASSUME(!value || _impl_.sms_services_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_sms_services() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.sms_services_ != nullptr) _impl_.sms_services_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_sms_services() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.sms_services_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::sms_services() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.sms_services)
  return _internal_sms_services();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_sms_services(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.sms_services_);
  }
  _impl_.sms_services_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x04000000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.sms_services)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_sms_services() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.sms_services_;
  _impl_.sms_services_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_sms_services() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.sms_services)

  ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.sms_services_;
  _impl_.sms_services_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_sms_services() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.sms_services_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.sms_services_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.sms_services_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_sms_services()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x04000000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_sms_services();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.sms_services)
  return _msg;
}
inline void PhoneMetadata::set_allocated_sms_services(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.sms_services_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x04000000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
  }

  _impl_.sms_services_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.sms_services)
}

// optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
inline bool PhoneMetadata::has_no_international_dialling() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00080000U);
  PROTOBUF_ASSUME(!value || _impl_.no_international_dialling_ != nullptr);
  return value;
}
inline void PhoneMetadata::clear_no_international_dialling() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.no_international_dialling_ != nullptr) _impl_.no_international_dialling_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::_internal_no_international_dialling() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::i18n::phonenumbers::PhoneNumberDesc* p = _impl_.no_international_dialling_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::i18n::phonenumbers::PhoneNumberDesc>(&::i18n::phonenumbers::PhoneNumberDesc_globals_);
}
inline const ::i18n::phonenumbers::PhoneNumberDesc& PhoneMetadata::no_international_dialling() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.no_international_dialling)
  return _internal_no_international_dialling();
}
inline void PhoneMetadata::unsafe_arena_set_allocated_no_international_dialling(
    ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.no_international_dialling_);
  }
  _impl_.no_international_dialling_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00080000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:i18n.phonenumbers.PhoneMetadata.no_international_dialling)
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::release_no_international_dialling() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
  ::i18n::phonenumbers::PhoneNumberDesc* released = _impl_.no_international_dialling_;
  _impl_.no_international_dialling_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE PhoneMetadata::unsafe_arena_release_no_international_dialling() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.no_international_dialling)

  ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
  ::i18n::phonenumbers::PhoneNumberDesc* temp = _impl_.no_international_dialling_;
  _impl_.no_international_dialling_ = nullptr;
  return temp;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_no_international_dialling() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.no_international_dialling_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::i18n::phonenumbers::PhoneNumberDesc>(GetArena());
    _impl_.no_international_dialling_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(p);
  }
  return _impl_.no_international_dialling_;
}
inline ::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NONNULL PhoneMetadata::mutable_no_international_dialling()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00080000U);
  ::i18n::phonenumbers::PhoneNumberDesc* _msg = _internal_mutable_no_international_dialling();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.no_international_dialling)
  return _msg;
}
inline void PhoneMetadata::set_allocated_no_international_dialling(::i18n::phonenumbers::PhoneNumberDesc* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.no_international_dialling_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00080000U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
  }

  _impl_.no_international_dialling_ = reinterpret_cast<::i18n::phonenumbers::PhoneNumberDesc*>(value);
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.no_international_dialling)
}

// required string id = 9;
inline bool PhoneMetadata::has_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void PhoneMetadata::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PhoneMetadata::id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.id)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.id)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_.Get();
}
inline void PhoneMetadata::_internal_set_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.id_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.id_.IsDefault()) {
    _impl_.id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.id)
}

// optional int32 country_code = 10;
inline bool PhoneMetadata::has_country_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x08000000U);
  return value;
}
inline void PhoneMetadata::clear_country_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.country_code_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x08000000U);
}
inline ::int32_t PhoneMetadata::country_code() const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.country_code)
  return _internal_country_code();
}
inline void PhoneMetadata::set_country_code(::int32_t value) {
  _internal_set_country_code(value);
  SetHasBit(_impl_._has_bits_[0], 0x08000000U);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.country_code)
}
inline ::int32_t PhoneMetadata::_internal_country_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.country_code_;
}
inline void PhoneMetadata::_internal_set_country_code(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.country_code_ = value;
}

// optional string international_prefix = 11;
inline bool PhoneMetadata::has_international_prefix() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void PhoneMetadata::clear_international_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.international_prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& PhoneMetadata::international_prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.international_prefix)
  return _internal_international_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_international_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.international_prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.international_prefix)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_international_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_international_prefix();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.international_prefix)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_international_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.international_prefix_.Get();
}
inline void PhoneMetadata::_internal_set_international_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.international_prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_international_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.international_prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_international_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.international_prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.international_prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.international_prefix_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_international_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.international_prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.international_prefix_.IsDefault()) {
    _impl_.international_prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.international_prefix)
}

// optional string preferred_international_prefix = 17;
inline bool PhoneMetadata::has_preferred_international_prefix() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void PhoneMetadata::clear_preferred_international_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preferred_international_prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::std::string& PhoneMetadata::preferred_international_prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.preferred_international_prefix)
  return _internal_preferred_international_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_preferred_international_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  _impl_.preferred_international_prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.preferred_international_prefix)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_preferred_international_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::std::string* _s = _internal_mutable_preferred_international_prefix();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.preferred_international_prefix)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_preferred_international_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.preferred_international_prefix_.Get();
}
inline void PhoneMetadata::_internal_set_preferred_international_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preferred_international_prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_preferred_international_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.preferred_international_prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_preferred_international_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.preferred_international_prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000100U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  auto* released = _impl_.preferred_international_prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.preferred_international_prefix_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_preferred_international_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  _impl_.preferred_international_prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.preferred_international_prefix_.IsDefault()) {
    _impl_.preferred_international_prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.preferred_international_prefix)
}

// optional string national_prefix = 12;
inline bool PhoneMetadata::has_national_prefix() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void PhoneMetadata::clear_national_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& PhoneMetadata::national_prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.national_prefix)
  return _internal_national_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_national_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.national_prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.national_prefix)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_national_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_national_prefix();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.national_prefix)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_national_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.national_prefix_.Get();
}
inline void PhoneMetadata::_internal_set_national_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_national_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.national_prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_national_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.national_prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.national_prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.national_prefix_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_national_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.national_prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.national_prefix_.IsDefault()) {
    _impl_.national_prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.national_prefix)
}

// optional string preferred_extn_prefix = 13;
inline bool PhoneMetadata::has_preferred_extn_prefix() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void PhoneMetadata::clear_preferred_extn_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preferred_extn_prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& PhoneMetadata::preferred_extn_prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.preferred_extn_prefix)
  return _internal_preferred_extn_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_preferred_extn_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.preferred_extn_prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.preferred_extn_prefix)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_preferred_extn_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_preferred_extn_prefix();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.preferred_extn_prefix)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_preferred_extn_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.preferred_extn_prefix_.Get();
}
inline void PhoneMetadata::_internal_set_preferred_extn_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.preferred_extn_prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_preferred_extn_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.preferred_extn_prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_preferred_extn_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.preferred_extn_prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.preferred_extn_prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.preferred_extn_prefix_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_preferred_extn_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.preferred_extn_prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.preferred_extn_prefix_.IsDefault()) {
    _impl_.preferred_extn_prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.preferred_extn_prefix)
}

// optional string national_prefix_for_parsing = 15;
inline bool PhoneMetadata::has_national_prefix_for_parsing() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void PhoneMetadata::clear_national_prefix_for_parsing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_for_parsing_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::std::string& PhoneMetadata::national_prefix_for_parsing() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.national_prefix_for_parsing)
  return _internal_national_prefix_for_parsing();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_national_prefix_for_parsing(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  _impl_.national_prefix_for_parsing_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.national_prefix_for_parsing)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_national_prefix_for_parsing()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::std::string* _s = _internal_mutable_national_prefix_for_parsing();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.national_prefix_for_parsing)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_national_prefix_for_parsing() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.national_prefix_for_parsing_.Get();
}
inline void PhoneMetadata::_internal_set_national_prefix_for_parsing(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_for_parsing_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_national_prefix_for_parsing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.national_prefix_for_parsing_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_national_prefix_for_parsing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.national_prefix_for_parsing)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000040U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  auto* released = _impl_.national_prefix_for_parsing_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.national_prefix_for_parsing_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_national_prefix_for_parsing(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  _impl_.national_prefix_for_parsing_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.national_prefix_for_parsing_.IsDefault()) {
    _impl_.national_prefix_for_parsing_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.national_prefix_for_parsing)
}

// optional string national_prefix_transform_rule = 16;
inline bool PhoneMetadata::has_national_prefix_transform_rule() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void PhoneMetadata::clear_national_prefix_transform_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_transform_rule_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::std::string& PhoneMetadata::national_prefix_transform_rule() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.national_prefix_transform_rule)
  return _internal_national_prefix_transform_rule();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_national_prefix_transform_rule(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  _impl_.national_prefix_transform_rule_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.national_prefix_transform_rule)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_national_prefix_transform_rule()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::std::string* _s = _internal_mutable_national_prefix_transform_rule();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.national_prefix_transform_rule)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_national_prefix_transform_rule() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.national_prefix_transform_rule_.Get();
}
inline void PhoneMetadata::_internal_set_national_prefix_transform_rule(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.national_prefix_transform_rule_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_national_prefix_transform_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.national_prefix_transform_rule_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_national_prefix_transform_rule() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.national_prefix_transform_rule)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000080U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  auto* released = _impl_.national_prefix_transform_rule_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.national_prefix_transform_rule_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_national_prefix_transform_rule(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  _impl_.national_prefix_transform_rule_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.national_prefix_transform_rule_.IsDefault()) {
    _impl_.national_prefix_transform_rule_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.national_prefix_transform_rule)
}

// optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
inline bool PhoneMetadata::has_same_mobile_and_fixed_line_pattern() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x10000000U);
  return value;
}
inline void PhoneMetadata::clear_same_mobile_and_fixed_line_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.same_mobile_and_fixed_line_pattern_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x10000000U);
}
inline bool PhoneMetadata::same_mobile_and_fixed_line_pattern() const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.same_mobile_and_fixed_line_pattern)
  return _internal_same_mobile_and_fixed_line_pattern();
}
inline void PhoneMetadata::set_same_mobile_and_fixed_line_pattern(bool value) {
  _internal_set_same_mobile_and_fixed_line_pattern(value);
  SetHasBit(_impl_._has_bits_[0], 0x10000000U);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.same_mobile_and_fixed_line_pattern)
}
inline bool PhoneMetadata::_internal_same_mobile_and_fixed_line_pattern() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.same_mobile_and_fixed_line_pattern_;
}
inline void PhoneMetadata::_internal_set_same_mobile_and_fixed_line_pattern(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.same_mobile_and_fixed_line_pattern_ = value;
}

// repeated .i18n.phonenumbers.NumberFormat number_format = 19;
inline int PhoneMetadata::_internal_number_format_size() const {
  return _internal_number_format().size();
}
inline int PhoneMetadata::number_format_size() const {
  return _internal_number_format_size();
}
inline void PhoneMetadata::clear_number_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.number_format_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::i18n::phonenumbers::NumberFormat& PhoneMetadata::number_format(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.number_format)
  return _internal_number_format().Get(index);
}
inline ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL PhoneMetadata::mutable_number_format(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.number_format)
  return _internal_mutable_number_format()->Mutable(index);
}
inline ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL PhoneMetadata::add_number_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::i18n::phonenumbers::NumberFormat* _add =
      _internal_mutable_number_format()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:i18n.phonenumbers.PhoneMetadata.number_format)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>& PhoneMetadata::number_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:i18n.phonenumbers.PhoneMetadata.number_format)
  return _internal_number_format();
}
inline ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL
PhoneMetadata::mutable_number_format() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:i18n.phonenumbers.PhoneMetadata.number_format)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_number_format();
}
inline const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>&
PhoneMetadata::_internal_number_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.number_format_;
}
inline ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL
PhoneMetadata::_internal_mutable_number_format() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.number_format_;
}

// repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
inline int PhoneMetadata::_internal_intl_number_format_size() const {
  return _internal_intl_number_format().size();
}
inline int PhoneMetadata::intl_number_format_size() const {
  return _internal_intl_number_format_size();
}
inline void PhoneMetadata::clear_intl_number_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.intl_number_format_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::i18n::phonenumbers::NumberFormat& PhoneMetadata::intl_number_format(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.intl_number_format)
  return _internal_intl_number_format().Get(index);
}
inline ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL PhoneMetadata::mutable_intl_number_format(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.intl_number_format)
  return _internal_mutable_intl_number_format()->Mutable(index);
}
inline ::i18n::phonenumbers::NumberFormat* PROTOBUF_NONNULL PhoneMetadata::add_intl_number_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::i18n::phonenumbers::NumberFormat* _add =
      _internal_mutable_intl_number_format()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:i18n.phonenumbers.PhoneMetadata.intl_number_format)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>& PhoneMetadata::intl_number_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:i18n.phonenumbers.PhoneMetadata.intl_number_format)
  return _internal_intl_number_format();
}
inline ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL
PhoneMetadata::mutable_intl_number_format() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:i18n.phonenumbers.PhoneMetadata.intl_number_format)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_intl_number_format();
}
inline const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>&
PhoneMetadata::_internal_intl_number_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.intl_number_format_;
}
inline ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::NumberFormat>* PROTOBUF_NONNULL
PhoneMetadata::_internal_mutable_intl_number_format() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.intl_number_format_;
}

// optional bool main_country_for_code = 22 [default = false];
inline bool PhoneMetadata::has_main_country_for_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x20000000U);
  return value;
}
inline void PhoneMetadata::clear_main_country_for_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.main_country_for_code_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x20000000U);
}
inline bool PhoneMetadata::main_country_for_code() const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.main_country_for_code)
  return _internal_main_country_for_code();
}
inline void PhoneMetadata::set_main_country_for_code(bool value) {
  _internal_set_main_country_for_code(value);
  SetHasBit(_impl_._has_bits_[0], 0x20000000U);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.main_country_for_code)
}
inline bool PhoneMetadata::_internal_main_country_for_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.main_country_for_code_;
}
inline void PhoneMetadata::_internal_set_main_country_for_code(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.main_country_for_code_ = value;
}

// optional string leading_digits = 23;
inline bool PhoneMetadata::has_leading_digits() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void PhoneMetadata::clear_leading_digits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.leading_digits_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::std::string& PhoneMetadata::leading_digits() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.leading_digits)
  return _internal_leading_digits();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PhoneMetadata::set_leading_digits(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  _impl_.leading_digits_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.leading_digits)
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::mutable_leading_digits()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::std::string* _s = _internal_mutable_leading_digits();
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadata.leading_digits)
  return _s;
}
inline const ::std::string& PhoneMetadata::_internal_leading_digits() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.leading_digits_.Get();
}
inline void PhoneMetadata::_internal_set_leading_digits(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.leading_digits_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PhoneMetadata::_internal_mutable_leading_digits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.leading_digits_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PhoneMetadata::release_leading_digits() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneMetadata.leading_digits)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000200U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  auto* released = _impl_.leading_digits_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.leading_digits_.Set("", GetArena());
  }
  return released;
}
inline void PhoneMetadata::set_allocated_leading_digits(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  _impl_.leading_digits_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.leading_digits_.IsDefault()) {
    _impl_.leading_digits_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneMetadata.leading_digits)
}

// optional bool mobile_number_portable_region = 32 [default = false];
inline bool PhoneMetadata::has_mobile_number_portable_region() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x40000000U);
  return value;
}
inline void PhoneMetadata::clear_mobile_number_portable_region() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mobile_number_portable_region_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x40000000U);
}
inline bool PhoneMetadata::mobile_number_portable_region() const {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadata.mobile_number_portable_region)
  return _internal_mobile_number_portable_region();
}
inline void PhoneMetadata::set_mobile_number_portable_region(bool value) {
  _internal_set_mobile_number_portable_region(value);
  SetHasBit(_impl_._has_bits_[0], 0x40000000U);
  // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneMetadata.mobile_number_portable_region)
}
inline bool PhoneMetadata::_internal_mobile_number_portable_region() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.mobile_number_portable_region_;
}
inline void PhoneMetadata::_internal_set_mobile_number_portable_region(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.mobile_number_portable_region_ = value;
}

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

// PhoneMetadataCollection

// repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
inline int PhoneMetadataCollection::_internal_metadata_size() const {
  return _internal_metadata().size();
}
inline int PhoneMetadataCollection::metadata_size() const {
  return _internal_metadata_size();
}
inline void PhoneMetadataCollection::clear_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.metadata_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::i18n::phonenumbers::PhoneMetadata& PhoneMetadataCollection::metadata(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneMetadataCollection.metadata)
  return _internal_metadata().Get(index);
}
inline ::i18n::phonenumbers::PhoneMetadata* PROTOBUF_NONNULL PhoneMetadataCollection::mutable_metadata(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneMetadataCollection.metadata)
  return _internal_mutable_metadata()->Mutable(index);
}
inline ::i18n::phonenumbers::PhoneMetadata* PROTOBUF_NONNULL PhoneMetadataCollection::add_metadata()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::i18n::phonenumbers::PhoneMetadata* _add =
      _internal_mutable_metadata()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:i18n.phonenumbers.PhoneMetadataCollection.metadata)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>& PhoneMetadataCollection::metadata() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:i18n.phonenumbers.PhoneMetadataCollection.metadata)
  return _internal_metadata();
}
inline ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>* PROTOBUF_NONNULL
PhoneMetadataCollection::mutable_metadata() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:i18n.phonenumbers.PhoneMetadataCollection.metadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_metadata();
}
inline const ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>&
PhoneMetadataCollection::_internal_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.metadata_;
}
inline ::google::protobuf::RepeatedPtrField<::i18n::phonenumbers::PhoneMetadata>* PROTOBUF_NONNULL
PhoneMetadataCollection::_internal_mutable_metadata() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.metadata_;
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace phonenumbers
}  // namespace i18n


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // phonemetadata_2eproto_2epb_2eh
