• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Generated by the protocol buffer compiler.  DO NOT EDIT!
2 // NO CHECKED-IN PROTOBUF GENCODE
3 // source: phonemetadata.proto
4 // Protobuf C++ Version: 5.29.4
5 
6 #include "phonemetadata.pb.h"
7 
8 #include <algorithm>
9 #include <type_traits>
10 #include "google/protobuf/io/coded_stream.h"
11 #include "google/protobuf/generated_message_tctable_impl.h"
12 #include "google/protobuf/extension_set.h"
13 #include "google/protobuf/generated_message_util.h"
14 #include "google/protobuf/wire_format_lite.h"
15 #include "google/protobuf/io/zero_copy_stream_impl_lite.h"
16 // @@protoc_insertion_point(includes)
17 
18 // Must be included last.
19 #include "google/protobuf/port_def.inc"
20 PROTOBUF_PRAGMA_INIT_SEG
21 namespace _pb = ::google::protobuf;
22 namespace _pbi = ::google::protobuf::internal;
23 namespace _fl = ::google::protobuf::internal::field_layout;
24 namespace i18n {
25 namespace phonenumbers {
26 
Impl_(::_pbi::ConstantInitialized)27 inline constexpr PhoneNumberDesc::Impl_::Impl_(
28     ::_pbi::ConstantInitialized) noexcept
29       : _cached_size_{0},
30         possible_length_{},
31         possible_length_local_only_{},
32         national_number_pattern_(
33             &::google::protobuf::internal::fixed_address_empty_string,
34             ::_pbi::ConstantInitialized()),
35         example_number_(
36             &::google::protobuf::internal::fixed_address_empty_string,
37             ::_pbi::ConstantInitialized()) {}
38 
39 template <typename>
PhoneNumberDesc(::_pbi::ConstantInitialized)40 PROTOBUF_CONSTEXPR PhoneNumberDesc::PhoneNumberDesc(::_pbi::ConstantInitialized)
41 #if defined(PROTOBUF_CUSTOM_VTABLE)
42     : ::google::protobuf::MessageLite(_class_data_.base()),
43 #else   // PROTOBUF_CUSTOM_VTABLE
44     : ::google::protobuf::MessageLite(),
45 #endif  // PROTOBUF_CUSTOM_VTABLE
46       _impl_(::_pbi::ConstantInitialized()) {
47 }
48 struct PhoneNumberDescDefaultTypeInternal {
PhoneNumberDescDefaultTypeInternali18n::phonenumbers::PhoneNumberDescDefaultTypeInternal49   PROTOBUF_CONSTEXPR PhoneNumberDescDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
~PhoneNumberDescDefaultTypeInternali18n::phonenumbers::PhoneNumberDescDefaultTypeInternal50   ~PhoneNumberDescDefaultTypeInternal() {}
51   union {
52     PhoneNumberDesc _instance;
53   };
54 };
55 
56 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
57     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PhoneNumberDescDefaultTypeInternal _PhoneNumberDesc_default_instance_;
58 
Impl_(::_pbi::ConstantInitialized)59 inline constexpr NumberFormat::Impl_::Impl_(
60     ::_pbi::ConstantInitialized) noexcept
61       : _cached_size_{0},
62         leading_digits_pattern_{},
63         pattern_(
64             &::google::protobuf::internal::fixed_address_empty_string,
65             ::_pbi::ConstantInitialized()),
66         format_(
67             &::google::protobuf::internal::fixed_address_empty_string,
68             ::_pbi::ConstantInitialized()),
69         national_prefix_formatting_rule_(
70             &::google::protobuf::internal::fixed_address_empty_string,
71             ::_pbi::ConstantInitialized()),
72         domestic_carrier_code_formatting_rule_(
73             &::google::protobuf::internal::fixed_address_empty_string,
74             ::_pbi::ConstantInitialized()),
75         national_prefix_optional_when_formatting_{false} {}
76 
77 template <typename>
NumberFormat(::_pbi::ConstantInitialized)78 PROTOBUF_CONSTEXPR NumberFormat::NumberFormat(::_pbi::ConstantInitialized)
79 #if defined(PROTOBUF_CUSTOM_VTABLE)
80     : ::google::protobuf::MessageLite(_class_data_.base()),
81 #else   // PROTOBUF_CUSTOM_VTABLE
82     : ::google::protobuf::MessageLite(),
83 #endif  // PROTOBUF_CUSTOM_VTABLE
84       _impl_(::_pbi::ConstantInitialized()) {
85 }
86 struct NumberFormatDefaultTypeInternal {
NumberFormatDefaultTypeInternali18n::phonenumbers::NumberFormatDefaultTypeInternal87   PROTOBUF_CONSTEXPR NumberFormatDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
~NumberFormatDefaultTypeInternali18n::phonenumbers::NumberFormatDefaultTypeInternal88   ~NumberFormatDefaultTypeInternal() {}
89   union {
90     NumberFormat _instance;
91   };
92 };
93 
94 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
95     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NumberFormatDefaultTypeInternal _NumberFormat_default_instance_;
96 
Impl_(::_pbi::ConstantInitialized)97 inline constexpr PhoneMetadata::Impl_::Impl_(
98     ::_pbi::ConstantInitialized) noexcept
99       : _cached_size_{0},
100         number_format_{},
101         intl_number_format_{},
102         id_(
103             &::google::protobuf::internal::fixed_address_empty_string,
104             ::_pbi::ConstantInitialized()),
105         international_prefix_(
106             &::google::protobuf::internal::fixed_address_empty_string,
107             ::_pbi::ConstantInitialized()),
108         national_prefix_(
109             &::google::protobuf::internal::fixed_address_empty_string,
110             ::_pbi::ConstantInitialized()),
111         preferred_extn_prefix_(
112             &::google::protobuf::internal::fixed_address_empty_string,
113             ::_pbi::ConstantInitialized()),
114         national_prefix_for_parsing_(
115             &::google::protobuf::internal::fixed_address_empty_string,
116             ::_pbi::ConstantInitialized()),
117         national_prefix_transform_rule_(
118             &::google::protobuf::internal::fixed_address_empty_string,
119             ::_pbi::ConstantInitialized()),
120         preferred_international_prefix_(
121             &::google::protobuf::internal::fixed_address_empty_string,
122             ::_pbi::ConstantInitialized()),
123         leading_digits_(
124             &::google::protobuf::internal::fixed_address_empty_string,
125             ::_pbi::ConstantInitialized()),
126         general_desc_{nullptr},
127         fixed_line_{nullptr},
128         mobile_{nullptr},
129         toll_free_{nullptr},
130         premium_rate_{nullptr},
131         shared_cost_{nullptr},
132         personal_number_{nullptr},
133         voip_{nullptr},
134         pager_{nullptr},
135         no_international_dialling_{nullptr},
136         uan_{nullptr},
137         emergency_{nullptr},
138         voicemail_{nullptr},
139         short_code_{nullptr},
140         standard_rate_{nullptr},
141         carrier_specific_{nullptr},
142         sms_services_{nullptr},
143         country_code_{0},
144         same_mobile_and_fixed_line_pattern_{false},
145         main_country_for_code_{false},
146         mobile_number_portable_region_{false} {}
147 
148 template <typename>
PhoneMetadata(::_pbi::ConstantInitialized)149 PROTOBUF_CONSTEXPR PhoneMetadata::PhoneMetadata(::_pbi::ConstantInitialized)
150 #if defined(PROTOBUF_CUSTOM_VTABLE)
151     : ::google::protobuf::MessageLite(_class_data_.base()),
152 #else   // PROTOBUF_CUSTOM_VTABLE
153     : ::google::protobuf::MessageLite(),
154 #endif  // PROTOBUF_CUSTOM_VTABLE
155       _impl_(::_pbi::ConstantInitialized()) {
156 }
157 struct PhoneMetadataDefaultTypeInternal {
PhoneMetadataDefaultTypeInternali18n::phonenumbers::PhoneMetadataDefaultTypeInternal158   PROTOBUF_CONSTEXPR PhoneMetadataDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
~PhoneMetadataDefaultTypeInternali18n::phonenumbers::PhoneMetadataDefaultTypeInternal159   ~PhoneMetadataDefaultTypeInternal() {}
160   union {
161     PhoneMetadata _instance;
162   };
163 };
164 
165 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
166     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PhoneMetadataDefaultTypeInternal _PhoneMetadata_default_instance_;
167 
Impl_(::_pbi::ConstantInitialized)168 inline constexpr PhoneMetadataCollection::Impl_::Impl_(
169     ::_pbi::ConstantInitialized) noexcept
170       : metadata_{},
171         _cached_size_{0} {}
172 
173 template <typename>
PhoneMetadataCollection(::_pbi::ConstantInitialized)174 PROTOBUF_CONSTEXPR PhoneMetadataCollection::PhoneMetadataCollection(::_pbi::ConstantInitialized)
175 #if defined(PROTOBUF_CUSTOM_VTABLE)
176     : ::google::protobuf::MessageLite(_class_data_.base()),
177 #else   // PROTOBUF_CUSTOM_VTABLE
178     : ::google::protobuf::MessageLite(),
179 #endif  // PROTOBUF_CUSTOM_VTABLE
180       _impl_(::_pbi::ConstantInitialized()) {
181 }
182 struct PhoneMetadataCollectionDefaultTypeInternal {
PhoneMetadataCollectionDefaultTypeInternali18n::phonenumbers::PhoneMetadataCollectionDefaultTypeInternal183   PROTOBUF_CONSTEXPR PhoneMetadataCollectionDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
~PhoneMetadataCollectionDefaultTypeInternali18n::phonenumbers::PhoneMetadataCollectionDefaultTypeInternal184   ~PhoneMetadataCollectionDefaultTypeInternal() {}
185   union {
186     PhoneMetadataCollection _instance;
187   };
188 };
189 
190 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
191     PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PhoneMetadataCollectionDefaultTypeInternal _PhoneMetadataCollection_default_instance_;
192 }  // namespace phonenumbers
193 }  // namespace i18n
194 namespace i18n {
195 namespace phonenumbers {
196 // ===================================================================
197 
198 class NumberFormat::_Internal {
199  public:
200   using HasBits =
201       decltype(std::declval<NumberFormat>()._impl_._has_bits_);
202   static constexpr ::int32_t kHasBitsOffset =
203       8 * PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_._has_bits_);
MissingRequiredFields(const HasBits & has_bits)204   static bool MissingRequiredFields(const HasBits& has_bits) {
205     return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0;
206   }
207 };
208 
NumberFormat(::google::protobuf::Arena * arena)209 NumberFormat::NumberFormat(::google::protobuf::Arena* arena)
210 #if defined(PROTOBUF_CUSTOM_VTABLE)
211     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
212 #else   // PROTOBUF_CUSTOM_VTABLE
213     : ::google::protobuf::MessageLite(arena) {
214 #endif  // PROTOBUF_CUSTOM_VTABLE
215   SharedCtor(arena);
216   // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.NumberFormat)
217 }
218 inline PROTOBUF_NDEBUG_INLINE NumberFormat::Impl_::Impl_(
219     ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
220     const Impl_& from, const ::i18n::phonenumbers::NumberFormat& from_msg)
221       : _has_bits_{from._has_bits_},
222         _cached_size_{0},
223         leading_digits_pattern_{visibility, arena, from.leading_digits_pattern_},
224         pattern_(arena, from.pattern_),
225         format_(arena, from.format_),
226         national_prefix_formatting_rule_(arena, from.national_prefix_formatting_rule_),
227         domestic_carrier_code_formatting_rule_(arena, from.domestic_carrier_code_formatting_rule_) {}
228 
229 NumberFormat::NumberFormat(
230     ::google::protobuf::Arena* arena,
231     const NumberFormat& from)
232 #if defined(PROTOBUF_CUSTOM_VTABLE)
233     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
234 #else   // PROTOBUF_CUSTOM_VTABLE
235     : ::google::protobuf::MessageLite(arena) {
236 #endif  // PROTOBUF_CUSTOM_VTABLE
237   NumberFormat* const _this = this;
238   (void)_this;
239   _internal_metadata_.MergeFrom<std::string>(
240       from._internal_metadata_);
241   new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
242   _impl_.national_prefix_optional_when_formatting_ = from._impl_.national_prefix_optional_when_formatting_;
243 
244   // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.NumberFormat)
245 }
246 inline PROTOBUF_NDEBUG_INLINE NumberFormat::Impl_::Impl_(
247     ::google::protobuf::internal::InternalVisibility visibility,
248     ::google::protobuf::Arena* arena)
249       : _cached_size_{0},
250         leading_digits_pattern_{visibility, arena},
251         pattern_(arena),
252         format_(arena),
253         national_prefix_formatting_rule_(arena),
254         domestic_carrier_code_formatting_rule_(arena) {}
255 
256 inline void NumberFormat::SharedCtor(::_pb::Arena* arena) {
257   new (&_impl_) Impl_(internal_visibility(), arena);
258   _impl_.national_prefix_optional_when_formatting_ = {};
259 }
260 NumberFormat::~NumberFormat() {
261   // @@protoc_insertion_point(destructor:i18n.phonenumbers.NumberFormat)
262   SharedDtor(*this);
263 }
264 inline void NumberFormat::SharedDtor(MessageLite& self) {
265   NumberFormat& this_ = static_cast<NumberFormat&>(self);
266   this_._internal_metadata_.Delete<std::string>();
267   ABSL_DCHECK(this_.GetArena() == nullptr);
268   this_._impl_.pattern_.Destroy();
269   this_._impl_.format_.Destroy();
270   this_._impl_.national_prefix_formatting_rule_.Destroy();
271   this_._impl_.domestic_carrier_code_formatting_rule_.Destroy();
272   this_._impl_.~Impl_();
273 }
274 
275 inline void* NumberFormat::PlacementNew_(const void*, void* mem,
276                                         ::google::protobuf::Arena* arena) {
277   return ::new (mem) NumberFormat(arena);
278 }
279 constexpr auto NumberFormat::InternalNewImpl_() {
280   constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
281       PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.leading_digits_pattern_) +
282           decltype(NumberFormat::_impl_.leading_digits_pattern_)::
283               InternalGetArenaOffset(
284                   ::google::protobuf::MessageLite::internal_visibility()),
285   });
286   if (arena_bits.has_value()) {
287     return ::google::protobuf::internal::MessageCreator::CopyInit(
288         sizeof(NumberFormat), alignof(NumberFormat), *arena_bits);
289   } else {
290     return ::google::protobuf::internal::MessageCreator(&NumberFormat::PlacementNew_,
291                                  sizeof(NumberFormat),
292                                  alignof(NumberFormat));
293   }
294 }
295 PROTOBUF_CONSTINIT
296 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
297 const ::google::protobuf::internal::ClassDataLite<31> NumberFormat::_class_data_ = {
298     {
299         &_NumberFormat_default_instance_._instance,
300         &_table_.header,
301         nullptr,  // OnDemandRegisterArenaDtor
302         NumberFormat::IsInitializedImpl,
303         &NumberFormat::MergeImpl,
304         ::google::protobuf::MessageLite::GetNewImpl<NumberFormat>(),
305 #if defined(PROTOBUF_CUSTOM_VTABLE)
306         &NumberFormat::SharedDtor,
307         ::google::protobuf::MessageLite::GetClearImpl<NumberFormat>(), &NumberFormat::ByteSizeLong,
308             &NumberFormat::_InternalSerialize,
309 #endif  // PROTOBUF_CUSTOM_VTABLE
310         PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_._cached_size_),
311         true,
312     },
313     "i18n.phonenumbers.NumberFormat",
314 };
315 const ::google::protobuf::internal::ClassData* NumberFormat::GetClassData() const {
316   return _class_data_.base();
317 }
318 PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
319 const ::_pbi::TcParseTable<3, 6, 0, 0, 2> NumberFormat::_table_ = {
320   {
321     PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_._has_bits_),
322     0, // no _extensions_
323     6, 56,  // max_field_number, fast_idx_mask
324     offsetof(decltype(_table_), field_lookup_table),
325     4294967232,  // skipmap
326     offsetof(decltype(_table_), field_entries),
327     6,  // num_field_entries
328     0,  // num_aux_entries
329     offsetof(decltype(_table_), field_names),  // no aux_entries
330     _class_data_.base(),
331     nullptr,  // post_loop_handler
332     ::_pbi::TcParser::GenericFallbackLite,  // fallback
333     #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
334     ::_pbi::TcParser::GetTable<::i18n::phonenumbers::NumberFormat>(),  // to_prefetch
335     #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
336   }, {{
337     {::_pbi::TcParser::MiniParse, {}},
338     // required string pattern = 1;
339     {::_pbi::TcParser::FastBS1,
340      {10, 0, 0, PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.pattern_)}},
341     // required string format = 2;
342     {::_pbi::TcParser::FastBS1,
343      {18, 1, 0, PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.format_)}},
344     // repeated string leading_digits_pattern = 3;
345     {::_pbi::TcParser::FastBR1,
346      {26, 63, 0, PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.leading_digits_pattern_)}},
347     // optional string national_prefix_formatting_rule = 4;
348     {::_pbi::TcParser::FastBS1,
349      {34, 2, 0, PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_formatting_rule_)}},
350     // optional string domestic_carrier_code_formatting_rule = 5;
351     {::_pbi::TcParser::FastBS1,
352      {42, 3, 0, PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.domestic_carrier_code_formatting_rule_)}},
353     // optional bool national_prefix_optional_when_formatting = 6 [default = false];
354     {::_pbi::TcParser::FastV8S1,
355      {48, 4, 0, PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_optional_when_formatting_)}},
356     {::_pbi::TcParser::MiniParse, {}},
357   }}, {{
358     65535, 65535
359   }}, {{
360     // required string pattern = 1;
361     {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.pattern_), _Internal::kHasBitsOffset + 0, 0,
362     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
363     // required string format = 2;
364     {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.format_), _Internal::kHasBitsOffset + 1, 0,
365     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
366     // repeated string leading_digits_pattern = 3;
367     {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.leading_digits_pattern_), -1, 0,
368     (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
369     // optional string national_prefix_formatting_rule = 4;
370     {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_formatting_rule_), _Internal::kHasBitsOffset + 2, 0,
371     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
372     // optional string domestic_carrier_code_formatting_rule = 5;
373     {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.domestic_carrier_code_formatting_rule_), _Internal::kHasBitsOffset + 3, 0,
374     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
375     // optional bool national_prefix_optional_when_formatting = 6 [default = false];
376     {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_optional_when_formatting_), _Internal::kHasBitsOffset + 4, 0,
377     (0 | ::_fl::kFcOptional | ::_fl::kBool)},
378   }},
379   // no aux_entries
380   {{
381   }},
382 };
383 
384 PROTOBUF_NOINLINE void NumberFormat::Clear() {
385 // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.NumberFormat)
386   ::google::protobuf::internal::TSanWrite(&_impl_);
387   ::uint32_t cached_has_bits = 0;
388   // Prevent compiler warnings about cached_has_bits being unused
389   (void) cached_has_bits;
390 
391   _impl_.leading_digits_pattern_.Clear();
392   cached_has_bits = _impl_._has_bits_[0];
393   if (cached_has_bits & 0x0000000fu) {
394     if (cached_has_bits & 0x00000001u) {
395       _impl_.pattern_.ClearNonDefaultToEmpty();
396     }
397     if (cached_has_bits & 0x00000002u) {
398       _impl_.format_.ClearNonDefaultToEmpty();
399     }
400     if (cached_has_bits & 0x00000004u) {
401       _impl_.national_prefix_formatting_rule_.ClearNonDefaultToEmpty();
402     }
403     if (cached_has_bits & 0x00000008u) {
404       _impl_.domestic_carrier_code_formatting_rule_.ClearNonDefaultToEmpty();
405     }
406   }
407   _impl_.national_prefix_optional_when_formatting_ = false;
408   _impl_._has_bits_.Clear();
409   _internal_metadata_.Clear<std::string>();
410 }
411 
412 #if defined(PROTOBUF_CUSTOM_VTABLE)
413         ::uint8_t* NumberFormat::_InternalSerialize(
414             const MessageLite& base, ::uint8_t* target,
415             ::google::protobuf::io::EpsCopyOutputStream* stream) {
416           const NumberFormat& this_ = static_cast<const NumberFormat&>(base);
417 #else   // PROTOBUF_CUSTOM_VTABLE
418         ::uint8_t* NumberFormat::_InternalSerialize(
419             ::uint8_t* target,
420             ::google::protobuf::io::EpsCopyOutputStream* stream) const {
421           const NumberFormat& this_ = *this;
422 #endif  // PROTOBUF_CUSTOM_VTABLE
423           // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.NumberFormat)
424           ::uint32_t cached_has_bits = 0;
425           (void)cached_has_bits;
426 
427           cached_has_bits = this_._impl_._has_bits_[0];
428           // required string pattern = 1;
429           if (cached_has_bits & 0x00000001u) {
430             const std::string& _s = this_._internal_pattern();
431             target = stream->WriteStringMaybeAliased(1, _s, target);
432           }
433 
434           // required string format = 2;
435           if (cached_has_bits & 0x00000002u) {
436             const std::string& _s = this_._internal_format();
437             target = stream->WriteStringMaybeAliased(2, _s, target);
438           }
439 
440           // repeated string leading_digits_pattern = 3;
441           for (int i = 0, n = this_._internal_leading_digits_pattern_size(); i < n; ++i) {
442             const auto& s = this_._internal_leading_digits_pattern().Get(i);
443             target = stream->WriteString(3, s, target);
444           }
445 
446           // optional string national_prefix_formatting_rule = 4;
447           if (cached_has_bits & 0x00000004u) {
448             const std::string& _s = this_._internal_national_prefix_formatting_rule();
449             target = stream->WriteStringMaybeAliased(4, _s, target);
450           }
451 
452           // optional string domestic_carrier_code_formatting_rule = 5;
453           if (cached_has_bits & 0x00000008u) {
454             const std::string& _s = this_._internal_domestic_carrier_code_formatting_rule();
455             target = stream->WriteStringMaybeAliased(5, _s, target);
456           }
457 
458           // optional bool national_prefix_optional_when_formatting = 6 [default = false];
459           if (cached_has_bits & 0x00000010u) {
460             target = stream->EnsureSpace(target);
461             target = ::_pbi::WireFormatLite::WriteBoolToArray(
462                 6, this_._internal_national_prefix_optional_when_formatting(), target);
463           }
464 
465           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
466             target = stream->WriteRaw(
467                 this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
468                 static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
469           }
470           // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.NumberFormat)
471           return target;
472         }
473 
474 #if defined(PROTOBUF_CUSTOM_VTABLE)
475         ::size_t NumberFormat::ByteSizeLong(const MessageLite& base) {
476           const NumberFormat& this_ = static_cast<const NumberFormat&>(base);
477 #else   // PROTOBUF_CUSTOM_VTABLE
478         ::size_t NumberFormat::ByteSizeLong() const {
479           const NumberFormat& this_ = *this;
480 #endif  // PROTOBUF_CUSTOM_VTABLE
481           // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.NumberFormat)
482           ::size_t total_size = 0;
483 
484           ::uint32_t cached_has_bits = 0;
485           // Prevent compiler warnings about cached_has_bits being unused
486           (void)cached_has_bits;
487 
488           ::_pbi::Prefetch5LinesFrom7Lines(&this_);
489            {
490             // repeated string leading_digits_pattern = 3;
491             {
492               total_size +=
493                   1 * ::google::protobuf::internal::FromIntSize(this_._internal_leading_digits_pattern().size());
494               for (int i = 0, n = this_._internal_leading_digits_pattern().size(); i < n; ++i) {
495                 total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
496                     this_._internal_leading_digits_pattern().Get(i));
497               }
498             }
499           }
500           cached_has_bits = this_._impl_._has_bits_[0];
501           if (cached_has_bits & 0x00000003u) {
502             // required string pattern = 1;
503             if (cached_has_bits & 0x00000001u) {
504               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
505                                               this_._internal_pattern());
506             }
507             // required string format = 2;
508             if (cached_has_bits & 0x00000002u) {
509               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
510                                               this_._internal_format());
511             }
512           }
513           if (cached_has_bits & 0x0000001cu) {
514             // optional string national_prefix_formatting_rule = 4;
515             if (cached_has_bits & 0x00000004u) {
516               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
517                                               this_._internal_national_prefix_formatting_rule());
518             }
519             // optional string domestic_carrier_code_formatting_rule = 5;
520             if (cached_has_bits & 0x00000008u) {
521               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
522                                               this_._internal_domestic_carrier_code_formatting_rule());
523             }
524             // optional bool national_prefix_optional_when_formatting = 6 [default = false];
525             if (cached_has_bits & 0x00000010u) {
526               total_size += 2;
527             }
528           }
529           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
530             total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
531           }
532           this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
533           return total_size;
534         }
535 
536 void NumberFormat::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
537   auto* const _this = static_cast<NumberFormat*>(&to_msg);
538   auto& from = static_cast<const NumberFormat&>(from_msg);
539   // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.NumberFormat)
540   ABSL_DCHECK_NE(&from, _this);
541   ::uint32_t cached_has_bits = 0;
542   (void) cached_has_bits;
543 
544   _this->_internal_mutable_leading_digits_pattern()->MergeFrom(from._internal_leading_digits_pattern());
545   cached_has_bits = from._impl_._has_bits_[0];
546   if (cached_has_bits & 0x0000001fu) {
547     if (cached_has_bits & 0x00000001u) {
548       _this->_internal_set_pattern(from._internal_pattern());
549     }
550     if (cached_has_bits & 0x00000002u) {
551       _this->_internal_set_format(from._internal_format());
552     }
553     if (cached_has_bits & 0x00000004u) {
554       _this->_internal_set_national_prefix_formatting_rule(from._internal_national_prefix_formatting_rule());
555     }
556     if (cached_has_bits & 0x00000008u) {
557       _this->_internal_set_domestic_carrier_code_formatting_rule(from._internal_domestic_carrier_code_formatting_rule());
558     }
559     if (cached_has_bits & 0x00000010u) {
560       _this->_impl_.national_prefix_optional_when_formatting_ = from._impl_.national_prefix_optional_when_formatting_;
561     }
562   }
563   _this->_impl_._has_bits_[0] |= cached_has_bits;
564   _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
565 }
566 
567 void NumberFormat::CopyFrom(const NumberFormat& from) {
568 // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.NumberFormat)
569   if (&from == this) return;
570   Clear();
571   MergeFrom(from);
572 }
573 
574 PROTOBUF_NOINLINE bool NumberFormat::IsInitializedImpl(
575     const MessageLite& msg) {
576   auto& this_ = static_cast<const NumberFormat&>(msg);
577   if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
578     return false;
579   }
580   return true;
581 }
582 
583 void NumberFormat::InternalSwap(NumberFormat* PROTOBUF_RESTRICT other) {
584   using std::swap;
585   auto* arena = GetArena();
586   ABSL_DCHECK_EQ(arena, other->GetArena());
587   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
588   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
589   _impl_.leading_digits_pattern_.InternalSwap(&other->_impl_.leading_digits_pattern_);
590   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.pattern_, &other->_impl_.pattern_, arena);
591   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.format_, &other->_impl_.format_, arena);
592   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_formatting_rule_, &other->_impl_.national_prefix_formatting_rule_, arena);
593   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.domestic_carrier_code_formatting_rule_, &other->_impl_.domestic_carrier_code_formatting_rule_, arena);
594         swap(_impl_.national_prefix_optional_when_formatting_, other->_impl_.national_prefix_optional_when_formatting_);
595 }
596 
597 // ===================================================================
598 
599 class PhoneNumberDesc::_Internal {
600  public:
601   using HasBits =
602       decltype(std::declval<PhoneNumberDesc>()._impl_._has_bits_);
603   static constexpr ::int32_t kHasBitsOffset =
604       8 * PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_._has_bits_);
605 };
606 
607 PhoneNumberDesc::PhoneNumberDesc(::google::protobuf::Arena* arena)
608 #if defined(PROTOBUF_CUSTOM_VTABLE)
609     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
610 #else   // PROTOBUF_CUSTOM_VTABLE
611     : ::google::protobuf::MessageLite(arena) {
612 #endif  // PROTOBUF_CUSTOM_VTABLE
613   SharedCtor(arena);
614   // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneNumberDesc)
615 }
616 inline PROTOBUF_NDEBUG_INLINE PhoneNumberDesc::Impl_::Impl_(
617     ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
618     const Impl_& from, const ::i18n::phonenumbers::PhoneNumberDesc& from_msg)
619       : _has_bits_{from._has_bits_},
620         _cached_size_{0},
621         possible_length_{visibility, arena, from.possible_length_},
622         possible_length_local_only_{visibility, arena, from.possible_length_local_only_},
623         national_number_pattern_(arena, from.national_number_pattern_),
624         example_number_(arena, from.example_number_) {}
625 
626 PhoneNumberDesc::PhoneNumberDesc(
627     ::google::protobuf::Arena* arena,
628     const PhoneNumberDesc& from)
629 #if defined(PROTOBUF_CUSTOM_VTABLE)
630     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
631 #else   // PROTOBUF_CUSTOM_VTABLE
632     : ::google::protobuf::MessageLite(arena) {
633 #endif  // PROTOBUF_CUSTOM_VTABLE
634   PhoneNumberDesc* const _this = this;
635   (void)_this;
636   _internal_metadata_.MergeFrom<std::string>(
637       from._internal_metadata_);
638   new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
639 
640   // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneNumberDesc)
641 }
642 inline PROTOBUF_NDEBUG_INLINE PhoneNumberDesc::Impl_::Impl_(
643     ::google::protobuf::internal::InternalVisibility visibility,
644     ::google::protobuf::Arena* arena)
645       : _cached_size_{0},
646         possible_length_{visibility, arena},
647         possible_length_local_only_{visibility, arena},
648         national_number_pattern_(arena),
649         example_number_(arena) {}
650 
651 inline void PhoneNumberDesc::SharedCtor(::_pb::Arena* arena) {
652   new (&_impl_) Impl_(internal_visibility(), arena);
653 }
654 PhoneNumberDesc::~PhoneNumberDesc() {
655   // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneNumberDesc)
656   SharedDtor(*this);
657 }
658 inline void PhoneNumberDesc::SharedDtor(MessageLite& self) {
659   PhoneNumberDesc& this_ = static_cast<PhoneNumberDesc&>(self);
660   this_._internal_metadata_.Delete<std::string>();
661   ABSL_DCHECK(this_.GetArena() == nullptr);
662   this_._impl_.national_number_pattern_.Destroy();
663   this_._impl_.example_number_.Destroy();
664   this_._impl_.~Impl_();
665 }
666 
667 inline void* PhoneNumberDesc::PlacementNew_(const void*, void* mem,
668                                         ::google::protobuf::Arena* arena) {
669   return ::new (mem) PhoneNumberDesc(arena);
670 }
671 constexpr auto PhoneNumberDesc::InternalNewImpl_() {
672   constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
673       PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_) +
674           decltype(PhoneNumberDesc::_impl_.possible_length_)::
675               InternalGetArenaOffset(
676                   ::google::protobuf::MessageLite::internal_visibility()),
677       PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_local_only_) +
678           decltype(PhoneNumberDesc::_impl_.possible_length_local_only_)::
679               InternalGetArenaOffset(
680                   ::google::protobuf::MessageLite::internal_visibility()),
681   });
682   if (arena_bits.has_value()) {
683     return ::google::protobuf::internal::MessageCreator::CopyInit(
684         sizeof(PhoneNumberDesc), alignof(PhoneNumberDesc), *arena_bits);
685   } else {
686     return ::google::protobuf::internal::MessageCreator(&PhoneNumberDesc::PlacementNew_,
687                                  sizeof(PhoneNumberDesc),
688                                  alignof(PhoneNumberDesc));
689   }
690 }
691 PROTOBUF_CONSTINIT
692 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
693 const ::google::protobuf::internal::ClassDataLite<34> PhoneNumberDesc::_class_data_ = {
694     {
695         &_PhoneNumberDesc_default_instance_._instance,
696         &_table_.header,
697         nullptr,  // OnDemandRegisterArenaDtor
698         nullptr,  // IsInitialized
699         &PhoneNumberDesc::MergeImpl,
700         ::google::protobuf::MessageLite::GetNewImpl<PhoneNumberDesc>(),
701 #if defined(PROTOBUF_CUSTOM_VTABLE)
702         &PhoneNumberDesc::SharedDtor,
703         ::google::protobuf::MessageLite::GetClearImpl<PhoneNumberDesc>(), &PhoneNumberDesc::ByteSizeLong,
704             &PhoneNumberDesc::_InternalSerialize,
705 #endif  // PROTOBUF_CUSTOM_VTABLE
706         PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_._cached_size_),
707         true,
708     },
709     "i18n.phonenumbers.PhoneNumberDesc",
710 };
711 const ::google::protobuf::internal::ClassData* PhoneNumberDesc::GetClassData() const {
712   return _class_data_.base();
713 }
714 PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
715 const ::_pbi::TcParseTable<3, 4, 0, 0, 2> PhoneNumberDesc::_table_ = {
716   {
717     PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_._has_bits_),
718     0, // no _extensions_
719     10, 56,  // max_field_number, fast_idx_mask
720     offsetof(decltype(_table_), field_lookup_table),
721     4294966493,  // skipmap
722     offsetof(decltype(_table_), field_entries),
723     4,  // num_field_entries
724     0,  // num_aux_entries
725     offsetof(decltype(_table_), field_names),  // no aux_entries
726     _class_data_.base(),
727     nullptr,  // post_loop_handler
728     ::_pbi::TcParser::GenericFallbackLite,  // fallback
729     #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
730     ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>(),  // to_prefetch
731     #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
732   }, {{
733     {::_pbi::TcParser::MiniParse, {}},
734     // repeated int32 possible_length = 9;
735     {::_pbi::TcParser::FastV32R1,
736      {72, 63, 0, PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_)}},
737     // optional string national_number_pattern = 2;
738     {::_pbi::TcParser::FastBS1,
739      {18, 0, 0, PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.national_number_pattern_)}},
740     {::_pbi::TcParser::MiniParse, {}},
741     {::_pbi::TcParser::MiniParse, {}},
742     {::_pbi::TcParser::MiniParse, {}},
743     // optional string example_number = 6;
744     {::_pbi::TcParser::FastBS1,
745      {50, 1, 0, PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.example_number_)}},
746     {::_pbi::TcParser::MiniParse, {}},
747   }}, {{
748     65535, 65535
749   }}, {{
750     // optional string national_number_pattern = 2;
751     {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.national_number_pattern_), _Internal::kHasBitsOffset + 0, 0,
752     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
753     // optional string example_number = 6;
754     {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.example_number_), _Internal::kHasBitsOffset + 1, 0,
755     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
756     // repeated int32 possible_length = 9;
757     {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_), -1, 0,
758     (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
759     // repeated int32 possible_length_local_only = 10;
760     {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_local_only_), -1, 0,
761     (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
762   }},
763   // no aux_entries
764   {{
765   }},
766 };
767 
768 PROTOBUF_NOINLINE void PhoneNumberDesc::Clear() {
769 // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneNumberDesc)
770   ::google::protobuf::internal::TSanWrite(&_impl_);
771   ::uint32_t cached_has_bits = 0;
772   // Prevent compiler warnings about cached_has_bits being unused
773   (void) cached_has_bits;
774 
775   _impl_.possible_length_.Clear();
776   _impl_.possible_length_local_only_.Clear();
777   cached_has_bits = _impl_._has_bits_[0];
778   if (cached_has_bits & 0x00000003u) {
779     if (cached_has_bits & 0x00000001u) {
780       _impl_.national_number_pattern_.ClearNonDefaultToEmpty();
781     }
782     if (cached_has_bits & 0x00000002u) {
783       _impl_.example_number_.ClearNonDefaultToEmpty();
784     }
785   }
786   _impl_._has_bits_.Clear();
787   _internal_metadata_.Clear<std::string>();
788 }
789 
790 #if defined(PROTOBUF_CUSTOM_VTABLE)
791         ::uint8_t* PhoneNumberDesc::_InternalSerialize(
792             const MessageLite& base, ::uint8_t* target,
793             ::google::protobuf::io::EpsCopyOutputStream* stream) {
794           const PhoneNumberDesc& this_ = static_cast<const PhoneNumberDesc&>(base);
795 #else   // PROTOBUF_CUSTOM_VTABLE
796         ::uint8_t* PhoneNumberDesc::_InternalSerialize(
797             ::uint8_t* target,
798             ::google::protobuf::io::EpsCopyOutputStream* stream) const {
799           const PhoneNumberDesc& this_ = *this;
800 #endif  // PROTOBUF_CUSTOM_VTABLE
801           // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneNumberDesc)
802           ::uint32_t cached_has_bits = 0;
803           (void)cached_has_bits;
804 
805           cached_has_bits = this_._impl_._has_bits_[0];
806           // optional string national_number_pattern = 2;
807           if (cached_has_bits & 0x00000001u) {
808             const std::string& _s = this_._internal_national_number_pattern();
809             target = stream->WriteStringMaybeAliased(2, _s, target);
810           }
811 
812           // optional string example_number = 6;
813           if (cached_has_bits & 0x00000002u) {
814             const std::string& _s = this_._internal_example_number();
815             target = stream->WriteStringMaybeAliased(6, _s, target);
816           }
817 
818           // repeated int32 possible_length = 9;
819           for (int i = 0, n = this_._internal_possible_length_size(); i < n; ++i) {
820             target = stream->EnsureSpace(target);
821             target = ::_pbi::WireFormatLite::WriteInt32ToArray(
822                 9, this_._internal_possible_length().Get(i), target);
823           }
824 
825           // repeated int32 possible_length_local_only = 10;
826           for (int i = 0, n = this_._internal_possible_length_local_only_size(); i < n; ++i) {
827             target = stream->EnsureSpace(target);
828             target = ::_pbi::WireFormatLite::WriteInt32ToArray(
829                 10, this_._internal_possible_length_local_only().Get(i), target);
830           }
831 
832           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
833             target = stream->WriteRaw(
834                 this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
835                 static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
836           }
837           // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneNumberDesc)
838           return target;
839         }
840 
841 #if defined(PROTOBUF_CUSTOM_VTABLE)
842         ::size_t PhoneNumberDesc::ByteSizeLong(const MessageLite& base) {
843           const PhoneNumberDesc& this_ = static_cast<const PhoneNumberDesc&>(base);
844 #else   // PROTOBUF_CUSTOM_VTABLE
845         ::size_t PhoneNumberDesc::ByteSizeLong() const {
846           const PhoneNumberDesc& this_ = *this;
847 #endif  // PROTOBUF_CUSTOM_VTABLE
848           // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneNumberDesc)
849           ::size_t total_size = 0;
850 
851           ::uint32_t cached_has_bits = 0;
852           // Prevent compiler warnings about cached_has_bits being unused
853           (void)cached_has_bits;
854 
855           ::_pbi::Prefetch5LinesFrom7Lines(&this_);
856            {
857             // repeated int32 possible_length = 9;
858             {
859               std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
860                   this_._internal_possible_length());
861               std::size_t tag_size = std::size_t{1} *
862                   ::_pbi::FromIntSize(this_._internal_possible_length_size());
863               total_size += tag_size + data_size;
864             }
865             // repeated int32 possible_length_local_only = 10;
866             {
867               std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
868                   this_._internal_possible_length_local_only());
869               std::size_t tag_size = std::size_t{1} *
870                   ::_pbi::FromIntSize(this_._internal_possible_length_local_only_size());
871               total_size += tag_size + data_size;
872             }
873           }
874           cached_has_bits = this_._impl_._has_bits_[0];
875           if (cached_has_bits & 0x00000003u) {
876             // optional string national_number_pattern = 2;
877             if (cached_has_bits & 0x00000001u) {
878               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
879                                               this_._internal_national_number_pattern());
880             }
881             // optional string example_number = 6;
882             if (cached_has_bits & 0x00000002u) {
883               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
884                                               this_._internal_example_number());
885             }
886           }
887           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
888             total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
889           }
890           this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
891           return total_size;
892         }
893 
894 void PhoneNumberDesc::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
895   auto* const _this = static_cast<PhoneNumberDesc*>(&to_msg);
896   auto& from = static_cast<const PhoneNumberDesc&>(from_msg);
897   // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneNumberDesc)
898   ABSL_DCHECK_NE(&from, _this);
899   ::uint32_t cached_has_bits = 0;
900   (void) cached_has_bits;
901 
902   _this->_internal_mutable_possible_length()->MergeFrom(from._internal_possible_length());
903   _this->_internal_mutable_possible_length_local_only()->MergeFrom(from._internal_possible_length_local_only());
904   cached_has_bits = from._impl_._has_bits_[0];
905   if (cached_has_bits & 0x00000003u) {
906     if (cached_has_bits & 0x00000001u) {
907       _this->_internal_set_national_number_pattern(from._internal_national_number_pattern());
908     }
909     if (cached_has_bits & 0x00000002u) {
910       _this->_internal_set_example_number(from._internal_example_number());
911     }
912   }
913   _this->_impl_._has_bits_[0] |= cached_has_bits;
914   _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
915 }
916 
917 void PhoneNumberDesc::CopyFrom(const PhoneNumberDesc& from) {
918 // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneNumberDesc)
919   if (&from == this) return;
920   Clear();
921   MergeFrom(from);
922 }
923 
924 
925 void PhoneNumberDesc::InternalSwap(PhoneNumberDesc* PROTOBUF_RESTRICT other) {
926   using std::swap;
927   auto* arena = GetArena();
928   ABSL_DCHECK_EQ(arena, other->GetArena());
929   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
930   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
931   _impl_.possible_length_.InternalSwap(&other->_impl_.possible_length_);
932   _impl_.possible_length_local_only_.InternalSwap(&other->_impl_.possible_length_local_only_);
933   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_number_pattern_, &other->_impl_.national_number_pattern_, arena);
934   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.example_number_, &other->_impl_.example_number_, arena);
935 }
936 
937 // ===================================================================
938 
939 class PhoneMetadata::_Internal {
940  public:
941   using HasBits =
942       decltype(std::declval<PhoneMetadata>()._impl_._has_bits_);
943   static constexpr ::int32_t kHasBitsOffset =
944       8 * PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_._has_bits_);
945   static bool MissingRequiredFields(const HasBits& has_bits) {
946     return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
947   }
948 };
949 
950 PhoneMetadata::PhoneMetadata(::google::protobuf::Arena* arena)
951 #if defined(PROTOBUF_CUSTOM_VTABLE)
952     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
953 #else   // PROTOBUF_CUSTOM_VTABLE
954     : ::google::protobuf::MessageLite(arena) {
955 #endif  // PROTOBUF_CUSTOM_VTABLE
956   SharedCtor(arena);
957   // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneMetadata)
958 }
959 inline PROTOBUF_NDEBUG_INLINE PhoneMetadata::Impl_::Impl_(
960     ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
961     const Impl_& from, const ::i18n::phonenumbers::PhoneMetadata& from_msg)
962       : _has_bits_{from._has_bits_},
963         _cached_size_{0},
964         number_format_{visibility, arena, from.number_format_},
965         intl_number_format_{visibility, arena, from.intl_number_format_},
966         id_(arena, from.id_),
967         international_prefix_(arena, from.international_prefix_),
968         national_prefix_(arena, from.national_prefix_),
969         preferred_extn_prefix_(arena, from.preferred_extn_prefix_),
970         national_prefix_for_parsing_(arena, from.national_prefix_for_parsing_),
971         national_prefix_transform_rule_(arena, from.national_prefix_transform_rule_),
972         preferred_international_prefix_(arena, from.preferred_international_prefix_),
973         leading_digits_(arena, from.leading_digits_) {}
974 
975 PhoneMetadata::PhoneMetadata(
976     ::google::protobuf::Arena* arena,
977     const PhoneMetadata& from)
978 #if defined(PROTOBUF_CUSTOM_VTABLE)
979     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
980 #else   // PROTOBUF_CUSTOM_VTABLE
981     : ::google::protobuf::MessageLite(arena) {
982 #endif  // PROTOBUF_CUSTOM_VTABLE
983   PhoneMetadata* const _this = this;
984   (void)_this;
985   _internal_metadata_.MergeFrom<std::string>(
986       from._internal_metadata_);
987   new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
988   ::uint32_t cached_has_bits = _impl_._has_bits_[0];
989   _impl_.general_desc_ = (cached_has_bits & 0x00000100u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
990                               arena, *from._impl_.general_desc_)
991                         : nullptr;
992   _impl_.fixed_line_ = (cached_has_bits & 0x00000200u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
993                               arena, *from._impl_.fixed_line_)
994                         : nullptr;
995   _impl_.mobile_ = (cached_has_bits & 0x00000400u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
996                               arena, *from._impl_.mobile_)
997                         : nullptr;
998   _impl_.toll_free_ = (cached_has_bits & 0x00000800u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
999                               arena, *from._impl_.toll_free_)
1000                         : nullptr;
1001   _impl_.premium_rate_ = (cached_has_bits & 0x00001000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1002                               arena, *from._impl_.premium_rate_)
1003                         : nullptr;
1004   _impl_.shared_cost_ = (cached_has_bits & 0x00002000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1005                               arena, *from._impl_.shared_cost_)
1006                         : nullptr;
1007   _impl_.personal_number_ = (cached_has_bits & 0x00004000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1008                               arena, *from._impl_.personal_number_)
1009                         : nullptr;
1010   _impl_.voip_ = (cached_has_bits & 0x00008000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1011                               arena, *from._impl_.voip_)
1012                         : nullptr;
1013   _impl_.pager_ = (cached_has_bits & 0x00010000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1014                               arena, *from._impl_.pager_)
1015                         : nullptr;
1016   _impl_.no_international_dialling_ = (cached_has_bits & 0x00020000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1017                               arena, *from._impl_.no_international_dialling_)
1018                         : nullptr;
1019   _impl_.uan_ = (cached_has_bits & 0x00040000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1020                               arena, *from._impl_.uan_)
1021                         : nullptr;
1022   _impl_.emergency_ = (cached_has_bits & 0x00080000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1023                               arena, *from._impl_.emergency_)
1024                         : nullptr;
1025   _impl_.voicemail_ = (cached_has_bits & 0x00100000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1026                               arena, *from._impl_.voicemail_)
1027                         : nullptr;
1028   _impl_.short_code_ = (cached_has_bits & 0x00200000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1029                               arena, *from._impl_.short_code_)
1030                         : nullptr;
1031   _impl_.standard_rate_ = (cached_has_bits & 0x00400000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1032                               arena, *from._impl_.standard_rate_)
1033                         : nullptr;
1034   _impl_.carrier_specific_ = (cached_has_bits & 0x00800000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1035                               arena, *from._impl_.carrier_specific_)
1036                         : nullptr;
1037   _impl_.sms_services_ = (cached_has_bits & 0x01000000u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(
1038                               arena, *from._impl_.sms_services_)
1039                         : nullptr;
1040   ::memcpy(reinterpret_cast<char *>(&_impl_) +
1041                offsetof(Impl_, country_code_),
1042            reinterpret_cast<const char *>(&from._impl_) +
1043                offsetof(Impl_, country_code_),
1044            offsetof(Impl_, mobile_number_portable_region_) -
1045                offsetof(Impl_, country_code_) +
1046                sizeof(Impl_::mobile_number_portable_region_));
1047 
1048   // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneMetadata)
1049 }
1050 inline PROTOBUF_NDEBUG_INLINE PhoneMetadata::Impl_::Impl_(
1051     ::google::protobuf::internal::InternalVisibility visibility,
1052     ::google::protobuf::Arena* arena)
1053       : _cached_size_{0},
1054         number_format_{visibility, arena},
1055         intl_number_format_{visibility, arena},
1056         id_(arena),
1057         international_prefix_(arena),
1058         national_prefix_(arena),
1059         preferred_extn_prefix_(arena),
1060         national_prefix_for_parsing_(arena),
1061         national_prefix_transform_rule_(arena),
1062         preferred_international_prefix_(arena),
1063         leading_digits_(arena) {}
1064 
1065 inline void PhoneMetadata::SharedCtor(::_pb::Arena* arena) {
1066   new (&_impl_) Impl_(internal_visibility(), arena);
1067   ::memset(reinterpret_cast<char *>(&_impl_) +
1068                offsetof(Impl_, general_desc_),
1069            0,
1070            offsetof(Impl_, mobile_number_portable_region_) -
1071                offsetof(Impl_, general_desc_) +
1072                sizeof(Impl_::mobile_number_portable_region_));
1073 }
1074 PhoneMetadata::~PhoneMetadata() {
1075   // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneMetadata)
1076   SharedDtor(*this);
1077 }
1078 inline void PhoneMetadata::SharedDtor(MessageLite& self) {
1079   PhoneMetadata& this_ = static_cast<PhoneMetadata&>(self);
1080   this_._internal_metadata_.Delete<std::string>();
1081   ABSL_DCHECK(this_.GetArena() == nullptr);
1082   this_._impl_.id_.Destroy();
1083   this_._impl_.international_prefix_.Destroy();
1084   this_._impl_.national_prefix_.Destroy();
1085   this_._impl_.preferred_extn_prefix_.Destroy();
1086   this_._impl_.national_prefix_for_parsing_.Destroy();
1087   this_._impl_.national_prefix_transform_rule_.Destroy();
1088   this_._impl_.preferred_international_prefix_.Destroy();
1089   this_._impl_.leading_digits_.Destroy();
1090   delete this_._impl_.general_desc_;
1091   delete this_._impl_.fixed_line_;
1092   delete this_._impl_.mobile_;
1093   delete this_._impl_.toll_free_;
1094   delete this_._impl_.premium_rate_;
1095   delete this_._impl_.shared_cost_;
1096   delete this_._impl_.personal_number_;
1097   delete this_._impl_.voip_;
1098   delete this_._impl_.pager_;
1099   delete this_._impl_.no_international_dialling_;
1100   delete this_._impl_.uan_;
1101   delete this_._impl_.emergency_;
1102   delete this_._impl_.voicemail_;
1103   delete this_._impl_.short_code_;
1104   delete this_._impl_.standard_rate_;
1105   delete this_._impl_.carrier_specific_;
1106   delete this_._impl_.sms_services_;
1107   this_._impl_.~Impl_();
1108 }
1109 
1110 inline void* PhoneMetadata::PlacementNew_(const void*, void* mem,
1111                                         ::google::protobuf::Arena* arena) {
1112   return ::new (mem) PhoneMetadata(arena);
1113 }
1114 constexpr auto PhoneMetadata::InternalNewImpl_() {
1115   constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
1116       PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.number_format_) +
1117           decltype(PhoneMetadata::_impl_.number_format_)::
1118               InternalGetArenaOffset(
1119                   ::google::protobuf::MessageLite::internal_visibility()),
1120       PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.intl_number_format_) +
1121           decltype(PhoneMetadata::_impl_.intl_number_format_)::
1122               InternalGetArenaOffset(
1123                   ::google::protobuf::MessageLite::internal_visibility()),
1124   });
1125   if (arena_bits.has_value()) {
1126     return ::google::protobuf::internal::MessageCreator::CopyInit(
1127         sizeof(PhoneMetadata), alignof(PhoneMetadata), *arena_bits);
1128   } else {
1129     return ::google::protobuf::internal::MessageCreator(&PhoneMetadata::PlacementNew_,
1130                                  sizeof(PhoneMetadata),
1131                                  alignof(PhoneMetadata));
1132   }
1133 }
1134 PROTOBUF_CONSTINIT
1135 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1136 const ::google::protobuf::internal::ClassDataLite<32> PhoneMetadata::_class_data_ = {
1137     {
1138         &_PhoneMetadata_default_instance_._instance,
1139         &_table_.header,
1140         nullptr,  // OnDemandRegisterArenaDtor
1141         PhoneMetadata::IsInitializedImpl,
1142         &PhoneMetadata::MergeImpl,
1143         ::google::protobuf::MessageLite::GetNewImpl<PhoneMetadata>(),
1144 #if defined(PROTOBUF_CUSTOM_VTABLE)
1145         &PhoneMetadata::SharedDtor,
1146         ::google::protobuf::MessageLite::GetClearImpl<PhoneMetadata>(), &PhoneMetadata::ByteSizeLong,
1147             &PhoneMetadata::_InternalSerialize,
1148 #endif  // PROTOBUF_CUSTOM_VTABLE
1149         PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_._cached_size_),
1150         true,
1151     },
1152     "i18n.phonenumbers.PhoneMetadata",
1153 };
1154 const ::google::protobuf::internal::ClassData* PhoneMetadata::GetClassData() const {
1155   return _class_data_.base();
1156 }
1157 PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
1158 const ::_pbi::TcParseTable<5, 31, 19, 0, 7> PhoneMetadata::_table_ = {
1159   {
1160     PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_._has_bits_),
1161     0, // no _extensions_
1162     33, 248,  // max_field_number, fast_idx_mask
1163     offsetof(decltype(_table_), field_lookup_table),
1164     33562624,  // skipmap
1165     offsetof(decltype(_table_), field_entries),
1166     31,  // num_field_entries
1167     19,  // num_aux_entries
1168     offsetof(decltype(_table_), aux_entries),
1169     _class_data_.base(),
1170     nullptr,  // post_loop_handler
1171     ::_pbi::TcParser::GenericFallbackLite,  // fallback
1172     #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
1173     ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneMetadata>(),  // to_prefetch
1174     #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
1175   }, {{
1176     {::_pbi::TcParser::MiniParse, {}},
1177     // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1178     {::_pbi::TcParser::FastMtS1,
1179      {10, 8, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.general_desc_)}},
1180     // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1181     {::_pbi::TcParser::FastMtS1,
1182      {18, 9, 1, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.fixed_line_)}},
1183     // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1184     {::_pbi::TcParser::FastMtS1,
1185      {26, 10, 2, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_)}},
1186     // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1187     {::_pbi::TcParser::FastMtS1,
1188      {34, 11, 3, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.toll_free_)}},
1189     // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1190     {::_pbi::TcParser::FastMtS1,
1191      {42, 12, 4, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.premium_rate_)}},
1192     // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1193     {::_pbi::TcParser::FastMtS1,
1194      {50, 13, 5, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.shared_cost_)}},
1195     // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
1196     {::_pbi::TcParser::FastMtS1,
1197      {58, 14, 6, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.personal_number_)}},
1198     // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
1199     {::_pbi::TcParser::FastMtS1,
1200      {66, 15, 7, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voip_)}},
1201     // required string id = 9;
1202     {::_pbi::TcParser::FastBS1,
1203      {74, 0, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.id_)}},
1204     // optional int32 country_code = 10;
1205     {::_pbi::TcParser::FastV32S1,
1206      {80, 25, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.country_code_)}},
1207     // optional string international_prefix = 11;
1208     {::_pbi::TcParser::FastBS1,
1209      {90, 1, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.international_prefix_)}},
1210     // optional string national_prefix = 12;
1211     {::_pbi::TcParser::FastBS1,
1212      {98, 2, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_)}},
1213     // optional string preferred_extn_prefix = 13;
1214     {::_pbi::TcParser::FastBS1,
1215      {106, 3, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_extn_prefix_)}},
1216     {::_pbi::TcParser::MiniParse, {}},
1217     // optional string national_prefix_for_parsing = 15;
1218     {::_pbi::TcParser::FastBS1,
1219      {122, 4, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_for_parsing_)}},
1220     // optional string national_prefix_transform_rule = 16;
1221     {::_pbi::TcParser::FastBS2,
1222      {386, 5, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_transform_rule_)}},
1223     // optional string preferred_international_prefix = 17;
1224     {::_pbi::TcParser::FastBS2,
1225      {394, 6, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_international_prefix_)}},
1226     // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
1227     {::_pbi::TcParser::FastV8S2,
1228      {400, 26, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.same_mobile_and_fixed_line_pattern_)}},
1229     // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1230     {::_pbi::TcParser::FastMtR2,
1231      {410, 63, 8, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.number_format_)}},
1232     // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1233     {::_pbi::TcParser::FastMtR2,
1234      {418, 63, 9, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.intl_number_format_)}},
1235     // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
1236     {::_pbi::TcParser::FastMtS2,
1237      {426, 16, 10, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.pager_)}},
1238     // optional bool main_country_for_code = 22 [default = false];
1239     {::_pbi::TcParser::FastV8S2,
1240      {432, 27, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.main_country_for_code_)}},
1241     // optional string leading_digits = 23;
1242     {::_pbi::TcParser::FastBS2,
1243      {442, 7, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.leading_digits_)}},
1244     // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
1245     {::_pbi::TcParser::FastMtS2,
1246      {450, 17, 11, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.no_international_dialling_)}},
1247     // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
1248     {::_pbi::TcParser::FastMtS2,
1249      {458, 18, 12, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.uan_)}},
1250     {::_pbi::TcParser::MiniParse, {}},
1251     // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
1252     {::_pbi::TcParser::FastMtS2,
1253      {474, 19, 13, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.emergency_)}},
1254     // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
1255     {::_pbi::TcParser::FastMtS2,
1256      {482, 20, 14, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voicemail_)}},
1257     // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
1258     {::_pbi::TcParser::FastMtS2,
1259      {490, 21, 15, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.short_code_)}},
1260     // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
1261     {::_pbi::TcParser::FastMtS2,
1262      {498, 22, 16, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.standard_rate_)}},
1263     // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
1264     {::_pbi::TcParser::FastMtS2,
1265      {506, 23, 17, PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.carrier_specific_)}},
1266   }}, {{
1267     33, 0, 1,
1268     65534, 30,
1269     65535, 65535
1270   }}, {{
1271     // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1272     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.general_desc_), _Internal::kHasBitsOffset + 8, 0,
1273     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1274     // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1275     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.fixed_line_), _Internal::kHasBitsOffset + 9, 1,
1276     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1277     // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1278     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_), _Internal::kHasBitsOffset + 10, 2,
1279     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1280     // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1281     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.toll_free_), _Internal::kHasBitsOffset + 11, 3,
1282     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1283     // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1284     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.premium_rate_), _Internal::kHasBitsOffset + 12, 4,
1285     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1286     // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1287     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.shared_cost_), _Internal::kHasBitsOffset + 13, 5,
1288     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1289     // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
1290     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.personal_number_), _Internal::kHasBitsOffset + 14, 6,
1291     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1292     // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
1293     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voip_), _Internal::kHasBitsOffset + 15, 7,
1294     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1295     // required string id = 9;
1296     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.id_), _Internal::kHasBitsOffset + 0, 0,
1297     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1298     // optional int32 country_code = 10;
1299     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.country_code_), _Internal::kHasBitsOffset + 25, 0,
1300     (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
1301     // optional string international_prefix = 11;
1302     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.international_prefix_), _Internal::kHasBitsOffset + 1, 0,
1303     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1304     // optional string national_prefix = 12;
1305     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_), _Internal::kHasBitsOffset + 2, 0,
1306     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1307     // optional string preferred_extn_prefix = 13;
1308     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_extn_prefix_), _Internal::kHasBitsOffset + 3, 0,
1309     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1310     // optional string national_prefix_for_parsing = 15;
1311     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_for_parsing_), _Internal::kHasBitsOffset + 4, 0,
1312     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1313     // optional string national_prefix_transform_rule = 16;
1314     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_transform_rule_), _Internal::kHasBitsOffset + 5, 0,
1315     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1316     // optional string preferred_international_prefix = 17;
1317     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_international_prefix_), _Internal::kHasBitsOffset + 6, 0,
1318     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1319     // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
1320     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.same_mobile_and_fixed_line_pattern_), _Internal::kHasBitsOffset + 26, 0,
1321     (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1322     // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1323     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.number_format_), -1, 8,
1324     (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
1325     // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1326     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.intl_number_format_), -1, 9,
1327     (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
1328     // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
1329     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.pager_), _Internal::kHasBitsOffset + 16, 10,
1330     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1331     // optional bool main_country_for_code = 22 [default = false];
1332     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.main_country_for_code_), _Internal::kHasBitsOffset + 27, 0,
1333     (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1334     // optional string leading_digits = 23;
1335     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.leading_digits_), _Internal::kHasBitsOffset + 7, 0,
1336     (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
1337     // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
1338     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.no_international_dialling_), _Internal::kHasBitsOffset + 17, 11,
1339     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1340     // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
1341     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.uan_), _Internal::kHasBitsOffset + 18, 12,
1342     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1343     // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
1344     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.emergency_), _Internal::kHasBitsOffset + 19, 13,
1345     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1346     // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
1347     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voicemail_), _Internal::kHasBitsOffset + 20, 14,
1348     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1349     // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
1350     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.short_code_), _Internal::kHasBitsOffset + 21, 15,
1351     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1352     // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
1353     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.standard_rate_), _Internal::kHasBitsOffset + 22, 16,
1354     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1355     // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
1356     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.carrier_specific_), _Internal::kHasBitsOffset + 23, 17,
1357     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1358     // optional bool mobile_number_portable_region = 32 [default = false];
1359     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_number_portable_region_), _Internal::kHasBitsOffset + 28, 0,
1360     (0 | ::_fl::kFcOptional | ::_fl::kBool)},
1361     // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
1362     {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.sms_services_), _Internal::kHasBitsOffset + 24, 18,
1363     (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
1364   }}, {{
1365     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1366     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1367     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1368     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1369     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1370     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1371     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1372     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1373     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::NumberFormat>()},
1374     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::NumberFormat>()},
1375     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1376     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1377     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1378     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1379     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1380     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1381     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1382     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1383     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
1384   }}, {{
1385   }},
1386 };
1387 
1388 PROTOBUF_NOINLINE void PhoneMetadata::Clear() {
1389 // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneMetadata)
1390   ::google::protobuf::internal::TSanWrite(&_impl_);
1391   ::uint32_t cached_has_bits = 0;
1392   // Prevent compiler warnings about cached_has_bits being unused
1393   (void) cached_has_bits;
1394 
1395   _impl_.number_format_.Clear();
1396   _impl_.intl_number_format_.Clear();
1397   cached_has_bits = _impl_._has_bits_[0];
1398   if (cached_has_bits & 0x000000ffu) {
1399     if (cached_has_bits & 0x00000001u) {
1400       _impl_.id_.ClearNonDefaultToEmpty();
1401     }
1402     if (cached_has_bits & 0x00000002u) {
1403       _impl_.international_prefix_.ClearNonDefaultToEmpty();
1404     }
1405     if (cached_has_bits & 0x00000004u) {
1406       _impl_.national_prefix_.ClearNonDefaultToEmpty();
1407     }
1408     if (cached_has_bits & 0x00000008u) {
1409       _impl_.preferred_extn_prefix_.ClearNonDefaultToEmpty();
1410     }
1411     if (cached_has_bits & 0x00000010u) {
1412       _impl_.national_prefix_for_parsing_.ClearNonDefaultToEmpty();
1413     }
1414     if (cached_has_bits & 0x00000020u) {
1415       _impl_.national_prefix_transform_rule_.ClearNonDefaultToEmpty();
1416     }
1417     if (cached_has_bits & 0x00000040u) {
1418       _impl_.preferred_international_prefix_.ClearNonDefaultToEmpty();
1419     }
1420     if (cached_has_bits & 0x00000080u) {
1421       _impl_.leading_digits_.ClearNonDefaultToEmpty();
1422     }
1423   }
1424   if (cached_has_bits & 0x0000ff00u) {
1425     if (cached_has_bits & 0x00000100u) {
1426       ABSL_DCHECK(_impl_.general_desc_ != nullptr);
1427       _impl_.general_desc_->Clear();
1428     }
1429     if (cached_has_bits & 0x00000200u) {
1430       ABSL_DCHECK(_impl_.fixed_line_ != nullptr);
1431       _impl_.fixed_line_->Clear();
1432     }
1433     if (cached_has_bits & 0x00000400u) {
1434       ABSL_DCHECK(_impl_.mobile_ != nullptr);
1435       _impl_.mobile_->Clear();
1436     }
1437     if (cached_has_bits & 0x00000800u) {
1438       ABSL_DCHECK(_impl_.toll_free_ != nullptr);
1439       _impl_.toll_free_->Clear();
1440     }
1441     if (cached_has_bits & 0x00001000u) {
1442       ABSL_DCHECK(_impl_.premium_rate_ != nullptr);
1443       _impl_.premium_rate_->Clear();
1444     }
1445     if (cached_has_bits & 0x00002000u) {
1446       ABSL_DCHECK(_impl_.shared_cost_ != nullptr);
1447       _impl_.shared_cost_->Clear();
1448     }
1449     if (cached_has_bits & 0x00004000u) {
1450       ABSL_DCHECK(_impl_.personal_number_ != nullptr);
1451       _impl_.personal_number_->Clear();
1452     }
1453     if (cached_has_bits & 0x00008000u) {
1454       ABSL_DCHECK(_impl_.voip_ != nullptr);
1455       _impl_.voip_->Clear();
1456     }
1457   }
1458   if (cached_has_bits & 0x00ff0000u) {
1459     if (cached_has_bits & 0x00010000u) {
1460       ABSL_DCHECK(_impl_.pager_ != nullptr);
1461       _impl_.pager_->Clear();
1462     }
1463     if (cached_has_bits & 0x00020000u) {
1464       ABSL_DCHECK(_impl_.no_international_dialling_ != nullptr);
1465       _impl_.no_international_dialling_->Clear();
1466     }
1467     if (cached_has_bits & 0x00040000u) {
1468       ABSL_DCHECK(_impl_.uan_ != nullptr);
1469       _impl_.uan_->Clear();
1470     }
1471     if (cached_has_bits & 0x00080000u) {
1472       ABSL_DCHECK(_impl_.emergency_ != nullptr);
1473       _impl_.emergency_->Clear();
1474     }
1475     if (cached_has_bits & 0x00100000u) {
1476       ABSL_DCHECK(_impl_.voicemail_ != nullptr);
1477       _impl_.voicemail_->Clear();
1478     }
1479     if (cached_has_bits & 0x00200000u) {
1480       ABSL_DCHECK(_impl_.short_code_ != nullptr);
1481       _impl_.short_code_->Clear();
1482     }
1483     if (cached_has_bits & 0x00400000u) {
1484       ABSL_DCHECK(_impl_.standard_rate_ != nullptr);
1485       _impl_.standard_rate_->Clear();
1486     }
1487     if (cached_has_bits & 0x00800000u) {
1488       ABSL_DCHECK(_impl_.carrier_specific_ != nullptr);
1489       _impl_.carrier_specific_->Clear();
1490     }
1491   }
1492   if (cached_has_bits & 0x01000000u) {
1493     ABSL_DCHECK(_impl_.sms_services_ != nullptr);
1494     _impl_.sms_services_->Clear();
1495   }
1496   if (cached_has_bits & 0x1e000000u) {
1497     ::memset(&_impl_.country_code_, 0, static_cast<::size_t>(
1498         reinterpret_cast<char*>(&_impl_.mobile_number_portable_region_) -
1499         reinterpret_cast<char*>(&_impl_.country_code_)) + sizeof(_impl_.mobile_number_portable_region_));
1500   }
1501   _impl_._has_bits_.Clear();
1502   _internal_metadata_.Clear<std::string>();
1503 }
1504 
1505 #if defined(PROTOBUF_CUSTOM_VTABLE)
1506         ::uint8_t* PhoneMetadata::_InternalSerialize(
1507             const MessageLite& base, ::uint8_t* target,
1508             ::google::protobuf::io::EpsCopyOutputStream* stream) {
1509           const PhoneMetadata& this_ = static_cast<const PhoneMetadata&>(base);
1510 #else   // PROTOBUF_CUSTOM_VTABLE
1511         ::uint8_t* PhoneMetadata::_InternalSerialize(
1512             ::uint8_t* target,
1513             ::google::protobuf::io::EpsCopyOutputStream* stream) const {
1514           const PhoneMetadata& this_ = *this;
1515 #endif  // PROTOBUF_CUSTOM_VTABLE
1516           // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneMetadata)
1517           ::uint32_t cached_has_bits = 0;
1518           (void)cached_has_bits;
1519 
1520           cached_has_bits = this_._impl_._has_bits_[0];
1521           // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1522           if (cached_has_bits & 0x00000100u) {
1523             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1524                 1, *this_._impl_.general_desc_, this_._impl_.general_desc_->GetCachedSize(), target,
1525                 stream);
1526           }
1527 
1528           // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1529           if (cached_has_bits & 0x00000200u) {
1530             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1531                 2, *this_._impl_.fixed_line_, this_._impl_.fixed_line_->GetCachedSize(), target,
1532                 stream);
1533           }
1534 
1535           // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1536           if (cached_has_bits & 0x00000400u) {
1537             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1538                 3, *this_._impl_.mobile_, this_._impl_.mobile_->GetCachedSize(), target,
1539                 stream);
1540           }
1541 
1542           // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1543           if (cached_has_bits & 0x00000800u) {
1544             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1545                 4, *this_._impl_.toll_free_, this_._impl_.toll_free_->GetCachedSize(), target,
1546                 stream);
1547           }
1548 
1549           // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1550           if (cached_has_bits & 0x00001000u) {
1551             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1552                 5, *this_._impl_.premium_rate_, this_._impl_.premium_rate_->GetCachedSize(), target,
1553                 stream);
1554           }
1555 
1556           // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1557           if (cached_has_bits & 0x00002000u) {
1558             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1559                 6, *this_._impl_.shared_cost_, this_._impl_.shared_cost_->GetCachedSize(), target,
1560                 stream);
1561           }
1562 
1563           // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
1564           if (cached_has_bits & 0x00004000u) {
1565             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1566                 7, *this_._impl_.personal_number_, this_._impl_.personal_number_->GetCachedSize(), target,
1567                 stream);
1568           }
1569 
1570           // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
1571           if (cached_has_bits & 0x00008000u) {
1572             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1573                 8, *this_._impl_.voip_, this_._impl_.voip_->GetCachedSize(), target,
1574                 stream);
1575           }
1576 
1577           // required string id = 9;
1578           if (cached_has_bits & 0x00000001u) {
1579             const std::string& _s = this_._internal_id();
1580             target = stream->WriteStringMaybeAliased(9, _s, target);
1581           }
1582 
1583           // optional int32 country_code = 10;
1584           if (cached_has_bits & 0x02000000u) {
1585             target = ::google::protobuf::internal::WireFormatLite::
1586                 WriteInt32ToArrayWithField<10>(
1587                     stream, this_._internal_country_code(), target);
1588           }
1589 
1590           // optional string international_prefix = 11;
1591           if (cached_has_bits & 0x00000002u) {
1592             const std::string& _s = this_._internal_international_prefix();
1593             target = stream->WriteStringMaybeAliased(11, _s, target);
1594           }
1595 
1596           // optional string national_prefix = 12;
1597           if (cached_has_bits & 0x00000004u) {
1598             const std::string& _s = this_._internal_national_prefix();
1599             target = stream->WriteStringMaybeAliased(12, _s, target);
1600           }
1601 
1602           // optional string preferred_extn_prefix = 13;
1603           if (cached_has_bits & 0x00000008u) {
1604             const std::string& _s = this_._internal_preferred_extn_prefix();
1605             target = stream->WriteStringMaybeAliased(13, _s, target);
1606           }
1607 
1608           // optional string national_prefix_for_parsing = 15;
1609           if (cached_has_bits & 0x00000010u) {
1610             const std::string& _s = this_._internal_national_prefix_for_parsing();
1611             target = stream->WriteStringMaybeAliased(15, _s, target);
1612           }
1613 
1614           // optional string national_prefix_transform_rule = 16;
1615           if (cached_has_bits & 0x00000020u) {
1616             const std::string& _s = this_._internal_national_prefix_transform_rule();
1617             target = stream->WriteStringMaybeAliased(16, _s, target);
1618           }
1619 
1620           // optional string preferred_international_prefix = 17;
1621           if (cached_has_bits & 0x00000040u) {
1622             const std::string& _s = this_._internal_preferred_international_prefix();
1623             target = stream->WriteStringMaybeAliased(17, _s, target);
1624           }
1625 
1626           // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
1627           if (cached_has_bits & 0x04000000u) {
1628             target = stream->EnsureSpace(target);
1629             target = ::_pbi::WireFormatLite::WriteBoolToArray(
1630                 18, this_._internal_same_mobile_and_fixed_line_pattern(), target);
1631           }
1632 
1633           // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1634           for (unsigned i = 0, n = static_cast<unsigned>(
1635                                    this_._internal_number_format_size());
1636                i < n; i++) {
1637             const auto& repfield = this_._internal_number_format().Get(i);
1638             target =
1639                 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1640                     19, repfield, repfield.GetCachedSize(),
1641                     target, stream);
1642           }
1643 
1644           // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1645           for (unsigned i = 0, n = static_cast<unsigned>(
1646                                    this_._internal_intl_number_format_size());
1647                i < n; i++) {
1648             const auto& repfield = this_._internal_intl_number_format().Get(i);
1649             target =
1650                 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1651                     20, repfield, repfield.GetCachedSize(),
1652                     target, stream);
1653           }
1654 
1655           // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
1656           if (cached_has_bits & 0x00010000u) {
1657             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1658                 21, *this_._impl_.pager_, this_._impl_.pager_->GetCachedSize(), target,
1659                 stream);
1660           }
1661 
1662           // optional bool main_country_for_code = 22 [default = false];
1663           if (cached_has_bits & 0x08000000u) {
1664             target = stream->EnsureSpace(target);
1665             target = ::_pbi::WireFormatLite::WriteBoolToArray(
1666                 22, this_._internal_main_country_for_code(), target);
1667           }
1668 
1669           // optional string leading_digits = 23;
1670           if (cached_has_bits & 0x00000080u) {
1671             const std::string& _s = this_._internal_leading_digits();
1672             target = stream->WriteStringMaybeAliased(23, _s, target);
1673           }
1674 
1675           // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
1676           if (cached_has_bits & 0x00020000u) {
1677             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1678                 24, *this_._impl_.no_international_dialling_, this_._impl_.no_international_dialling_->GetCachedSize(), target,
1679                 stream);
1680           }
1681 
1682           // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
1683           if (cached_has_bits & 0x00040000u) {
1684             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1685                 25, *this_._impl_.uan_, this_._impl_.uan_->GetCachedSize(), target,
1686                 stream);
1687           }
1688 
1689           // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
1690           if (cached_has_bits & 0x00080000u) {
1691             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1692                 27, *this_._impl_.emergency_, this_._impl_.emergency_->GetCachedSize(), target,
1693                 stream);
1694           }
1695 
1696           // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
1697           if (cached_has_bits & 0x00100000u) {
1698             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1699                 28, *this_._impl_.voicemail_, this_._impl_.voicemail_->GetCachedSize(), target,
1700                 stream);
1701           }
1702 
1703           // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
1704           if (cached_has_bits & 0x00200000u) {
1705             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1706                 29, *this_._impl_.short_code_, this_._impl_.short_code_->GetCachedSize(), target,
1707                 stream);
1708           }
1709 
1710           // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
1711           if (cached_has_bits & 0x00400000u) {
1712             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1713                 30, *this_._impl_.standard_rate_, this_._impl_.standard_rate_->GetCachedSize(), target,
1714                 stream);
1715           }
1716 
1717           // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
1718           if (cached_has_bits & 0x00800000u) {
1719             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1720                 31, *this_._impl_.carrier_specific_, this_._impl_.carrier_specific_->GetCachedSize(), target,
1721                 stream);
1722           }
1723 
1724           // optional bool mobile_number_portable_region = 32 [default = false];
1725           if (cached_has_bits & 0x10000000u) {
1726             target = stream->EnsureSpace(target);
1727             target = ::_pbi::WireFormatLite::WriteBoolToArray(
1728                 32, this_._internal_mobile_number_portable_region(), target);
1729           }
1730 
1731           // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
1732           if (cached_has_bits & 0x01000000u) {
1733             target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
1734                 33, *this_._impl_.sms_services_, this_._impl_.sms_services_->GetCachedSize(), target,
1735                 stream);
1736           }
1737 
1738           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1739             target = stream->WriteRaw(
1740                 this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
1741                 static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
1742           }
1743           // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneMetadata)
1744           return target;
1745         }
1746 
1747 #if defined(PROTOBUF_CUSTOM_VTABLE)
1748         ::size_t PhoneMetadata::ByteSizeLong(const MessageLite& base) {
1749           const PhoneMetadata& this_ = static_cast<const PhoneMetadata&>(base);
1750 #else   // PROTOBUF_CUSTOM_VTABLE
1751         ::size_t PhoneMetadata::ByteSizeLong() const {
1752           const PhoneMetadata& this_ = *this;
1753 #endif  // PROTOBUF_CUSTOM_VTABLE
1754           // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneMetadata)
1755           ::size_t total_size = 0;
1756 
1757           ::uint32_t cached_has_bits = 0;
1758           // Prevent compiler warnings about cached_has_bits being unused
1759           (void)cached_has_bits;
1760 
1761           ::_pbi::Prefetch5LinesFrom7Lines(&this_);
1762            {
1763             // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
1764             {
1765               total_size += 2UL * this_._internal_number_format_size();
1766               for (const auto& msg : this_._internal_number_format()) {
1767                 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
1768               }
1769             }
1770             // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
1771             {
1772               total_size += 2UL * this_._internal_intl_number_format_size();
1773               for (const auto& msg : this_._internal_intl_number_format()) {
1774                 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
1775               }
1776             }
1777           }
1778            {
1779             // required string id = 9;
1780             cached_has_bits = this_._impl_._has_bits_[0];
1781             if (cached_has_bits & 0x00000001u) {
1782               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
1783                                               this_._internal_id());
1784             }
1785           }
1786           if (cached_has_bits & 0x000000feu) {
1787             // optional string international_prefix = 11;
1788             if (cached_has_bits & 0x00000002u) {
1789               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
1790                                               this_._internal_international_prefix());
1791             }
1792             // optional string national_prefix = 12;
1793             if (cached_has_bits & 0x00000004u) {
1794               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
1795                                               this_._internal_national_prefix());
1796             }
1797             // optional string preferred_extn_prefix = 13;
1798             if (cached_has_bits & 0x00000008u) {
1799               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
1800                                               this_._internal_preferred_extn_prefix());
1801             }
1802             // optional string national_prefix_for_parsing = 15;
1803             if (cached_has_bits & 0x00000010u) {
1804               total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
1805                                               this_._internal_national_prefix_for_parsing());
1806             }
1807             // optional string national_prefix_transform_rule = 16;
1808             if (cached_has_bits & 0x00000020u) {
1809               total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
1810                                               this_._internal_national_prefix_transform_rule());
1811             }
1812             // optional string preferred_international_prefix = 17;
1813             if (cached_has_bits & 0x00000040u) {
1814               total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
1815                                               this_._internal_preferred_international_prefix());
1816             }
1817             // optional string leading_digits = 23;
1818             if (cached_has_bits & 0x00000080u) {
1819               total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
1820                                               this_._internal_leading_digits());
1821             }
1822           }
1823           if (cached_has_bits & 0x0000ff00u) {
1824             // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
1825             if (cached_has_bits & 0x00000100u) {
1826               total_size += 1 +
1827                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.general_desc_);
1828             }
1829             // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
1830             if (cached_has_bits & 0x00000200u) {
1831               total_size += 1 +
1832                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.fixed_line_);
1833             }
1834             // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
1835             if (cached_has_bits & 0x00000400u) {
1836               total_size += 1 +
1837                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.mobile_);
1838             }
1839             // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
1840             if (cached_has_bits & 0x00000800u) {
1841               total_size += 1 +
1842                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toll_free_);
1843             }
1844             // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
1845             if (cached_has_bits & 0x00001000u) {
1846               total_size += 1 +
1847                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.premium_rate_);
1848             }
1849             // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
1850             if (cached_has_bits & 0x00002000u) {
1851               total_size += 1 +
1852                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.shared_cost_);
1853             }
1854             // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
1855             if (cached_has_bits & 0x00004000u) {
1856               total_size += 1 +
1857                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.personal_number_);
1858             }
1859             // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
1860             if (cached_has_bits & 0x00008000u) {
1861               total_size += 1 +
1862                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.voip_);
1863             }
1864           }
1865           if (cached_has_bits & 0x00ff0000u) {
1866             // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
1867             if (cached_has_bits & 0x00010000u) {
1868               total_size += 2 +
1869                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.pager_);
1870             }
1871             // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
1872             if (cached_has_bits & 0x00020000u) {
1873               total_size += 2 +
1874                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.no_international_dialling_);
1875             }
1876             // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
1877             if (cached_has_bits & 0x00040000u) {
1878               total_size += 2 +
1879                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.uan_);
1880             }
1881             // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
1882             if (cached_has_bits & 0x00080000u) {
1883               total_size += 2 +
1884                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.emergency_);
1885             }
1886             // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
1887             if (cached_has_bits & 0x00100000u) {
1888               total_size += 2 +
1889                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.voicemail_);
1890             }
1891             // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
1892             if (cached_has_bits & 0x00200000u) {
1893               total_size += 2 +
1894                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.short_code_);
1895             }
1896             // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
1897             if (cached_has_bits & 0x00400000u) {
1898               total_size += 2 +
1899                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.standard_rate_);
1900             }
1901             // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
1902             if (cached_has_bits & 0x00800000u) {
1903               total_size += 2 +
1904                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.carrier_specific_);
1905             }
1906           }
1907           if (cached_has_bits & 0x1f000000u) {
1908             // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
1909             if (cached_has_bits & 0x01000000u) {
1910               total_size += 2 +
1911                             ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sms_services_);
1912             }
1913             // optional int32 country_code = 10;
1914             if (cached_has_bits & 0x02000000u) {
1915               total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
1916                   this_._internal_country_code());
1917             }
1918             // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
1919             if (cached_has_bits & 0x04000000u) {
1920               total_size += 3;
1921             }
1922             // optional bool main_country_for_code = 22 [default = false];
1923             if (cached_has_bits & 0x08000000u) {
1924               total_size += 3;
1925             }
1926             // optional bool mobile_number_portable_region = 32 [default = false];
1927             if (cached_has_bits & 0x10000000u) {
1928               total_size += 3;
1929             }
1930           }
1931           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
1932             total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
1933           }
1934           this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
1935           return total_size;
1936         }
1937 
1938 void PhoneMetadata::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
1939   auto* const _this = static_cast<PhoneMetadata*>(&to_msg);
1940   auto& from = static_cast<const PhoneMetadata&>(from_msg);
1941   ::google::protobuf::Arena* arena = _this->GetArena();
1942   // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneMetadata)
1943   ABSL_DCHECK_NE(&from, _this);
1944   ::uint32_t cached_has_bits = 0;
1945   (void) cached_has_bits;
1946 
1947   _this->_internal_mutable_number_format()->MergeFrom(
1948       from._internal_number_format());
1949   _this->_internal_mutable_intl_number_format()->MergeFrom(
1950       from._internal_intl_number_format());
1951   cached_has_bits = from._impl_._has_bits_[0];
1952   if (cached_has_bits & 0x000000ffu) {
1953     if (cached_has_bits & 0x00000001u) {
1954       _this->_internal_set_id(from._internal_id());
1955     }
1956     if (cached_has_bits & 0x00000002u) {
1957       _this->_internal_set_international_prefix(from._internal_international_prefix());
1958     }
1959     if (cached_has_bits & 0x00000004u) {
1960       _this->_internal_set_national_prefix(from._internal_national_prefix());
1961     }
1962     if (cached_has_bits & 0x00000008u) {
1963       _this->_internal_set_preferred_extn_prefix(from._internal_preferred_extn_prefix());
1964     }
1965     if (cached_has_bits & 0x00000010u) {
1966       _this->_internal_set_national_prefix_for_parsing(from._internal_national_prefix_for_parsing());
1967     }
1968     if (cached_has_bits & 0x00000020u) {
1969       _this->_internal_set_national_prefix_transform_rule(from._internal_national_prefix_transform_rule());
1970     }
1971     if (cached_has_bits & 0x00000040u) {
1972       _this->_internal_set_preferred_international_prefix(from._internal_preferred_international_prefix());
1973     }
1974     if (cached_has_bits & 0x00000080u) {
1975       _this->_internal_set_leading_digits(from._internal_leading_digits());
1976     }
1977   }
1978   if (cached_has_bits & 0x0000ff00u) {
1979     if (cached_has_bits & 0x00000100u) {
1980       ABSL_DCHECK(from._impl_.general_desc_ != nullptr);
1981       if (_this->_impl_.general_desc_ == nullptr) {
1982         _this->_impl_.general_desc_ =
1983             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.general_desc_);
1984       } else {
1985         _this->_impl_.general_desc_->MergeFrom(*from._impl_.general_desc_);
1986       }
1987     }
1988     if (cached_has_bits & 0x00000200u) {
1989       ABSL_DCHECK(from._impl_.fixed_line_ != nullptr);
1990       if (_this->_impl_.fixed_line_ == nullptr) {
1991         _this->_impl_.fixed_line_ =
1992             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.fixed_line_);
1993       } else {
1994         _this->_impl_.fixed_line_->MergeFrom(*from._impl_.fixed_line_);
1995       }
1996     }
1997     if (cached_has_bits & 0x00000400u) {
1998       ABSL_DCHECK(from._impl_.mobile_ != nullptr);
1999       if (_this->_impl_.mobile_ == nullptr) {
2000         _this->_impl_.mobile_ =
2001             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.mobile_);
2002       } else {
2003         _this->_impl_.mobile_->MergeFrom(*from._impl_.mobile_);
2004       }
2005     }
2006     if (cached_has_bits & 0x00000800u) {
2007       ABSL_DCHECK(from._impl_.toll_free_ != nullptr);
2008       if (_this->_impl_.toll_free_ == nullptr) {
2009         _this->_impl_.toll_free_ =
2010             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.toll_free_);
2011       } else {
2012         _this->_impl_.toll_free_->MergeFrom(*from._impl_.toll_free_);
2013       }
2014     }
2015     if (cached_has_bits & 0x00001000u) {
2016       ABSL_DCHECK(from._impl_.premium_rate_ != nullptr);
2017       if (_this->_impl_.premium_rate_ == nullptr) {
2018         _this->_impl_.premium_rate_ =
2019             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.premium_rate_);
2020       } else {
2021         _this->_impl_.premium_rate_->MergeFrom(*from._impl_.premium_rate_);
2022       }
2023     }
2024     if (cached_has_bits & 0x00002000u) {
2025       ABSL_DCHECK(from._impl_.shared_cost_ != nullptr);
2026       if (_this->_impl_.shared_cost_ == nullptr) {
2027         _this->_impl_.shared_cost_ =
2028             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.shared_cost_);
2029       } else {
2030         _this->_impl_.shared_cost_->MergeFrom(*from._impl_.shared_cost_);
2031       }
2032     }
2033     if (cached_has_bits & 0x00004000u) {
2034       ABSL_DCHECK(from._impl_.personal_number_ != nullptr);
2035       if (_this->_impl_.personal_number_ == nullptr) {
2036         _this->_impl_.personal_number_ =
2037             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.personal_number_);
2038       } else {
2039         _this->_impl_.personal_number_->MergeFrom(*from._impl_.personal_number_);
2040       }
2041     }
2042     if (cached_has_bits & 0x00008000u) {
2043       ABSL_DCHECK(from._impl_.voip_ != nullptr);
2044       if (_this->_impl_.voip_ == nullptr) {
2045         _this->_impl_.voip_ =
2046             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.voip_);
2047       } else {
2048         _this->_impl_.voip_->MergeFrom(*from._impl_.voip_);
2049       }
2050     }
2051   }
2052   if (cached_has_bits & 0x00ff0000u) {
2053     if (cached_has_bits & 0x00010000u) {
2054       ABSL_DCHECK(from._impl_.pager_ != nullptr);
2055       if (_this->_impl_.pager_ == nullptr) {
2056         _this->_impl_.pager_ =
2057             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.pager_);
2058       } else {
2059         _this->_impl_.pager_->MergeFrom(*from._impl_.pager_);
2060       }
2061     }
2062     if (cached_has_bits & 0x00020000u) {
2063       ABSL_DCHECK(from._impl_.no_international_dialling_ != nullptr);
2064       if (_this->_impl_.no_international_dialling_ == nullptr) {
2065         _this->_impl_.no_international_dialling_ =
2066             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.no_international_dialling_);
2067       } else {
2068         _this->_impl_.no_international_dialling_->MergeFrom(*from._impl_.no_international_dialling_);
2069       }
2070     }
2071     if (cached_has_bits & 0x00040000u) {
2072       ABSL_DCHECK(from._impl_.uan_ != nullptr);
2073       if (_this->_impl_.uan_ == nullptr) {
2074         _this->_impl_.uan_ =
2075             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.uan_);
2076       } else {
2077         _this->_impl_.uan_->MergeFrom(*from._impl_.uan_);
2078       }
2079     }
2080     if (cached_has_bits & 0x00080000u) {
2081       ABSL_DCHECK(from._impl_.emergency_ != nullptr);
2082       if (_this->_impl_.emergency_ == nullptr) {
2083         _this->_impl_.emergency_ =
2084             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.emergency_);
2085       } else {
2086         _this->_impl_.emergency_->MergeFrom(*from._impl_.emergency_);
2087       }
2088     }
2089     if (cached_has_bits & 0x00100000u) {
2090       ABSL_DCHECK(from._impl_.voicemail_ != nullptr);
2091       if (_this->_impl_.voicemail_ == nullptr) {
2092         _this->_impl_.voicemail_ =
2093             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.voicemail_);
2094       } else {
2095         _this->_impl_.voicemail_->MergeFrom(*from._impl_.voicemail_);
2096       }
2097     }
2098     if (cached_has_bits & 0x00200000u) {
2099       ABSL_DCHECK(from._impl_.short_code_ != nullptr);
2100       if (_this->_impl_.short_code_ == nullptr) {
2101         _this->_impl_.short_code_ =
2102             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.short_code_);
2103       } else {
2104         _this->_impl_.short_code_->MergeFrom(*from._impl_.short_code_);
2105       }
2106     }
2107     if (cached_has_bits & 0x00400000u) {
2108       ABSL_DCHECK(from._impl_.standard_rate_ != nullptr);
2109       if (_this->_impl_.standard_rate_ == nullptr) {
2110         _this->_impl_.standard_rate_ =
2111             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.standard_rate_);
2112       } else {
2113         _this->_impl_.standard_rate_->MergeFrom(*from._impl_.standard_rate_);
2114       }
2115     }
2116     if (cached_has_bits & 0x00800000u) {
2117       ABSL_DCHECK(from._impl_.carrier_specific_ != nullptr);
2118       if (_this->_impl_.carrier_specific_ == nullptr) {
2119         _this->_impl_.carrier_specific_ =
2120             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.carrier_specific_);
2121       } else {
2122         _this->_impl_.carrier_specific_->MergeFrom(*from._impl_.carrier_specific_);
2123       }
2124     }
2125   }
2126   if (cached_has_bits & 0x1f000000u) {
2127     if (cached_has_bits & 0x01000000u) {
2128       ABSL_DCHECK(from._impl_.sms_services_ != nullptr);
2129       if (_this->_impl_.sms_services_ == nullptr) {
2130         _this->_impl_.sms_services_ =
2131             ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::PhoneNumberDesc>(arena, *from._impl_.sms_services_);
2132       } else {
2133         _this->_impl_.sms_services_->MergeFrom(*from._impl_.sms_services_);
2134       }
2135     }
2136     if (cached_has_bits & 0x02000000u) {
2137       _this->_impl_.country_code_ = from._impl_.country_code_;
2138     }
2139     if (cached_has_bits & 0x04000000u) {
2140       _this->_impl_.same_mobile_and_fixed_line_pattern_ = from._impl_.same_mobile_and_fixed_line_pattern_;
2141     }
2142     if (cached_has_bits & 0x08000000u) {
2143       _this->_impl_.main_country_for_code_ = from._impl_.main_country_for_code_;
2144     }
2145     if (cached_has_bits & 0x10000000u) {
2146       _this->_impl_.mobile_number_portable_region_ = from._impl_.mobile_number_portable_region_;
2147     }
2148   }
2149   _this->_impl_._has_bits_[0] |= cached_has_bits;
2150   _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
2151 }
2152 
2153 void PhoneMetadata::CopyFrom(const PhoneMetadata& from) {
2154 // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneMetadata)
2155   if (&from == this) return;
2156   Clear();
2157   MergeFrom(from);
2158 }
2159 
2160 PROTOBUF_NOINLINE bool PhoneMetadata::IsInitializedImpl(
2161     const MessageLite& msg) {
2162   auto& this_ = static_cast<const PhoneMetadata&>(msg);
2163   if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
2164     return false;
2165   }
2166   if (!::google::protobuf::internal::AllAreInitialized(this_._internal_number_format()))
2167     return false;
2168   if (!::google::protobuf::internal::AllAreInitialized(this_._internal_intl_number_format()))
2169     return false;
2170   return true;
2171 }
2172 
2173 void PhoneMetadata::InternalSwap(PhoneMetadata* PROTOBUF_RESTRICT other) {
2174   using std::swap;
2175   auto* arena = GetArena();
2176   ABSL_DCHECK_EQ(arena, other->GetArena());
2177   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2178   swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
2179   _impl_.number_format_.InternalSwap(&other->_impl_.number_format_);
2180   _impl_.intl_number_format_.InternalSwap(&other->_impl_.intl_number_format_);
2181   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, &other->_impl_.id_, arena);
2182   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.international_prefix_, &other->_impl_.international_prefix_, arena);
2183   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_, &other->_impl_.national_prefix_, arena);
2184   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.preferred_extn_prefix_, &other->_impl_.preferred_extn_prefix_, arena);
2185   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_for_parsing_, &other->_impl_.national_prefix_for_parsing_, arena);
2186   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_transform_rule_, &other->_impl_.national_prefix_transform_rule_, arena);
2187   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.preferred_international_prefix_, &other->_impl_.preferred_international_prefix_, arena);
2188   ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.leading_digits_, &other->_impl_.leading_digits_, arena);
2189   ::google::protobuf::internal::memswap<
2190       PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_number_portable_region_)
2191       + sizeof(PhoneMetadata::_impl_.mobile_number_portable_region_)
2192       - PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.general_desc_)>(
2193           reinterpret_cast<char*>(&_impl_.general_desc_),
2194           reinterpret_cast<char*>(&other->_impl_.general_desc_));
2195 }
2196 
2197 // ===================================================================
2198 
2199 class PhoneMetadataCollection::_Internal {
2200  public:
2201 };
2202 
2203 PhoneMetadataCollection::PhoneMetadataCollection(::google::protobuf::Arena* arena)
2204 #if defined(PROTOBUF_CUSTOM_VTABLE)
2205     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
2206 #else   // PROTOBUF_CUSTOM_VTABLE
2207     : ::google::protobuf::MessageLite(arena) {
2208 #endif  // PROTOBUF_CUSTOM_VTABLE
2209   SharedCtor(arena);
2210   // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneMetadataCollection)
2211 }
2212 inline PROTOBUF_NDEBUG_INLINE PhoneMetadataCollection::Impl_::Impl_(
2213     ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
2214     const Impl_& from, const ::i18n::phonenumbers::PhoneMetadataCollection& from_msg)
2215       : metadata_{visibility, arena, from.metadata_},
2216         _cached_size_{0} {}
2217 
2218 PhoneMetadataCollection::PhoneMetadataCollection(
2219     ::google::protobuf::Arena* arena,
2220     const PhoneMetadataCollection& from)
2221 #if defined(PROTOBUF_CUSTOM_VTABLE)
2222     : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
2223 #else   // PROTOBUF_CUSTOM_VTABLE
2224     : ::google::protobuf::MessageLite(arena) {
2225 #endif  // PROTOBUF_CUSTOM_VTABLE
2226   PhoneMetadataCollection* const _this = this;
2227   (void)_this;
2228   _internal_metadata_.MergeFrom<std::string>(
2229       from._internal_metadata_);
2230   new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
2231 
2232   // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneMetadataCollection)
2233 }
2234 inline PROTOBUF_NDEBUG_INLINE PhoneMetadataCollection::Impl_::Impl_(
2235     ::google::protobuf::internal::InternalVisibility visibility,
2236     ::google::protobuf::Arena* arena)
2237       : metadata_{visibility, arena},
2238         _cached_size_{0} {}
2239 
2240 inline void PhoneMetadataCollection::SharedCtor(::_pb::Arena* arena) {
2241   new (&_impl_) Impl_(internal_visibility(), arena);
2242 }
2243 PhoneMetadataCollection::~PhoneMetadataCollection() {
2244   // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneMetadataCollection)
2245   SharedDtor(*this);
2246 }
2247 inline void PhoneMetadataCollection::SharedDtor(MessageLite& self) {
2248   PhoneMetadataCollection& this_ = static_cast<PhoneMetadataCollection&>(self);
2249   this_._internal_metadata_.Delete<std::string>();
2250   ABSL_DCHECK(this_.GetArena() == nullptr);
2251   this_._impl_.~Impl_();
2252 }
2253 
2254 inline void* PhoneMetadataCollection::PlacementNew_(const void*, void* mem,
2255                                         ::google::protobuf::Arena* arena) {
2256   return ::new (mem) PhoneMetadataCollection(arena);
2257 }
2258 constexpr auto PhoneMetadataCollection::InternalNewImpl_() {
2259   constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
2260       PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_.metadata_) +
2261           decltype(PhoneMetadataCollection::_impl_.metadata_)::
2262               InternalGetArenaOffset(
2263                   ::google::protobuf::MessageLite::internal_visibility()),
2264   });
2265   if (arena_bits.has_value()) {
2266     return ::google::protobuf::internal::MessageCreator::ZeroInit(
2267         sizeof(PhoneMetadataCollection), alignof(PhoneMetadataCollection), *arena_bits);
2268   } else {
2269     return ::google::protobuf::internal::MessageCreator(&PhoneMetadataCollection::PlacementNew_,
2270                                  sizeof(PhoneMetadataCollection),
2271                                  alignof(PhoneMetadataCollection));
2272   }
2273 }
2274 PROTOBUF_CONSTINIT
2275 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2276 const ::google::protobuf::internal::ClassDataLite<42> PhoneMetadataCollection::_class_data_ = {
2277     {
2278         &_PhoneMetadataCollection_default_instance_._instance,
2279         &_table_.header,
2280         nullptr,  // OnDemandRegisterArenaDtor
2281         PhoneMetadataCollection::IsInitializedImpl,
2282         &PhoneMetadataCollection::MergeImpl,
2283         ::google::protobuf::MessageLite::GetNewImpl<PhoneMetadataCollection>(),
2284 #if defined(PROTOBUF_CUSTOM_VTABLE)
2285         &PhoneMetadataCollection::SharedDtor,
2286         ::google::protobuf::MessageLite::GetClearImpl<PhoneMetadataCollection>(), &PhoneMetadataCollection::ByteSizeLong,
2287             &PhoneMetadataCollection::_InternalSerialize,
2288 #endif  // PROTOBUF_CUSTOM_VTABLE
2289         PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_._cached_size_),
2290         true,
2291     },
2292     "i18n.phonenumbers.PhoneMetadataCollection",
2293 };
2294 const ::google::protobuf::internal::ClassData* PhoneMetadataCollection::GetClassData() const {
2295   return _class_data_.base();
2296 }
2297 PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
2298 const ::_pbi::TcParseTable<0, 1, 1, 0, 2> PhoneMetadataCollection::_table_ = {
2299   {
2300     0,  // no _has_bits_
2301     0, // no _extensions_
2302     1, 0,  // max_field_number, fast_idx_mask
2303     offsetof(decltype(_table_), field_lookup_table),
2304     4294967294,  // skipmap
2305     offsetof(decltype(_table_), field_entries),
2306     1,  // num_field_entries
2307     1,  // num_aux_entries
2308     offsetof(decltype(_table_), aux_entries),
2309     _class_data_.base(),
2310     nullptr,  // post_loop_handler
2311     ::_pbi::TcParser::GenericFallbackLite,  // fallback
2312     #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
2313     ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneMetadataCollection>(),  // to_prefetch
2314     #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
2315   }, {{
2316     // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2317     {::_pbi::TcParser::FastMtR1,
2318      {10, 63, 0, PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_.metadata_)}},
2319   }}, {{
2320     65535, 65535
2321   }}, {{
2322     // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2323     {PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_.metadata_), 0, 0,
2324     (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
2325   }}, {{
2326     {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneMetadata>()},
2327   }}, {{
2328   }},
2329 };
2330 
2331 PROTOBUF_NOINLINE void PhoneMetadataCollection::Clear() {
2332 // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneMetadataCollection)
2333   ::google::protobuf::internal::TSanWrite(&_impl_);
2334   ::uint32_t cached_has_bits = 0;
2335   // Prevent compiler warnings about cached_has_bits being unused
2336   (void) cached_has_bits;
2337 
2338   _impl_.metadata_.Clear();
2339   _internal_metadata_.Clear<std::string>();
2340 }
2341 
2342 #if defined(PROTOBUF_CUSTOM_VTABLE)
2343         ::uint8_t* PhoneMetadataCollection::_InternalSerialize(
2344             const MessageLite& base, ::uint8_t* target,
2345             ::google::protobuf::io::EpsCopyOutputStream* stream) {
2346           const PhoneMetadataCollection& this_ = static_cast<const PhoneMetadataCollection&>(base);
2347 #else   // PROTOBUF_CUSTOM_VTABLE
2348         ::uint8_t* PhoneMetadataCollection::_InternalSerialize(
2349             ::uint8_t* target,
2350             ::google::protobuf::io::EpsCopyOutputStream* stream) const {
2351           const PhoneMetadataCollection& this_ = *this;
2352 #endif  // PROTOBUF_CUSTOM_VTABLE
2353           // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneMetadataCollection)
2354           ::uint32_t cached_has_bits = 0;
2355           (void)cached_has_bits;
2356 
2357           // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2358           for (unsigned i = 0, n = static_cast<unsigned>(
2359                                    this_._internal_metadata_size());
2360                i < n; i++) {
2361             const auto& repfield = this_._internal_metadata().Get(i);
2362             target =
2363                 ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
2364                     1, repfield, repfield.GetCachedSize(),
2365                     target, stream);
2366           }
2367 
2368           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2369             target = stream->WriteRaw(
2370                 this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
2371                 static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
2372           }
2373           // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneMetadataCollection)
2374           return target;
2375         }
2376 
2377 #if defined(PROTOBUF_CUSTOM_VTABLE)
2378         ::size_t PhoneMetadataCollection::ByteSizeLong(const MessageLite& base) {
2379           const PhoneMetadataCollection& this_ = static_cast<const PhoneMetadataCollection&>(base);
2380 #else   // PROTOBUF_CUSTOM_VTABLE
2381         ::size_t PhoneMetadataCollection::ByteSizeLong() const {
2382           const PhoneMetadataCollection& this_ = *this;
2383 #endif  // PROTOBUF_CUSTOM_VTABLE
2384           // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneMetadataCollection)
2385           ::size_t total_size = 0;
2386 
2387           ::uint32_t cached_has_bits = 0;
2388           // Prevent compiler warnings about cached_has_bits being unused
2389           (void)cached_has_bits;
2390 
2391           ::_pbi::Prefetch5LinesFrom7Lines(&this_);
2392            {
2393             // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
2394             {
2395               total_size += 1UL * this_._internal_metadata_size();
2396               for (const auto& msg : this_._internal_metadata()) {
2397                 total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
2398               }
2399             }
2400           }
2401           if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
2402             total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
2403           }
2404           this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
2405           return total_size;
2406         }
2407 
2408 void PhoneMetadataCollection::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
2409   auto* const _this = static_cast<PhoneMetadataCollection*>(&to_msg);
2410   auto& from = static_cast<const PhoneMetadataCollection&>(from_msg);
2411   // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneMetadataCollection)
2412   ABSL_DCHECK_NE(&from, _this);
2413   ::uint32_t cached_has_bits = 0;
2414   (void) cached_has_bits;
2415 
2416   _this->_internal_mutable_metadata()->MergeFrom(
2417       from._internal_metadata());
2418   _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
2419 }
2420 
2421 void PhoneMetadataCollection::CopyFrom(const PhoneMetadataCollection& from) {
2422 // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneMetadataCollection)
2423   if (&from == this) return;
2424   Clear();
2425   MergeFrom(from);
2426 }
2427 
2428 PROTOBUF_NOINLINE bool PhoneMetadataCollection::IsInitializedImpl(
2429     const MessageLite& msg) {
2430   auto& this_ = static_cast<const PhoneMetadataCollection&>(msg);
2431   if (!::google::protobuf::internal::AllAreInitialized(this_._internal_metadata()))
2432     return false;
2433   return true;
2434 }
2435 
2436 void PhoneMetadataCollection::InternalSwap(PhoneMetadataCollection* PROTOBUF_RESTRICT other) {
2437   using std::swap;
2438   _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2439   _impl_.metadata_.InternalSwap(&other->_impl_.metadata_);
2440 }
2441 
2442 // @@protoc_insertion_point(namespace_scope)
2443 }  // namespace phonenumbers
2444 }  // namespace i18n
2445 namespace google {
2446 namespace protobuf {
2447 }  // namespace protobuf
2448 }  // namespace google
2449 // @@protoc_insertion_point(global_scope)
2450 #include "google/protobuf/port_undef.inc"
2451