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

#include "attribute.pb.h"

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

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::apipb::OriginAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AsSegment
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AsPathAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::NextHopAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MultiExitDiscAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LocalPrefAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AtomicAggregateAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AggregatorAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::CommunitiesAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::OriginatorIdAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::ClusterListAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::IPAddressPrefix
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LabeledIPAddressPrefix
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EncapsulationNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RouteDistinguisherTwoOctetASN
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RouteDistinguisherIPAddress
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RouteDistinguisherFourOctetASN
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EthernetSegmentIdentifier
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EVPNEthernetAutoDiscoveryRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EVPNMACIPAdvertisementRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EVPNInclusiveMulticastEthernetTagRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EVPNEthernetSegmentRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EVPNIPPrefixRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EVPNIPMSIRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRPolicyNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LabeledVPNIPAddressPrefix
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RouteTargetMembershipNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::FlowSpecIPPrefix
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::FlowSpecMAC
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::FlowSpecComponentItem
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::FlowSpecComponent
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::FlowSpecNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::VPNFlowSpecNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::OpaqueNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsNodeDescriptor
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsLinkDescriptor
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsPrefixDescriptor
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsNodeNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsLinkNLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsPrefixV4NLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsPrefixV6NLRI
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsAddrPrefix
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MUPInterworkSegmentDiscoveryRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MUPDirectSegmentDiscoveryRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MUPType1SessionTransformedRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MUPType2SessionTransformedRoute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MpReachNLRIAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MpUnreachNLRIAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TwoOctetAsSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::IPv4AddressSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::FourOctetAsSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LinkBandwidthExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::ValidationExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::ColorExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::EncapExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::DefaultGatewayExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::OpaqueExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::ESILabelExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::ESImportRouteTarget
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MacMobilityExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RouterMacExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TrafficRateExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TrafficActionExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RedirectTwoOctetAsSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RedirectIPv4AddressSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RedirectFourOctetAsSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TrafficRemarkExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::MUPExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::UnknownExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::ExtendedCommunitiesAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::As4PathAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::As4AggregatorAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::PmsiTunnelAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVEncapsulation
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVProtocol
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVColor
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVSRPreference
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVSRCandidatePathName
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVSRPriority
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVSRBindingSID
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRBindingSID
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6EndPointBehavior
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6BindingSID
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVSRENLP
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRWeight
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SegmentFlags
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SegmentTypeA
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SegmentTypeB
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVSRSegmentList
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVEgressEndpoint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVUDPDestPort
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapSubTLVUnknown
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapTLV
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::TunnelEncapAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::IPv6AddressSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::RedirectIPv6AddressSpecificExtended
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::IP6ExtendedCommunitiesAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AigpTLVIGPMetric
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AigpTLVUnknown
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::AigpAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LargeCommunity
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LargeCommunitiesAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsNodeFlags
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsIGPFlags
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsSrRange
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsSrCapabilities
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsSrLocalBlock
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsAttributeNode
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsAttributeLink
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsAttributePrefix
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsBgpPeerSegmentSIDFlags
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsBgpPeerSegmentSID
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsAttributeBgpPeerSegment
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::LsAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::UnknownAttribute
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6StructureSubSubTLV
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6SIDFlags
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6TLV
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6InformationSubTLV
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6L3ServiceTLV
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::SRv6L2ServiceTLV
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
        // ::apipb::PrefixSID
        {&::_pbi::kDescriptorMethods, &::descriptor_table_attribute_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
namespace apipb {
class ValidationExtended::_Internal {
 public:
  using HasBits = decltype(::std::declval<ValidationExtended>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ValidationExtended, _impl_._has_bits_);
};

constexpr ValidationExtended::ParseTableT_ ValidationExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ValidationExtended, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::ValidationExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 state = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ValidationExtended, _impl_.state_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ValidationExtended, _impl_.state_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 state = 1;
      {PROTOBUF_FIELD_OFFSET(ValidationExtended, _impl_.state_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ValidationExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        state_{0u} {}

template <typename>
constexpr ValidationExtended::ValidationExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ValidationExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ValidationExtended(arena);
}
constexpr auto ValidationExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ValidationExtended), alignof(ValidationExtended));
}
constexpr auto ValidationExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ValidationExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ValidationExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ValidationExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ValidationExtended>(), &ValidationExtended::ByteSizeLong,
              &ValidationExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ValidationExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[52],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ValidationExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ValidationExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ValidationExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ValidationExtended::InternalGenerateClassData_(
            _default, &ValidationExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ValidationExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ValidationExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ValidationExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ValidationExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ValidationExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr UnknownExtended::ParseTableT_ UnknownExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(UnknownExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::UnknownExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes value = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(UnknownExtended, _impl_.value_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(UnknownExtended, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(UnknownExtended, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(UnknownExtended, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes value = 2;
      {PROTOBUF_FIELD_OFFSET(UnknownExtended, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr UnknownExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u} {}

template <typename>
constexpr UnknownExtended::UnknownExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL UnknownExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) UnknownExtended(arena);
}
constexpr auto UnknownExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(UnknownExtended), alignof(UnknownExtended));
}
constexpr auto UnknownExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &UnknownExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<UnknownExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &UnknownExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<UnknownExtended>(), &UnknownExtended::ByteSizeLong,
              &UnknownExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(UnknownExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[68],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct UnknownExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr UnknownExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 UnknownExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(UnknownExtended::InternalGenerateClassData_(
            _default, &UnknownExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<UnknownExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~UnknownExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) UnknownExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<UnknownExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(UnknownExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr UnknownAttribute::ParseTableT_ UnknownAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::UnknownAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 flags = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(UnknownAttribute, _impl_.flags_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.flags_)}},
      // uint32 type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(UnknownAttribute, _impl_.type_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.type_)}},
      // bytes value = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.value_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 flags = 1;
      {PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.flags_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 type = 2;
      {PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.type_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes value = 3;
      {PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr UnknownAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        flags_{0u},
        type_{0u} {}

template <typename>
constexpr UnknownAttribute::UnknownAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL UnknownAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) UnknownAttribute(arena);
}
constexpr auto UnknownAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(UnknownAttribute), alignof(UnknownAttribute));
}
constexpr auto UnknownAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &UnknownAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<UnknownAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &UnknownAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<UnknownAttribute>(), &UnknownAttribute::ByteSizeLong,
              &UnknownAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[114],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct UnknownAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr UnknownAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 UnknownAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(UnknownAttribute::InternalGenerateClassData_(
            _default, &UnknownAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<UnknownAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~UnknownAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) UnknownAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<UnknownAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(UnknownAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TwoOctetAsSpecificExtended::ParseTableT_ TwoOctetAsSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TwoOctetAsSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TwoOctetAsSpecificExtended, _impl_.local_admin_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.local_admin_)}},
      // bool is_transitive = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(TwoOctetAsSpecificExtended, _impl_.is_transitive_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.is_transitive_)}},
      // uint32 sub_type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TwoOctetAsSpecificExtended, _impl_.sub_type_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.sub_type_)}},
      // uint32 asn = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TwoOctetAsSpecificExtended, _impl_.asn_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_transitive = 1;
      {PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.is_transitive_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 sub_type = 2;
      {PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.sub_type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 asn = 3;
      {PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.asn_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 local_admin = 4;
      {PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TwoOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        is_transitive_{false},
        sub_type_{0u},
        asn_{0u},
        local_admin_{0u} {}

template <typename>
constexpr TwoOctetAsSpecificExtended::TwoOctetAsSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TwoOctetAsSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TwoOctetAsSpecificExtended(arena);
}
constexpr auto TwoOctetAsSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TwoOctetAsSpecificExtended), alignof(TwoOctetAsSpecificExtended));
}
constexpr auto TwoOctetAsSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TwoOctetAsSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TwoOctetAsSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TwoOctetAsSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TwoOctetAsSpecificExtended>(), &TwoOctetAsSpecificExtended::ByteSizeLong,
              &TwoOctetAsSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[48],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TwoOctetAsSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TwoOctetAsSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TwoOctetAsSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TwoOctetAsSpecificExtended::InternalGenerateClassData_(
            _default, &TwoOctetAsSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TwoOctetAsSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TwoOctetAsSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TwoOctetAsSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TwoOctetAsSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVUnknown::ParseTableT_ TunnelEncapSubTLVUnknown::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknown, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVUnknown>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes value = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknown, _impl_.value_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVUnknown, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknown, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknown, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes value = 2;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknown, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVUnknown::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVUnknown::TunnelEncapSubTLVUnknown(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVUnknown::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVUnknown(arena);
}
constexpr auto TunnelEncapSubTLVUnknown::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapSubTLVUnknown), alignof(TunnelEncapSubTLVUnknown));
}
constexpr auto TunnelEncapSubTLVUnknown::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVUnknown::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVUnknown>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVUnknown::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVUnknown>(), &TunnelEncapSubTLVUnknown::ByteSizeLong,
              &TunnelEncapSubTLVUnknown::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknown, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[91],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVUnknownGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVUnknownGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVUnknown_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVUnknown::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVUnknown_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVUnknown>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVUnknownGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVUnknown _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVUnknown>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUnknownGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVUDPDestPort::ParseTableT_ TunnelEncapSubTLVUDPDestPort::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUDPDestPort, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVUDPDestPort>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 port = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVUDPDestPort, _impl_.port_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUDPDestPort, _impl_.port_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 port = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUDPDestPort, _impl_.port_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVUDPDestPort::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        port_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVUDPDestPort::TunnelEncapSubTLVUDPDestPort(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVUDPDestPort::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVUDPDestPort(arena);
}
constexpr auto TunnelEncapSubTLVUDPDestPort::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVUDPDestPort), alignof(TunnelEncapSubTLVUDPDestPort));
}
constexpr auto TunnelEncapSubTLVUDPDestPort::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVUDPDestPort::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVUDPDestPort>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVUDPDestPort::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVUDPDestPort>(), &TunnelEncapSubTLVUDPDestPort::ByteSizeLong,
              &TunnelEncapSubTLVUDPDestPort::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUDPDestPort, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[90],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVUDPDestPortGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVUDPDestPortGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVUDPDestPort_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVUDPDestPort::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVUDPDestPort_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVUDPDestPort>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVUDPDestPortGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVUDPDestPort _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVUDPDestPort>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVUDPDestPortGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVSRPriority::ParseTableT_ TunnelEncapSubTLVSRPriority::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPriority, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVSRPriority>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 priority = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVSRPriority, _impl_.priority_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPriority, _impl_.priority_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 priority = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPriority, _impl_.priority_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVSRPriority::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        priority_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVSRPriority::TunnelEncapSubTLVSRPriority(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVSRPriority::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVSRPriority(arena);
}
constexpr auto TunnelEncapSubTLVSRPriority::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVSRPriority), alignof(TunnelEncapSubTLVSRPriority));
}
constexpr auto TunnelEncapSubTLVSRPriority::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVSRPriority::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVSRPriority>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVSRPriority::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVSRPriority>(), &TunnelEncapSubTLVSRPriority::ByteSizeLong,
              &TunnelEncapSubTLVSRPriority::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPriority, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[78],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVSRPriorityGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVSRPriorityGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVSRPriority_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVSRPriority::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVSRPriority_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRPriority>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVSRPriorityGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVSRPriority _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRPriority>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPriorityGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVSRPreference::ParseTableT_ TunnelEncapSubTLVSRPreference::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVSRPreference>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 preference = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVSRPreference, _impl_.preference_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_.preference_)}},
      // uint32 flags = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVSRPreference, _impl_.flags_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_.flags_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 flags = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_.flags_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 preference = 2;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_.preference_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVSRPreference::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        flags_{0u},
        preference_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVSRPreference::TunnelEncapSubTLVSRPreference(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVSRPreference::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVSRPreference(arena);
}
constexpr auto TunnelEncapSubTLVSRPreference::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVSRPreference), alignof(TunnelEncapSubTLVSRPreference));
}
constexpr auto TunnelEncapSubTLVSRPreference::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVSRPreference::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVSRPreference>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVSRPreference::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVSRPreference>(), &TunnelEncapSubTLVSRPreference::ByteSizeLong,
              &TunnelEncapSubTLVSRPreference::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[76],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVSRPreferenceGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVSRPreferenceGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVSRPreference_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVSRPreference::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVSRPreference_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRPreference>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVSRPreferenceGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVSRPreference _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRPreference>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreferenceGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVSRENLP::ParseTableT_ TunnelEncapSubTLVSRENLP::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVSRENLP>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.ENLPType enlp = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVSRENLP, _impl_.enlp_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_.enlp_)}},
      // uint32 flags = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVSRENLP, _impl_.flags_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_.flags_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 flags = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_.flags_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .apipb.ENLPType enlp = 2;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_.enlp_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVSRENLP::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        flags_{0u},
        enlp_{static_cast< ::apipb::ENLPType >(0)} {}

template <typename>
constexpr TunnelEncapSubTLVSRENLP::TunnelEncapSubTLVSRENLP(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVSRENLP::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVSRENLP(arena);
}
constexpr auto TunnelEncapSubTLVSRENLP::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVSRENLP), alignof(TunnelEncapSubTLVSRENLP));
}
constexpr auto TunnelEncapSubTLVSRENLP::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVSRENLP::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVSRENLP>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVSRENLP::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVSRENLP>(), &TunnelEncapSubTLVSRENLP::ByteSizeLong,
              &TunnelEncapSubTLVSRENLP::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[83],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVSRENLPGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVSRENLPGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVSRENLP_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVSRENLP::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVSRENLP_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRENLP>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVSRENLPGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVSRENLP _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRENLP>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLPGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVSRCandidatePathName::ParseTableT_ TunnelEncapSubTLVSRCandidatePathName::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRCandidatePathName, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVSRCandidatePathName>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string candidate_path_name = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRCandidatePathName, _impl_.candidate_path_name_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string candidate_path_name = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRCandidatePathName, _impl_.candidate_path_name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\52\23\0\0\0\0\0\0"
      "apipb.TunnelEncapSubTLVSRCandidatePathName"
      "candidate_path_name"
    }},
  };
}


inline constexpr TunnelEncapSubTLVSRCandidatePathName::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        candidate_path_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr TunnelEncapSubTLVSRCandidatePathName::TunnelEncapSubTLVSRCandidatePathName(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVSRCandidatePathName::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVSRCandidatePathName(arena);
}
constexpr auto TunnelEncapSubTLVSRCandidatePathName::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapSubTLVSRCandidatePathName), alignof(TunnelEncapSubTLVSRCandidatePathName));
}
constexpr auto TunnelEncapSubTLVSRCandidatePathName::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVSRCandidatePathName::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVSRCandidatePathName>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVSRCandidatePathName::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVSRCandidatePathName>(), &TunnelEncapSubTLVSRCandidatePathName::ByteSizeLong,
              &TunnelEncapSubTLVSRCandidatePathName::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRCandidatePathName, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[77],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVSRCandidatePathNameGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVSRCandidatePathNameGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVSRCandidatePathName_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVSRCandidatePathName::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVSRCandidatePathName_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRCandidatePathName>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVSRCandidatePathNameGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVSRCandidatePathName _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRCandidatePathName>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRCandidatePathNameGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVProtocol::ParseTableT_ TunnelEncapSubTLVProtocol::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVProtocol, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVProtocol>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 protocol = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVProtocol, _impl_.protocol_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVProtocol, _impl_.protocol_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 protocol = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVProtocol, _impl_.protocol_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVProtocol::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        protocol_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVProtocol::TunnelEncapSubTLVProtocol(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVProtocol::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVProtocol(arena);
}
constexpr auto TunnelEncapSubTLVProtocol::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVProtocol), alignof(TunnelEncapSubTLVProtocol));
}
constexpr auto TunnelEncapSubTLVProtocol::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVProtocol::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVProtocol>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVProtocol::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVProtocol>(), &TunnelEncapSubTLVProtocol::ByteSizeLong,
              &TunnelEncapSubTLVProtocol::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVProtocol, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[74],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVProtocolGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVProtocolGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVProtocol_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVProtocol::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVProtocol_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVProtocol>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVProtocolGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVProtocol _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVProtocol>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVProtocolGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVEncapsulation::ParseTableT_ TunnelEncapSubTLVEncapsulation::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulation, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVEncapsulation>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes cookie = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulation, _impl_.cookie_)}},
      // uint32 key = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVEncapsulation, _impl_.key_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulation, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 key = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulation, _impl_.key_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes cookie = 2;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulation, _impl_.cookie_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVEncapsulation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        cookie_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        key_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVEncapsulation::TunnelEncapSubTLVEncapsulation(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVEncapsulation::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVEncapsulation(arena);
}
constexpr auto TunnelEncapSubTLVEncapsulation::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapSubTLVEncapsulation), alignof(TunnelEncapSubTLVEncapsulation));
}
constexpr auto TunnelEncapSubTLVEncapsulation::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVEncapsulation::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVEncapsulation>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVEncapsulation::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVEncapsulation>(), &TunnelEncapSubTLVEncapsulation::ByteSizeLong,
              &TunnelEncapSubTLVEncapsulation::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulation, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[73],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVEncapsulationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVEncapsulationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVEncapsulation_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVEncapsulation::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVEncapsulation_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVEncapsulation>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVEncapsulationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVEncapsulation _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVEncapsulation>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEncapsulationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVEgressEndpoint::ParseTableT_ TunnelEncapSubTLVEgressEndpoint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEgressEndpoint, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVEgressEndpoint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string address = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEgressEndpoint, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string address = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEgressEndpoint, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\45\7\0\0\0\0\0\0"
      "apipb.TunnelEncapSubTLVEgressEndpoint"
      "address"
    }},
  };
}


inline constexpr TunnelEncapSubTLVEgressEndpoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr TunnelEncapSubTLVEgressEndpoint::TunnelEncapSubTLVEgressEndpoint(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVEgressEndpoint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVEgressEndpoint(arena);
}
constexpr auto TunnelEncapSubTLVEgressEndpoint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapSubTLVEgressEndpoint), alignof(TunnelEncapSubTLVEgressEndpoint));
}
constexpr auto TunnelEncapSubTLVEgressEndpoint::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVEgressEndpoint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVEgressEndpoint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVEgressEndpoint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVEgressEndpoint>(), &TunnelEncapSubTLVEgressEndpoint::ByteSizeLong,
              &TunnelEncapSubTLVEgressEndpoint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEgressEndpoint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[89],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVEgressEndpointGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVEgressEndpointGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVEgressEndpoint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVEgressEndpoint::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVEgressEndpoint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVEgressEndpoint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVEgressEndpointGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVEgressEndpoint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVEgressEndpoint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVEgressEndpointGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVColor::ParseTableT_ TunnelEncapSubTLVColor::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVColor, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVColor>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 color = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapSubTLVColor, _impl_.color_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVColor, _impl_.color_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 color = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVColor, _impl_.color_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVColor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        color_{0u} {}

template <typename>
constexpr TunnelEncapSubTLVColor::TunnelEncapSubTLVColor(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVColor::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVColor(arena);
}
constexpr auto TunnelEncapSubTLVColor::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVColor), alignof(TunnelEncapSubTLVColor));
}
constexpr auto TunnelEncapSubTLVColor::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVColor::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVColor>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVColor::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVColor>(), &TunnelEncapSubTLVColor::ByteSizeLong,
              &TunnelEncapSubTLVColor::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVColor, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[75],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVColorGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVColorGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVColor_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVColor::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVColor_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVColor>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVColorGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVColor _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVColor>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVColorGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TrafficRemarkExtended::ParseTableT_ TrafficRemarkExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TrafficRemarkExtended, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TrafficRemarkExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 dscp = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TrafficRemarkExtended, _impl_.dscp_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TrafficRemarkExtended, _impl_.dscp_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 dscp = 1;
      {PROTOBUF_FIELD_OFFSET(TrafficRemarkExtended, _impl_.dscp_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TrafficRemarkExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        dscp_{0u} {}

template <typename>
constexpr TrafficRemarkExtended::TrafficRemarkExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TrafficRemarkExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TrafficRemarkExtended(arena);
}
constexpr auto TrafficRemarkExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TrafficRemarkExtended), alignof(TrafficRemarkExtended));
}
constexpr auto TrafficRemarkExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TrafficRemarkExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TrafficRemarkExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TrafficRemarkExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TrafficRemarkExtended>(), &TrafficRemarkExtended::ByteSizeLong,
              &TrafficRemarkExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TrafficRemarkExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[66],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TrafficRemarkExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TrafficRemarkExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TrafficRemarkExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TrafficRemarkExtended::InternalGenerateClassData_(
            _default, &TrafficRemarkExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TrafficRemarkExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TrafficRemarkExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TrafficRemarkExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TrafficRemarkExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TrafficRemarkExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TrafficRateExtended::ParseTableT_ TrafficRateExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TrafficRateExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // float rate = 2;
      {::_pbi::TcParser::FastF32S1,
       {21, 1, 0,
        PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_.rate_)}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TrafficRateExtended, _impl_.asn_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_.asn_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // float rate = 2;
      {PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_.rate_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TrafficRateExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        asn_{0u},
        rate_{0} {}

template <typename>
constexpr TrafficRateExtended::TrafficRateExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TrafficRateExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TrafficRateExtended(arena);
}
constexpr auto TrafficRateExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TrafficRateExtended), alignof(TrafficRateExtended));
}
constexpr auto TrafficRateExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TrafficRateExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TrafficRateExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TrafficRateExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TrafficRateExtended>(), &TrafficRateExtended::ByteSizeLong,
              &TrafficRateExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[61],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TrafficRateExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TrafficRateExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TrafficRateExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TrafficRateExtended::InternalGenerateClassData_(
            _default, &TrafficRateExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TrafficRateExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TrafficRateExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TrafficRateExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TrafficRateExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TrafficRateExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TrafficActionExtended::ParseTableT_ TrafficActionExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TrafficActionExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool sample = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(TrafficActionExtended, _impl_.sample_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_.sample_)}},
      // bool terminal = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(TrafficActionExtended, _impl_.terminal_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_.terminal_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool terminal = 1;
      {PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_.terminal_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool sample = 2;
      {PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_.sample_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr TrafficActionExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        terminal_{false},
        sample_{false} {}

template <typename>
constexpr TrafficActionExtended::TrafficActionExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TrafficActionExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TrafficActionExtended(arena);
}
constexpr auto TrafficActionExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TrafficActionExtended), alignof(TrafficActionExtended));
}
constexpr auto TrafficActionExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TrafficActionExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TrafficActionExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TrafficActionExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TrafficActionExtended>(), &TrafficActionExtended::ByteSizeLong,
              &TrafficActionExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[62],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TrafficActionExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TrafficActionExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TrafficActionExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TrafficActionExtended::InternalGenerateClassData_(
            _default, &TrafficActionExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TrafficActionExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TrafficActionExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TrafficActionExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TrafficActionExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TrafficActionExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SegmentFlags::ParseTableT_ SegmentFlags::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SegmentFlags>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool b_flag = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SegmentFlags, _impl_.b_flag_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.b_flag_)}},
      // bool v_flag = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SegmentFlags, _impl_.v_flag_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.v_flag_)}},
      // bool a_flag = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SegmentFlags, _impl_.a_flag_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.a_flag_)}},
      // bool s_flag = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SegmentFlags, _impl_.s_flag_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.s_flag_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool v_flag = 1;
      {PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.v_flag_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool a_flag = 2;
      {PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.a_flag_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool s_flag = 3;
      {PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.s_flag_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool b_flag = 4;
      {PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.b_flag_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SegmentFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        v_flag_{false},
        a_flag_{false},
        s_flag_{false},
        b_flag_{false} {}

template <typename>
constexpr SegmentFlags::SegmentFlags(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SegmentFlags::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SegmentFlags(arena);
}
constexpr auto SegmentFlags::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SegmentFlags), alignof(SegmentFlags));
}
constexpr auto SegmentFlags::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SegmentFlags::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SegmentFlags>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SegmentFlags::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SegmentFlags>(), &SegmentFlags::ByteSizeLong,
              &SegmentFlags::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[85],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SegmentFlagsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SegmentFlagsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SegmentFlags_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SegmentFlags::InternalGenerateClassData_(
            _default, &SegmentFlags_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SegmentFlags>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SegmentFlagsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SegmentFlags _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SegmentFlags>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SegmentFlagsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6StructureSubSubTLV::ParseTableT_ SRv6StructureSubSubTLV::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6StructureSubSubTLV>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 locator_block_length = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6StructureSubSubTLV, _impl_.locator_block_length_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.locator_block_length_)}},
      // uint32 locator_node_length = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6StructureSubSubTLV, _impl_.locator_node_length_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.locator_node_length_)}},
      // uint32 function_length = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6StructureSubSubTLV, _impl_.function_length_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.function_length_)}},
      // uint32 argument_length = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6StructureSubSubTLV, _impl_.argument_length_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.argument_length_)}},
      // uint32 transposition_length = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6StructureSubSubTLV, _impl_.transposition_length_), 4>(),
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.transposition_length_)}},
      // uint32 transposition_offset = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6StructureSubSubTLV, _impl_.transposition_offset_), 5>(),
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.transposition_offset_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 locator_block_length = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.locator_block_length_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 locator_node_length = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.locator_node_length_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 function_length = 3;
      {PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.function_length_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 argument_length = 4;
      {PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.argument_length_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 transposition_length = 5;
      {PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.transposition_length_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 transposition_offset = 6;
      {PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.transposition_offset_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SRv6StructureSubSubTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        locator_block_length_{0u},
        locator_node_length_{0u},
        function_length_{0u},
        argument_length_{0u},
        transposition_length_{0u},
        transposition_offset_{0u} {}

template <typename>
constexpr SRv6StructureSubSubTLV::SRv6StructureSubSubTLV(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6StructureSubSubTLV::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6StructureSubSubTLV(arena);
}
constexpr auto SRv6StructureSubSubTLV::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRv6StructureSubSubTLV), alignof(SRv6StructureSubSubTLV));
}
constexpr auto SRv6StructureSubSubTLV::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6StructureSubSubTLV::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6StructureSubSubTLV>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6StructureSubSubTLV::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6StructureSubSubTLV>(), &SRv6StructureSubSubTLV::ByteSizeLong,
              &SRv6StructureSubSubTLV::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[115],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6StructureSubSubTLVGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6StructureSubSubTLVGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6StructureSubSubTLV_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6StructureSubSubTLV::InternalGenerateClassData_(
            _default, &SRv6StructureSubSubTLV_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6StructureSubSubTLV>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6StructureSubSubTLVGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6StructureSubSubTLV _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6StructureSubSubTLV>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLVGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6SIDFlags::ParseTableT_ SRv6SIDFlags::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6SIDFlags, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6SIDFlags>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool flag_1 = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SRv6SIDFlags, _impl_.flag_1_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6SIDFlags, _impl_.flag_1_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool flag_1 = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6SIDFlags, _impl_.flag_1_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SRv6SIDFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        flag_1_{false} {}

template <typename>
constexpr SRv6SIDFlags::SRv6SIDFlags(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6SIDFlags::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6SIDFlags(arena);
}
constexpr auto SRv6SIDFlags::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRv6SIDFlags), alignof(SRv6SIDFlags));
}
constexpr auto SRv6SIDFlags::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6SIDFlags::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6SIDFlags>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6SIDFlags::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6SIDFlags>(), &SRv6SIDFlags::ByteSizeLong,
              &SRv6SIDFlags::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6SIDFlags, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[116],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6SIDFlagsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6SIDFlagsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6SIDFlags_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6SIDFlags::InternalGenerateClassData_(
            _default, &SRv6SIDFlags_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6SIDFlags>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6SIDFlagsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6SIDFlags _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6SIDFlags>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6SIDFlagsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6EndPointBehavior::ParseTableT_ SRv6EndPointBehavior::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_._has_bits_),
      0, // no _extensions_
      5, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6EndPointBehavior>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.SRv6Behavior behavior = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6EndPointBehavior, _impl_.behavior_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.behavior_)}},
      // uint32 block_len = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6EndPointBehavior, _impl_.block_len_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.block_len_)}},
      // uint32 node_len = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6EndPointBehavior, _impl_.node_len_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.node_len_)}},
      // uint32 func_len = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6EndPointBehavior, _impl_.func_len_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.func_len_)}},
      // uint32 arg_len = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6EndPointBehavior, _impl_.arg_len_), 4>(),
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.arg_len_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.SRv6Behavior behavior = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.behavior_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // uint32 block_len = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.block_len_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 node_len = 3;
      {PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.node_len_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 func_len = 4;
      {PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.func_len_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 arg_len = 5;
      {PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.arg_len_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SRv6EndPointBehavior::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        behavior_{static_cast< ::apipb::SRv6Behavior >(0)},
        block_len_{0u},
        node_len_{0u},
        func_len_{0u},
        arg_len_{0u} {}

template <typename>
constexpr SRv6EndPointBehavior::SRv6EndPointBehavior(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6EndPointBehavior::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6EndPointBehavior(arena);
}
constexpr auto SRv6EndPointBehavior::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRv6EndPointBehavior), alignof(SRv6EndPointBehavior));
}
constexpr auto SRv6EndPointBehavior::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6EndPointBehavior::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6EndPointBehavior>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6EndPointBehavior::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6EndPointBehavior>(), &SRv6EndPointBehavior::ByteSizeLong,
              &SRv6EndPointBehavior::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[81],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6EndPointBehaviorGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6EndPointBehaviorGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6EndPointBehavior_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6EndPointBehavior::InternalGenerateClassData_(
            _default, &SRv6EndPointBehavior_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6EndPointBehavior>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6EndPointBehaviorGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6EndPointBehavior _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6EndPointBehavior>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6EndPointBehaviorGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRWeight::ParseTableT_ SRWeight::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRWeight, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRWeight>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 weight = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRWeight, _impl_.weight_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRWeight, _impl_.weight_)}},
      // uint32 flags = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRWeight, _impl_.flags_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRWeight, _impl_.flags_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 flags = 1;
      {PROTOBUF_FIELD_OFFSET(SRWeight, _impl_.flags_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 weight = 2;
      {PROTOBUF_FIELD_OFFSET(SRWeight, _impl_.weight_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SRWeight::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        flags_{0u},
        weight_{0u} {}

template <typename>
constexpr SRWeight::SRWeight(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRWeight::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRWeight(arena);
}
constexpr auto SRWeight::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRWeight), alignof(SRWeight));
}
constexpr auto SRWeight::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRWeight::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRWeight>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRWeight::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRWeight>(), &SRWeight::ByteSizeLong,
              &SRWeight::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRWeight, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[84],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRWeightGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRWeightGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRWeight_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRWeight::InternalGenerateClassData_(
            _default, &SRWeight_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRWeight>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRWeightGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRWeight _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRWeight>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRWeightGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRPolicyNLRI::ParseTableT_ SRPolicyNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRPolicyNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes endpoint = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.endpoint_)}},
      // uint32 length = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRPolicyNLRI, _impl_.length_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.length_)}},
      // uint32 distinguisher = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRPolicyNLRI, _impl_.distinguisher_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.distinguisher_)}},
      // uint32 color = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRPolicyNLRI, _impl_.color_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.color_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 length = 1;
      {PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.length_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 distinguisher = 2;
      {PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.distinguisher_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 color = 3;
      {PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.color_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes endpoint = 4;
      {PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.endpoint_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SRPolicyNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        endpoint_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        length_{0u},
        distinguisher_{0u},
        color_{0u} {}

template <typename>
constexpr SRPolicyNLRI::SRPolicyNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRPolicyNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRPolicyNLRI(arena);
}
constexpr auto SRPolicyNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRPolicyNLRI), alignof(SRPolicyNLRI));
}
constexpr auto SRPolicyNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRPolicyNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRPolicyNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRPolicyNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRPolicyNLRI>(), &SRPolicyNLRI::ByteSizeLong,
              &SRPolicyNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[24],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRPolicyNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRPolicyNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRPolicyNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRPolicyNLRI::InternalGenerateClassData_(
            _default, &SRPolicyNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRPolicyNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRPolicyNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRPolicyNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRPolicyNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRPolicyNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRBindingSID::ParseTableT_ SRBindingSID::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRBindingSID>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool s_flag = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SRBindingSID, _impl_.s_flag_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.s_flag_)}},
      // bool i_flag = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SRBindingSID, _impl_.i_flag_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.i_flag_)}},
      // bytes sid = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.sid_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool s_flag = 1;
      {PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.s_flag_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool i_flag = 2;
      {PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.i_flag_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bytes sid = 3;
      {PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.sid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SRBindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sid_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        s_flag_{false},
        i_flag_{false} {}

template <typename>
constexpr SRBindingSID::SRBindingSID(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRBindingSID::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRBindingSID(arena);
}
constexpr auto SRBindingSID::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRBindingSID), alignof(SRBindingSID));
}
constexpr auto SRBindingSID::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRBindingSID::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRBindingSID>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRBindingSID::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRBindingSID>(), &SRBindingSID::ByteSizeLong,
              &SRBindingSID::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[80],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRBindingSIDGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRBindingSIDGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRBindingSID_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRBindingSID::InternalGenerateClassData_(
            _default, &SRBindingSID_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRBindingSID>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRBindingSIDGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRBindingSID _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRBindingSID>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRBindingSIDGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RouterMacExtended::ParseTableT_ RouterMacExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RouterMacExtended, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RouterMacExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string mac = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(RouterMacExtended, _impl_.mac_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string mac = 1;
      {PROTOBUF_FIELD_OFFSET(RouterMacExtended, _impl_.mac_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\27\3\0\0\0\0\0\0"
      "apipb.RouterMacExtended"
      "mac"
    }},
  };
}


inline constexpr RouterMacExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        mac_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr RouterMacExtended::RouterMacExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RouterMacExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RouterMacExtended(arena);
}
constexpr auto RouterMacExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RouterMacExtended), alignof(RouterMacExtended));
}
constexpr auto RouterMacExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RouterMacExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RouterMacExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RouterMacExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RouterMacExtended>(), &RouterMacExtended::ByteSizeLong,
              &RouterMacExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RouterMacExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[60],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RouterMacExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RouterMacExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RouterMacExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RouterMacExtended::InternalGenerateClassData_(
            _default, &RouterMacExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RouterMacExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RouterMacExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RouterMacExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RouterMacExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RouterMacExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RouteDistinguisherTwoOctetASN::ParseTableT_ RouteDistinguisherTwoOctetASN::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RouteDistinguisherTwoOctetASN>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 assigned = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RouteDistinguisherTwoOctetASN, _impl_.assigned_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_.assigned_)}},
      // uint32 admin = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RouteDistinguisherTwoOctetASN, _impl_.admin_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_.admin_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 admin = 1;
      {PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_.admin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 assigned = 2;
      {PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_.assigned_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RouteDistinguisherTwoOctetASN::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        admin_{0u},
        assigned_{0u} {}

template <typename>
constexpr RouteDistinguisherTwoOctetASN::RouteDistinguisherTwoOctetASN(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RouteDistinguisherTwoOctetASN::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RouteDistinguisherTwoOctetASN(arena);
}
constexpr auto RouteDistinguisherTwoOctetASN::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RouteDistinguisherTwoOctetASN), alignof(RouteDistinguisherTwoOctetASN));
}
constexpr auto RouteDistinguisherTwoOctetASN::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RouteDistinguisherTwoOctetASN::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RouteDistinguisherTwoOctetASN>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RouteDistinguisherTwoOctetASN::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RouteDistinguisherTwoOctetASN>(), &RouteDistinguisherTwoOctetASN::ByteSizeLong,
              &RouteDistinguisherTwoOctetASN::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[14],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RouteDistinguisherTwoOctetASNGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RouteDistinguisherTwoOctetASNGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RouteDistinguisherTwoOctetASN_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RouteDistinguisherTwoOctetASN::InternalGenerateClassData_(
            _default, &RouteDistinguisherTwoOctetASN_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RouteDistinguisherTwoOctetASN>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RouteDistinguisherTwoOctetASNGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RouteDistinguisherTwoOctetASN _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RouteDistinguisherTwoOctetASN>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASNGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RouteDistinguisherIPAddress::ParseTableT_ RouteDistinguisherIPAddress::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddress, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RouteDistinguisherIPAddress>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 assigned = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RouteDistinguisherIPAddress, _impl_.assigned_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddress, _impl_.assigned_)}},
      // string admin = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddress, _impl_.admin_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string admin = 1;
      {PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddress, _impl_.admin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 assigned = 2;
      {PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddress, _impl_.assigned_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\41\5\0\0\0\0\0\0"
      "apipb.RouteDistinguisherIPAddress"
      "admin"
    }},
  };
}


inline constexpr RouteDistinguisherIPAddress::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        admin_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        assigned_{0u} {}

template <typename>
constexpr RouteDistinguisherIPAddress::RouteDistinguisherIPAddress(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RouteDistinguisherIPAddress::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RouteDistinguisherIPAddress(arena);
}
constexpr auto RouteDistinguisherIPAddress::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RouteDistinguisherIPAddress), alignof(RouteDistinguisherIPAddress));
}
constexpr auto RouteDistinguisherIPAddress::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RouteDistinguisherIPAddress::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RouteDistinguisherIPAddress>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RouteDistinguisherIPAddress::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RouteDistinguisherIPAddress>(), &RouteDistinguisherIPAddress::ByteSizeLong,
              &RouteDistinguisherIPAddress::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddress, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[15],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RouteDistinguisherIPAddressGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RouteDistinguisherIPAddressGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RouteDistinguisherIPAddress_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RouteDistinguisherIPAddress::InternalGenerateClassData_(
            _default, &RouteDistinguisherIPAddress_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RouteDistinguisherIPAddress>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RouteDistinguisherIPAddressGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RouteDistinguisherIPAddress _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RouteDistinguisherIPAddress>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RouteDistinguisherIPAddressGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RouteDistinguisherFourOctetASN::ParseTableT_ RouteDistinguisherFourOctetASN::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RouteDistinguisherFourOctetASN>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 assigned = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RouteDistinguisherFourOctetASN, _impl_.assigned_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_.assigned_)}},
      // uint32 admin = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RouteDistinguisherFourOctetASN, _impl_.admin_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_.admin_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 admin = 1;
      {PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_.admin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 assigned = 2;
      {PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_.assigned_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RouteDistinguisherFourOctetASN::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        admin_{0u},
        assigned_{0u} {}

template <typename>
constexpr RouteDistinguisherFourOctetASN::RouteDistinguisherFourOctetASN(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RouteDistinguisherFourOctetASN::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RouteDistinguisherFourOctetASN(arena);
}
constexpr auto RouteDistinguisherFourOctetASN::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RouteDistinguisherFourOctetASN), alignof(RouteDistinguisherFourOctetASN));
}
constexpr auto RouteDistinguisherFourOctetASN::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RouteDistinguisherFourOctetASN::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RouteDistinguisherFourOctetASN>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RouteDistinguisherFourOctetASN::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RouteDistinguisherFourOctetASN>(), &RouteDistinguisherFourOctetASN::ByteSizeLong,
              &RouteDistinguisherFourOctetASN::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[16],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RouteDistinguisherFourOctetASNGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RouteDistinguisherFourOctetASNGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RouteDistinguisherFourOctetASN_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RouteDistinguisherFourOctetASN::InternalGenerateClassData_(
            _default, &RouteDistinguisherFourOctetASN_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RouteDistinguisherFourOctetASN>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RouteDistinguisherFourOctetASNGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RouteDistinguisherFourOctetASN _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RouteDistinguisherFourOctetASN>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASNGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RedirectTwoOctetAsSpecificExtended::ParseTableT_ RedirectTwoOctetAsSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RedirectTwoOctetAsSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RedirectTwoOctetAsSpecificExtended, _impl_.local_admin_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_.local_admin_)}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RedirectTwoOctetAsSpecificExtended, _impl_.asn_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_.asn_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 local_admin = 2;
      {PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RedirectTwoOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        asn_{0u},
        local_admin_{0u} {}

template <typename>
constexpr RedirectTwoOctetAsSpecificExtended::RedirectTwoOctetAsSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RedirectTwoOctetAsSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RedirectTwoOctetAsSpecificExtended(arena);
}
constexpr auto RedirectTwoOctetAsSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RedirectTwoOctetAsSpecificExtended), alignof(RedirectTwoOctetAsSpecificExtended));
}
constexpr auto RedirectTwoOctetAsSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RedirectTwoOctetAsSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RedirectTwoOctetAsSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RedirectTwoOctetAsSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RedirectTwoOctetAsSpecificExtended>(), &RedirectTwoOctetAsSpecificExtended::ByteSizeLong,
              &RedirectTwoOctetAsSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[63],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RedirectTwoOctetAsSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RedirectTwoOctetAsSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RedirectTwoOctetAsSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RedirectTwoOctetAsSpecificExtended::InternalGenerateClassData_(
            _default, &RedirectTwoOctetAsSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RedirectTwoOctetAsSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RedirectTwoOctetAsSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RedirectTwoOctetAsSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RedirectTwoOctetAsSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RedirectIPv6AddressSpecificExtended::ParseTableT_ RedirectIPv6AddressSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RedirectIPv6AddressSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RedirectIPv6AddressSpecificExtended, _impl_.local_admin_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtended, _impl_.local_admin_)}},
      // string address = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtended, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string address = 1;
      {PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtended, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 local_admin = 2;
      {PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\51\7\0\0\0\0\0\0"
      "apipb.RedirectIPv6AddressSpecificExtended"
      "address"
    }},
  };
}


inline constexpr RedirectIPv6AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        local_admin_{0u} {}

template <typename>
constexpr RedirectIPv6AddressSpecificExtended::RedirectIPv6AddressSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RedirectIPv6AddressSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RedirectIPv6AddressSpecificExtended(arena);
}
constexpr auto RedirectIPv6AddressSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RedirectIPv6AddressSpecificExtended), alignof(RedirectIPv6AddressSpecificExtended));
}
constexpr auto RedirectIPv6AddressSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RedirectIPv6AddressSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RedirectIPv6AddressSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RedirectIPv6AddressSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RedirectIPv6AddressSpecificExtended>(), &RedirectIPv6AddressSpecificExtended::ByteSizeLong,
              &RedirectIPv6AddressSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[95],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RedirectIPv6AddressSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RedirectIPv6AddressSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RedirectIPv6AddressSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RedirectIPv6AddressSpecificExtended::InternalGenerateClassData_(
            _default, &RedirectIPv6AddressSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RedirectIPv6AddressSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RedirectIPv6AddressSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RedirectIPv6AddressSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RedirectIPv6AddressSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RedirectIPv6AddressSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RedirectIPv4AddressSpecificExtended::ParseTableT_ RedirectIPv4AddressSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RedirectIPv4AddressSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RedirectIPv4AddressSpecificExtended, _impl_.local_admin_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtended, _impl_.local_admin_)}},
      // string address = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtended, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string address = 1;
      {PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtended, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 local_admin = 2;
      {PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\51\7\0\0\0\0\0\0"
      "apipb.RedirectIPv4AddressSpecificExtended"
      "address"
    }},
  };
}


inline constexpr RedirectIPv4AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        local_admin_{0u} {}

template <typename>
constexpr RedirectIPv4AddressSpecificExtended::RedirectIPv4AddressSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RedirectIPv4AddressSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RedirectIPv4AddressSpecificExtended(arena);
}
constexpr auto RedirectIPv4AddressSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(RedirectIPv4AddressSpecificExtended), alignof(RedirectIPv4AddressSpecificExtended));
}
constexpr auto RedirectIPv4AddressSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RedirectIPv4AddressSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RedirectIPv4AddressSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RedirectIPv4AddressSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RedirectIPv4AddressSpecificExtended>(), &RedirectIPv4AddressSpecificExtended::ByteSizeLong,
              &RedirectIPv4AddressSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[64],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RedirectIPv4AddressSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RedirectIPv4AddressSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RedirectIPv4AddressSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RedirectIPv4AddressSpecificExtended::InternalGenerateClassData_(
            _default, &RedirectIPv4AddressSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RedirectIPv4AddressSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RedirectIPv4AddressSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RedirectIPv4AddressSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RedirectIPv4AddressSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RedirectIPv4AddressSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RedirectFourOctetAsSpecificExtended::ParseTableT_ RedirectFourOctetAsSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RedirectFourOctetAsSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RedirectFourOctetAsSpecificExtended, _impl_.local_admin_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_.local_admin_)}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RedirectFourOctetAsSpecificExtended, _impl_.asn_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_.asn_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 local_admin = 2;
      {PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr RedirectFourOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        asn_{0u},
        local_admin_{0u} {}

template <typename>
constexpr RedirectFourOctetAsSpecificExtended::RedirectFourOctetAsSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RedirectFourOctetAsSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RedirectFourOctetAsSpecificExtended(arena);
}
constexpr auto RedirectFourOctetAsSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RedirectFourOctetAsSpecificExtended), alignof(RedirectFourOctetAsSpecificExtended));
}
constexpr auto RedirectFourOctetAsSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RedirectFourOctetAsSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RedirectFourOctetAsSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RedirectFourOctetAsSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RedirectFourOctetAsSpecificExtended>(), &RedirectFourOctetAsSpecificExtended::ByteSizeLong,
              &RedirectFourOctetAsSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[65],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RedirectFourOctetAsSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RedirectFourOctetAsSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RedirectFourOctetAsSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RedirectFourOctetAsSpecificExtended::InternalGenerateClassData_(
            _default, &RedirectFourOctetAsSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RedirectFourOctetAsSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RedirectFourOctetAsSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RedirectFourOctetAsSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RedirectFourOctetAsSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PmsiTunnelAttribute::ParseTableT_ PmsiTunnelAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::PmsiTunnelAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes id = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.id_)}},
      // uint32 flags = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PmsiTunnelAttribute, _impl_.flags_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.flags_)}},
      // uint32 type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PmsiTunnelAttribute, _impl_.type_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.type_)}},
      // uint32 label = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PmsiTunnelAttribute, _impl_.label_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.label_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 flags = 1;
      {PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.flags_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 type = 2;
      {PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.type_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 label = 3;
      {PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.label_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes id = 4;
      {PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr PmsiTunnelAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        flags_{0u},
        type_{0u},
        label_{0u} {}

template <typename>
constexpr PmsiTunnelAttribute::PmsiTunnelAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PmsiTunnelAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PmsiTunnelAttribute(arena);
}
constexpr auto PmsiTunnelAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PmsiTunnelAttribute), alignof(PmsiTunnelAttribute));
}
constexpr auto PmsiTunnelAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &PmsiTunnelAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PmsiTunnelAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PmsiTunnelAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PmsiTunnelAttribute>(), &PmsiTunnelAttribute::ByteSizeLong,
              &PmsiTunnelAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[72],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct PmsiTunnelAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PmsiTunnelAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PmsiTunnelAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PmsiTunnelAttribute::InternalGenerateClassData_(
            _default, &PmsiTunnelAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PmsiTunnelAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PmsiTunnelAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PmsiTunnelAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PmsiTunnelAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PmsiTunnelAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr OriginatorIdAttribute::ParseTableT_ OriginatorIdAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(OriginatorIdAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::OriginatorIdAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string id = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(OriginatorIdAttribute, _impl_.id_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string id = 1;
      {PROTOBUF_FIELD_OFFSET(OriginatorIdAttribute, _impl_.id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\33\2\0\0\0\0\0\0"
      "apipb.OriginatorIdAttribute"
      "id"
    }},
  };
}


inline constexpr OriginatorIdAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr OriginatorIdAttribute::OriginatorIdAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL OriginatorIdAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) OriginatorIdAttribute(arena);
}
constexpr auto OriginatorIdAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(OriginatorIdAttribute), alignof(OriginatorIdAttribute));
}
constexpr auto OriginatorIdAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &OriginatorIdAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<OriginatorIdAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &OriginatorIdAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<OriginatorIdAttribute>(), &OriginatorIdAttribute::ByteSizeLong,
              &OriginatorIdAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(OriginatorIdAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[9],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct OriginatorIdAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr OriginatorIdAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 OriginatorIdAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(OriginatorIdAttribute::InternalGenerateClassData_(
            _default, &OriginatorIdAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<OriginatorIdAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~OriginatorIdAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) OriginatorIdAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<OriginatorIdAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(OriginatorIdAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr OriginAttribute::ParseTableT_ OriginAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(OriginAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::OriginAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 origin = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(OriginAttribute, _impl_.origin_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(OriginAttribute, _impl_.origin_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 origin = 1;
      {PROTOBUF_FIELD_OFFSET(OriginAttribute, _impl_.origin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr OriginAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        origin_{0u} {}

template <typename>
constexpr OriginAttribute::OriginAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL OriginAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) OriginAttribute(arena);
}
constexpr auto OriginAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(OriginAttribute), alignof(OriginAttribute));
}
constexpr auto OriginAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &OriginAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<OriginAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &OriginAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<OriginAttribute>(), &OriginAttribute::ByteSizeLong,
              &OriginAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(OriginAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct OriginAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr OriginAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 OriginAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(OriginAttribute::InternalGenerateClassData_(
            _default, &OriginAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<OriginAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~OriginAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) OriginAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<OriginAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(OriginAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr OpaqueNLRI::ParseTableT_ OpaqueNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(OpaqueNLRI, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::OpaqueNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes value = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(OpaqueNLRI, _impl_.value_)}},
      // bytes key = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(OpaqueNLRI, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bytes key = 1;
      {PROTOBUF_FIELD_OFFSET(OpaqueNLRI, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // bytes value = 2;
      {PROTOBUF_FIELD_OFFSET(OpaqueNLRI, _impl_.value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr OpaqueNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        key_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr OpaqueNLRI::OpaqueNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL OpaqueNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) OpaqueNLRI(arena);
}
constexpr auto OpaqueNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(OpaqueNLRI), alignof(OpaqueNLRI));
}
constexpr auto OpaqueNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &OpaqueNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<OpaqueNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &OpaqueNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<OpaqueNLRI>(), &OpaqueNLRI::ByteSizeLong,
              &OpaqueNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(OpaqueNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[33],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct OpaqueNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr OpaqueNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 OpaqueNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(OpaqueNLRI::InternalGenerateClassData_(
            _default, &OpaqueNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<OpaqueNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~OpaqueNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) OpaqueNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<OpaqueNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(OpaqueNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr OpaqueExtended::ParseTableT_ OpaqueExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(OpaqueExtended, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967290,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::OpaqueExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool is_transitive = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(OpaqueExtended, _impl_.is_transitive_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(OpaqueExtended, _impl_.is_transitive_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // bytes value = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(OpaqueExtended, _impl_.value_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_transitive = 1;
      {PROTOBUF_FIELD_OFFSET(OpaqueExtended, _impl_.is_transitive_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bytes value = 3;
      {PROTOBUF_FIELD_OFFSET(OpaqueExtended, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr OpaqueExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        is_transitive_{false} {}

template <typename>
constexpr OpaqueExtended::OpaqueExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL OpaqueExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) OpaqueExtended(arena);
}
constexpr auto OpaqueExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(OpaqueExtended), alignof(OpaqueExtended));
}
constexpr auto OpaqueExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &OpaqueExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<OpaqueExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &OpaqueExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<OpaqueExtended>(), &OpaqueExtended::ByteSizeLong,
              &OpaqueExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(OpaqueExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[56],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct OpaqueExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr OpaqueExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 OpaqueExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(OpaqueExtended::InternalGenerateClassData_(
            _default, &OpaqueExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<OpaqueExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~OpaqueExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) OpaqueExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<OpaqueExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(OpaqueExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr NextHopAttribute::ParseTableT_ NextHopAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NextHopAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::NextHopAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string next_hop = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(NextHopAttribute, _impl_.next_hop_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string next_hop = 1;
      {PROTOBUF_FIELD_OFFSET(NextHopAttribute, _impl_.next_hop_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\26\10\0\0\0\0\0\0"
      "apipb.NextHopAttribute"
      "next_hop"
    }},
  };
}


inline constexpr NextHopAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        next_hop_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr NextHopAttribute::NextHopAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL NextHopAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NextHopAttribute(arena);
}
constexpr auto NextHopAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NextHopAttribute), alignof(NextHopAttribute));
}
constexpr auto NextHopAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &NextHopAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NextHopAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NextHopAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NextHopAttribute>(), &NextHopAttribute::ByteSizeLong,
              &NextHopAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NextHopAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[3],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NextHopAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NextHopAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NextHopAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NextHopAttribute::InternalGenerateClassData_(
            _default, &NextHopAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NextHopAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NextHopAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NextHopAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NextHopAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NextHopAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MultiExitDiscAttribute::ParseTableT_ MultiExitDiscAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MultiExitDiscAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MultiExitDiscAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 med = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MultiExitDiscAttribute, _impl_.med_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(MultiExitDiscAttribute, _impl_.med_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 med = 1;
      {PROTOBUF_FIELD_OFFSET(MultiExitDiscAttribute, _impl_.med_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr MultiExitDiscAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        med_{0u} {}

template <typename>
constexpr MultiExitDiscAttribute::MultiExitDiscAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MultiExitDiscAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MultiExitDiscAttribute(arena);
}
constexpr auto MultiExitDiscAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(MultiExitDiscAttribute), alignof(MultiExitDiscAttribute));
}
constexpr auto MultiExitDiscAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MultiExitDiscAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MultiExitDiscAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MultiExitDiscAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MultiExitDiscAttribute>(), &MultiExitDiscAttribute::ByteSizeLong,
              &MultiExitDiscAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MultiExitDiscAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[4],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MultiExitDiscAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MultiExitDiscAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MultiExitDiscAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MultiExitDiscAttribute::InternalGenerateClassData_(
            _default, &MultiExitDiscAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MultiExitDiscAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MultiExitDiscAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MultiExitDiscAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MultiExitDiscAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MultiExitDiscAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MacMobilityExtended::ParseTableT_ MacMobilityExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MacMobilityExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 sequence_num = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MacMobilityExtended, _impl_.sequence_num_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_.sequence_num_)}},
      // bool is_sticky = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MacMobilityExtended, _impl_.is_sticky_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_.is_sticky_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_sticky = 1;
      {PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_.is_sticky_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 sequence_num = 2;
      {PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_.sequence_num_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr MacMobilityExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        is_sticky_{false},
        sequence_num_{0u} {}

template <typename>
constexpr MacMobilityExtended::MacMobilityExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MacMobilityExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MacMobilityExtended(arena);
}
constexpr auto MacMobilityExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(MacMobilityExtended), alignof(MacMobilityExtended));
}
constexpr auto MacMobilityExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MacMobilityExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MacMobilityExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MacMobilityExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MacMobilityExtended>(), &MacMobilityExtended::ByteSizeLong,
              &MacMobilityExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[59],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MacMobilityExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MacMobilityExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MacMobilityExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MacMobilityExtended::InternalGenerateClassData_(
            _default, &MacMobilityExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MacMobilityExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MacMobilityExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MacMobilityExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MacMobilityExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MacMobilityExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MUPExtended::ParseTableT_ MUPExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MUPExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 sub_type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPExtended, _impl_.sub_type_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.sub_type_)}},
      // uint32 segment_id2 = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPExtended, _impl_.segment_id2_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.segment_id2_)}},
      // uint32 segment_id4 = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPExtended, _impl_.segment_id4_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.segment_id4_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 sub_type = 1;
      {PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.sub_type_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 segment_id2 = 2;
      {PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.segment_id2_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 segment_id4 = 3;
      {PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.segment_id4_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr MUPExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sub_type_{0u},
        segment_id2_{0u},
        segment_id4_{0u} {}

template <typename>
constexpr MUPExtended::MUPExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MUPExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MUPExtended(arena);
}
constexpr auto MUPExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(MUPExtended), alignof(MUPExtended));
}
constexpr auto MUPExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MUPExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MUPExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MUPExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MUPExtended>(), &MUPExtended::ByteSizeLong,
              &MUPExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[67],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MUPExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MUPExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MUPExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MUPExtended::InternalGenerateClassData_(
            _default, &MUPExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MUPExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MUPExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MUPExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MUPExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MUPExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsSrRange::ParseTableT_ LsSrRange::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsSrRange>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 end = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsSrRange, _impl_.end_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_.end_)}},
      // uint32 begin = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsSrRange, _impl_.begin_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_.begin_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 begin = 1;
      {PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_.begin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 end = 2;
      {PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_.end_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LsSrRange::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        begin_{0u},
        end_{0u} {}

template <typename>
constexpr LsSrRange::LsSrRange(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsSrRange::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsSrRange(arena);
}
constexpr auto LsSrRange::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsSrRange), alignof(LsSrRange));
}
constexpr auto LsSrRange::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsSrRange::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsSrRange>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsSrRange::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsSrRange>(), &LsSrRange::ByteSizeLong,
              &LsSrRange::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[104],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsSrRangeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsSrRangeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsSrRange_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsSrRange::InternalGenerateClassData_(
            _default, &LsSrRange_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsSrRange>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsSrRangeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsSrRange _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsSrRange>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsSrRangeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsPrefixDescriptor::ParseTableT_ LsPrefixDescriptor::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsPrefixDescriptor, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsPrefixDescriptor>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.LsOspfRouteType ospf_route_type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsPrefixDescriptor, _impl_.ospf_route_type_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsPrefixDescriptor, _impl_.ospf_route_type_)}},
      // repeated string ip_reachability = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsPrefixDescriptor, _impl_.ip_reachability_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string ip_reachability = 1;
      {PROTOBUF_FIELD_OFFSET(LsPrefixDescriptor, _impl_.ip_reachability_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // .apipb.LsOspfRouteType ospf_route_type = 2;
      {PROTOBUF_FIELD_OFFSET(LsPrefixDescriptor, _impl_.ospf_route_type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    // no aux_entries
    {{
      "\30\17\0\0\0\0\0\0"
      "apipb.LsPrefixDescriptor"
      "ip_reachability"
    }},
  };
}


inline constexpr LsPrefixDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ip_reachability_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsPrefixDescriptor,
            PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixDescriptor, _impl_.ip_reachability_)>()
         }
        ,
        ospf_route_type_{static_cast< ::apipb::LsOspfRouteType >(0)} {}

template <typename>
constexpr LsPrefixDescriptor::LsPrefixDescriptor(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsPrefixDescriptor::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsPrefixDescriptor(arena);
}
constexpr auto LsPrefixDescriptor::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsPrefixDescriptor), alignof(LsPrefixDescriptor));
}
constexpr auto LsPrefixDescriptor::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsPrefixDescriptor::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsPrefixDescriptor>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsPrefixDescriptor::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsPrefixDescriptor>(), &LsPrefixDescriptor::ByteSizeLong,
              &LsPrefixDescriptor::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsPrefixDescriptor, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[36],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsPrefixDescriptorGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsPrefixDescriptorGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsPrefixDescriptor_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsPrefixDescriptor::InternalGenerateClassData_(
            _default, &LsPrefixDescriptor_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsPrefixDescriptor>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsPrefixDescriptorGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsPrefixDescriptor _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsPrefixDescriptor>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsPrefixDescriptorGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsNodeFlags::ParseTableT_ LsNodeFlags::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsNodeFlags>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool overload = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeFlags, _impl_.overload_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.overload_)}},
      // bool attached = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeFlags, _impl_.attached_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.attached_)}},
      // bool external = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeFlags, _impl_.external_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.external_)}},
      // bool abr = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeFlags, _impl_.abr_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.abr_)}},
      // bool router = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeFlags, _impl_.router_), 4>(),
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.router_)}},
      // bool v6 = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeFlags, _impl_.v6_), 5>(),
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.v6_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // bool overload = 1;
      {PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.overload_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool attached = 2;
      {PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.attached_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool external = 3;
      {PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.external_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool abr = 4;
      {PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.abr_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool router = 5;
      {PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.router_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool v6 = 6;
      {PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.v6_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LsNodeFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        overload_{false},
        attached_{false},
        external_{false},
        abr_{false},
        router_{false},
        v6_{false} {}

template <typename>
constexpr LsNodeFlags::LsNodeFlags(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsNodeFlags::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsNodeFlags(arena);
}
constexpr auto LsNodeFlags::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsNodeFlags), alignof(LsNodeFlags));
}
constexpr auto LsNodeFlags::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsNodeFlags::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsNodeFlags>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsNodeFlags::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsNodeFlags>(), &LsNodeFlags::ByteSizeLong,
              &LsNodeFlags::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[102],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsNodeFlagsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsNodeFlagsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsNodeFlags_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsNodeFlags::InternalGenerateClassData_(
            _default, &LsNodeFlags_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsNodeFlags>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsNodeFlagsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsNodeFlags _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsNodeFlags>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsNodeFlagsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsNodeDescriptor::ParseTableT_ LsNodeDescriptor::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsNodeDescriptor>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsNodeDescriptor, _impl_.asn_), 2>(),
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.asn_)}},
      // uint32 bgp_ls_id = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsNodeDescriptor, _impl_.bgp_ls_id_), 3>(),
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_ls_id_)}},
      // uint32 ospf_area_id = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsNodeDescriptor, _impl_.ospf_area_id_), 4>(),
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.ospf_area_id_)}},
      // bool pseudonode = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsNodeDescriptor, _impl_.pseudonode_), 5>(),
       {32, 5, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.pseudonode_)}},
      // string igp_router_id = 5;
      {::_pbi::TcParser::FastUS1,
       {42, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.igp_router_id_)}},
      // string bgp_router_id = 6;
      {::_pbi::TcParser::FastUS1,
       {50, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_router_id_)}},
      // uint32 bgp_confederation_member = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsNodeDescriptor, _impl_.bgp_confederation_member_), 6>(),
       {56, 6, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_confederation_member_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.asn_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 bgp_ls_id = 2;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_ls_id_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 ospf_area_id = 3;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.ospf_area_id_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bool pseudonode = 4;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.pseudonode_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // string igp_router_id = 5;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.igp_router_id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string bgp_router_id = 6;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_router_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 bgp_confederation_member = 7;
      {PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_confederation_member_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\26\0\0\0\0\15\15\0"
      "apipb.LsNodeDescriptor"
      "igp_router_id"
      "bgp_router_id"
    }},
  };
}


inline constexpr LsNodeDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        igp_router_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        bgp_router_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        asn_{0u},
        bgp_ls_id_{0u},
        ospf_area_id_{0u},
        pseudonode_{false},
        bgp_confederation_member_{0u} {}

template <typename>
constexpr LsNodeDescriptor::LsNodeDescriptor(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsNodeDescriptor::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsNodeDescriptor(arena);
}
constexpr auto LsNodeDescriptor::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsNodeDescriptor), alignof(LsNodeDescriptor));
}
constexpr auto LsNodeDescriptor::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsNodeDescriptor::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsNodeDescriptor>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsNodeDescriptor::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsNodeDescriptor>(), &LsNodeDescriptor::ByteSizeLong,
              &LsNodeDescriptor::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[34],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsNodeDescriptorGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsNodeDescriptorGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsNodeDescriptor_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsNodeDescriptor::InternalGenerateClassData_(
            _default, &LsNodeDescriptor_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsNodeDescriptor>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsNodeDescriptorGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsNodeDescriptor _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsNodeDescriptor>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsNodeDescriptorGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsLinkDescriptor::ParseTableT_ LsLinkDescriptor::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsLinkDescriptor>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 link_local_id = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsLinkDescriptor, _impl_.link_local_id_), 4>(),
       {8, 4, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.link_local_id_)}},
      // uint32 link_remote_id = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsLinkDescriptor, _impl_.link_remote_id_), 5>(),
       {16, 5, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.link_remote_id_)}},
      // string interface_addr_ipv4 = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.interface_addr_ipv4_)}},
      // string neighbor_addr_ipv4 = 4;
      {::_pbi::TcParser::FastUS1,
       {34, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.neighbor_addr_ipv4_)}},
      // string interface_addr_ipv6 = 5;
      {::_pbi::TcParser::FastUS1,
       {42, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.interface_addr_ipv6_)}},
      // string neighbor_addr_ipv6 = 6;
      {::_pbi::TcParser::FastUS1,
       {50, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.neighbor_addr_ipv6_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 link_local_id = 1;
      {PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.link_local_id_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 link_remote_id = 2;
      {PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.link_remote_id_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string interface_addr_ipv4 = 3;
      {PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.interface_addr_ipv4_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string neighbor_addr_ipv4 = 4;
      {PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.neighbor_addr_ipv4_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string interface_addr_ipv6 = 5;
      {PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.interface_addr_ipv6_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string neighbor_addr_ipv6 = 6;
      {PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.neighbor_addr_ipv6_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\26\0\0\23\22\23\22\0"
      "apipb.LsLinkDescriptor"
      "interface_addr_ipv4"
      "neighbor_addr_ipv4"
      "interface_addr_ipv6"
      "neighbor_addr_ipv6"
    }},
  };
}


inline constexpr LsLinkDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        interface_addr_ipv4_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        neighbor_addr_ipv4_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        interface_addr_ipv6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        neighbor_addr_ipv6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        link_local_id_{0u},
        link_remote_id_{0u} {}

template <typename>
constexpr LsLinkDescriptor::LsLinkDescriptor(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsLinkDescriptor::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsLinkDescriptor(arena);
}
constexpr auto LsLinkDescriptor::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsLinkDescriptor), alignof(LsLinkDescriptor));
}
constexpr auto LsLinkDescriptor::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsLinkDescriptor::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsLinkDescriptor>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsLinkDescriptor::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsLinkDescriptor>(), &LsLinkDescriptor::ByteSizeLong,
              &LsLinkDescriptor::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[35],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsLinkDescriptorGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsLinkDescriptorGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsLinkDescriptor_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsLinkDescriptor::InternalGenerateClassData_(
            _default, &LsLinkDescriptor_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsLinkDescriptor>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsLinkDescriptorGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsLinkDescriptor _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsLinkDescriptor>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsLinkDescriptorGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsIGPFlags::ParseTableT_ LsIGPFlags::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsIGPFlags>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool propagate_nssa = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsIGPFlags, _impl_.propagate_nssa_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.propagate_nssa_)}},
      // bool down = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsIGPFlags, _impl_.down_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.down_)}},
      // bool no_unicast = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsIGPFlags, _impl_.no_unicast_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.no_unicast_)}},
      // bool local_address = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsIGPFlags, _impl_.local_address_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.local_address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool down = 1;
      {PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.down_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool no_unicast = 2;
      {PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.no_unicast_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool local_address = 3;
      {PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.local_address_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool propagate_nssa = 4;
      {PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.propagate_nssa_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LsIGPFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        down_{false},
        no_unicast_{false},
        local_address_{false},
        propagate_nssa_{false} {}

template <typename>
constexpr LsIGPFlags::LsIGPFlags(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsIGPFlags::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsIGPFlags(arena);
}
constexpr auto LsIGPFlags::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsIGPFlags), alignof(LsIGPFlags));
}
constexpr auto LsIGPFlags::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsIGPFlags::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsIGPFlags>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsIGPFlags::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsIGPFlags>(), &LsIGPFlags::ByteSizeLong,
              &LsIGPFlags::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[103],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsIGPFlagsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsIGPFlagsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsIGPFlags_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsIGPFlags::InternalGenerateClassData_(
            _default, &LsIGPFlags_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsIGPFlags>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsIGPFlagsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsIGPFlags _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsIGPFlags>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsIGPFlagsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsBgpPeerSegmentSIDFlags::ParseTableT_ LsBgpPeerSegmentSIDFlags::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsBgpPeerSegmentSIDFlags>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bool persistent = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsBgpPeerSegmentSIDFlags, _impl_.persistent_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.persistent_)}},
      // bool value = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsBgpPeerSegmentSIDFlags, _impl_.value_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.value_)}},
      // bool local = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsBgpPeerSegmentSIDFlags, _impl_.local_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.local_)}},
      // bool backup = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsBgpPeerSegmentSIDFlags, _impl_.backup_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.backup_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool value = 1;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool local = 2;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.local_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool backup = 3;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.backup_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool persistent = 4;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.persistent_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LsBgpPeerSegmentSIDFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_{false},
        local_{false},
        backup_{false},
        persistent_{false} {}

template <typename>
constexpr LsBgpPeerSegmentSIDFlags::LsBgpPeerSegmentSIDFlags(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsBgpPeerSegmentSIDFlags::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsBgpPeerSegmentSIDFlags(arena);
}
constexpr auto LsBgpPeerSegmentSIDFlags::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsBgpPeerSegmentSIDFlags), alignof(LsBgpPeerSegmentSIDFlags));
}
constexpr auto LsBgpPeerSegmentSIDFlags::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsBgpPeerSegmentSIDFlags::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsBgpPeerSegmentSIDFlags>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsBgpPeerSegmentSIDFlags::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsBgpPeerSegmentSIDFlags>(), &LsBgpPeerSegmentSIDFlags::ByteSizeLong,
              &LsBgpPeerSegmentSIDFlags::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[110],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsBgpPeerSegmentSIDFlagsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsBgpPeerSegmentSIDFlagsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsBgpPeerSegmentSIDFlags_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsBgpPeerSegmentSIDFlags::InternalGenerateClassData_(
            _default, &LsBgpPeerSegmentSIDFlags_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsBgpPeerSegmentSIDFlags>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsBgpPeerSegmentSIDFlagsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsBgpPeerSegmentSIDFlags _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsBgpPeerSegmentSIDFlags>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlagsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsAttributeLink::ParseTableT_ LsAttributeLink::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_._has_bits_),
      0, // no _extensions_
      14, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294950912,  // skipmap
      offsetof(ParseTableT_, field_entries),
      14,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsAttributeLink>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // string name = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.name_)}},
      // string local_router_id = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.local_router_id_)}},
      // string local_router_id_v6 = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 4, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.local_router_id_v6_)}},
      // string remote_router_id = 4;
      {::_pbi::TcParser::FastUS1,
       {34, 5, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.remote_router_id_)}},
      // string remote_router_id_v6 = 5;
      {::_pbi::TcParser::FastUS1,
       {42, 6, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.remote_router_id_v6_)}},
      // uint32 admin_group = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAttributeLink, _impl_.admin_group_), 8>(),
       {48, 8, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.admin_group_)}},
      // uint32 default_te_metric = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAttributeLink, _impl_.default_te_metric_), 9>(),
       {56, 9, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.default_te_metric_)}},
      // uint32 igp_metric = 8;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAttributeLink, _impl_.igp_metric_), 10>(),
       {64, 10, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.igp_metric_)}},
      // bytes opaque = 9;
      {::_pbi::TcParser::FastBS1,
       {74, 7, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.opaque_)}},
      // float bandwidth = 10;
      {::_pbi::TcParser::FastF32S1,
       {85, 11, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.bandwidth_)}},
      // float reservable_bandwidth = 11;
      {::_pbi::TcParser::FastF32S1,
       {93, 12, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.reservable_bandwidth_)}},
      // repeated float unreserved_bandwidth = 12;
      {::_pbi::TcParser::FastF32P1,
       {98, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.unreserved_bandwidth_)}},
      // uint32 sr_adjacency_sid = 13;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAttributeLink, _impl_.sr_adjacency_sid_), 13>(),
       {104, 13, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.sr_adjacency_sid_)}},
      // repeated uint32 srlgs = 14;
      {::_pbi::TcParser::FastV32P1,
       {114, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.srlgs_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // string name = 1;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.name_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string local_router_id = 2;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.local_router_id_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string local_router_id_v6 = 3;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.local_router_id_v6_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string remote_router_id = 4;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.remote_router_id_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string remote_router_id_v6 = 5;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.remote_router_id_v6_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 admin_group = 6;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.admin_group_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 default_te_metric = 7;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.default_te_metric_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 igp_metric = 8;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.igp_metric_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes opaque = 9;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.opaque_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // float bandwidth = 10;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.bandwidth_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // float reservable_bandwidth = 11;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.reservable_bandwidth_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // repeated float unreserved_bandwidth = 12;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.unreserved_bandwidth_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedFloat)},
      // uint32 sr_adjacency_sid = 13;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.sr_adjacency_sid_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated uint32 srlgs = 14;
      {PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.srlgs_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt32)},
    }},
    // no aux_entries
    {{
      "\25\4\17\22\20\23\0\0\0\0\0\0\0\0\0\0"
      "apipb.LsAttributeLink"
      "name"
      "local_router_id"
      "local_router_id_v6"
      "remote_router_id"
      "remote_router_id_v6"
    }},
  };
}


inline constexpr LsAttributeLink::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        unreserved_bandwidth_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsAttributeLink,
            PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.unreserved_bandwidth_)>()
         }
        ,
        srlgs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsAttributeLink,
            PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.srlgs_)>()
         }
        ,
        _srlgs_cached_byte_size_{0},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        local_router_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        local_router_id_v6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        remote_router_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        remote_router_id_v6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        opaque_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        admin_group_{0u},
        default_te_metric_{0u},
        igp_metric_{0u},
        bandwidth_{0},
        reservable_bandwidth_{0},
        sr_adjacency_sid_{0u} {}

template <typename>
constexpr LsAttributeLink::LsAttributeLink(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsAttributeLink::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsAttributeLink(arena);
}
constexpr auto LsAttributeLink::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsAttributeLink), alignof(LsAttributeLink));
}
constexpr auto LsAttributeLink::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsAttributeLink::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsAttributeLink>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsAttributeLink::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsAttributeLink>(), &LsAttributeLink::ByteSizeLong,
              &LsAttributeLink::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[108],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsAttributeLinkGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsAttributeLinkGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsAttributeLink_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsAttributeLink::InternalGenerateClassData_(
            _default, &LsAttributeLink_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsAttributeLink>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsAttributeLinkGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsAttributeLink _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsAttributeLink>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsAttributeLinkGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LocalPrefAttribute::ParseTableT_ LocalPrefAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LocalPrefAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LocalPrefAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_pref = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LocalPrefAttribute, _impl_.local_pref_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LocalPrefAttribute, _impl_.local_pref_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 local_pref = 1;
      {PROTOBUF_FIELD_OFFSET(LocalPrefAttribute, _impl_.local_pref_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LocalPrefAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        local_pref_{0u} {}

template <typename>
constexpr LocalPrefAttribute::LocalPrefAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LocalPrefAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LocalPrefAttribute(arena);
}
constexpr auto LocalPrefAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LocalPrefAttribute), alignof(LocalPrefAttribute));
}
constexpr auto LocalPrefAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LocalPrefAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LocalPrefAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LocalPrefAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LocalPrefAttribute>(), &LocalPrefAttribute::ByteSizeLong,
              &LocalPrefAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LocalPrefAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[5],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LocalPrefAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LocalPrefAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LocalPrefAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LocalPrefAttribute::InternalGenerateClassData_(
            _default, &LocalPrefAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LocalPrefAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LocalPrefAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LocalPrefAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LocalPrefAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LocalPrefAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LinkBandwidthExtended::ParseTableT_ LinkBandwidthExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LinkBandwidthExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // float bandwidth = 2;
      {::_pbi::TcParser::FastF32S1,
       {21, 1, 0,
        PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_.bandwidth_)}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LinkBandwidthExtended, _impl_.asn_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_.asn_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // float bandwidth = 2;
      {PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_.bandwidth_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LinkBandwidthExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        asn_{0u},
        bandwidth_{0} {}

template <typename>
constexpr LinkBandwidthExtended::LinkBandwidthExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LinkBandwidthExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LinkBandwidthExtended(arena);
}
constexpr auto LinkBandwidthExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LinkBandwidthExtended), alignof(LinkBandwidthExtended));
}
constexpr auto LinkBandwidthExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LinkBandwidthExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LinkBandwidthExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LinkBandwidthExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LinkBandwidthExtended>(), &LinkBandwidthExtended::ByteSizeLong,
              &LinkBandwidthExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[51],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LinkBandwidthExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LinkBandwidthExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LinkBandwidthExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LinkBandwidthExtended::InternalGenerateClassData_(
            _default, &LinkBandwidthExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LinkBandwidthExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LinkBandwidthExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LinkBandwidthExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LinkBandwidthExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LinkBandwidthExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LargeCommunity::ParseTableT_ LargeCommunity::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LargeCommunity>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // uint32 global_admin = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LargeCommunity, _impl_.global_admin_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.global_admin_)}},
      // uint32 local_data1 = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LargeCommunity, _impl_.local_data1_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.local_data1_)}},
      // uint32 local_data2 = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LargeCommunity, _impl_.local_data2_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.local_data2_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 global_admin = 1;
      {PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.global_admin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 local_data1 = 2;
      {PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.local_data1_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 local_data2 = 3;
      {PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.local_data2_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr LargeCommunity::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        global_admin_{0u},
        local_data1_{0u},
        local_data2_{0u} {}

template <typename>
constexpr LargeCommunity::LargeCommunity(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LargeCommunity::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LargeCommunity(arena);
}
constexpr auto LargeCommunity::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LargeCommunity), alignof(LargeCommunity));
}
constexpr auto LargeCommunity::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LargeCommunity::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LargeCommunity>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LargeCommunity::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LargeCommunity>(), &LargeCommunity::ByteSizeLong,
              &LargeCommunity::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[100],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LargeCommunityGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LargeCommunityGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LargeCommunity_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LargeCommunity::InternalGenerateClassData_(
            _default, &LargeCommunity_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LargeCommunity>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LargeCommunityGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LargeCommunity _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LargeCommunity>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LargeCommunityGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LabeledIPAddressPrefix::ParseTableT_ LabeledIPAddressPrefix::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LabeledIPAddressPrefix>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated uint32 labels = 1;
      {::_pbi::TcParser::FastV32P1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_.labels_)}},
      // uint32 prefix_len = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LabeledIPAddressPrefix, _impl_.prefix_len_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_.prefix_len_)}},
      // string prefix = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_.prefix_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated uint32 labels = 1;
      {PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_.labels_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt32)},
      // uint32 prefix_len = 2;
      {PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_.prefix_len_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string prefix = 3;
      {PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_.prefix_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\34\0\0\6\0\0\0\0"
      "apipb.LabeledIPAddressPrefix"
      "prefix"
    }},
  };
}


inline constexpr LabeledIPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        labels_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LabeledIPAddressPrefix,
            PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_.labels_)>()
         }
        ,
        _labels_cached_byte_size_{0},
        prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        prefix_len_{0u} {}

template <typename>
constexpr LabeledIPAddressPrefix::LabeledIPAddressPrefix(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LabeledIPAddressPrefix::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LabeledIPAddressPrefix(arena);
}
constexpr auto LabeledIPAddressPrefix::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LabeledIPAddressPrefix), alignof(LabeledIPAddressPrefix));
}
constexpr auto LabeledIPAddressPrefix::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LabeledIPAddressPrefix::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LabeledIPAddressPrefix>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LabeledIPAddressPrefix::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LabeledIPAddressPrefix>(), &LabeledIPAddressPrefix::ByteSizeLong,
              &LabeledIPAddressPrefix::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefix, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[12],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LabeledIPAddressPrefixGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LabeledIPAddressPrefixGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LabeledIPAddressPrefix_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LabeledIPAddressPrefix::InternalGenerateClassData_(
            _default, &LabeledIPAddressPrefix_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LabeledIPAddressPrefix>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LabeledIPAddressPrefixGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LabeledIPAddressPrefix _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LabeledIPAddressPrefix>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LabeledIPAddressPrefixGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr IPv6AddressSpecificExtended::ParseTableT_ IPv6AddressSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::IPv6AddressSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(IPv6AddressSpecificExtended, _impl_.local_admin_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.local_admin_)}},
      // bool is_transitive = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(IPv6AddressSpecificExtended, _impl_.is_transitive_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.is_transitive_)}},
      // uint32 sub_type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(IPv6AddressSpecificExtended, _impl_.sub_type_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.sub_type_)}},
      // string address = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_transitive = 1;
      {PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.is_transitive_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 sub_type = 2;
      {PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.sub_type_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string address = 3;
      {PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 local_admin = 4;
      {PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\41\0\0\7\0\0\0\0"
      "apipb.IPv6AddressSpecificExtended"
      "address"
    }},
  };
}


inline constexpr IPv6AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        is_transitive_{false},
        sub_type_{0u},
        local_admin_{0u} {}

template <typename>
constexpr IPv6AddressSpecificExtended::IPv6AddressSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL IPv6AddressSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) IPv6AddressSpecificExtended(arena);
}
constexpr auto IPv6AddressSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(IPv6AddressSpecificExtended), alignof(IPv6AddressSpecificExtended));
}
constexpr auto IPv6AddressSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &IPv6AddressSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<IPv6AddressSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &IPv6AddressSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<IPv6AddressSpecificExtended>(), &IPv6AddressSpecificExtended::ByteSizeLong,
              &IPv6AddressSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[94],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct IPv6AddressSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr IPv6AddressSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 IPv6AddressSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(IPv6AddressSpecificExtended::InternalGenerateClassData_(
            _default, &IPv6AddressSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<IPv6AddressSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~IPv6AddressSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) IPv6AddressSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<IPv6AddressSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr IPv4AddressSpecificExtended::ParseTableT_ IPv4AddressSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::IPv4AddressSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(IPv4AddressSpecificExtended, _impl_.local_admin_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.local_admin_)}},
      // bool is_transitive = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(IPv4AddressSpecificExtended, _impl_.is_transitive_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.is_transitive_)}},
      // uint32 sub_type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(IPv4AddressSpecificExtended, _impl_.sub_type_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.sub_type_)}},
      // string address = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_transitive = 1;
      {PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.is_transitive_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 sub_type = 2;
      {PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.sub_type_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string address = 3;
      {PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 local_admin = 4;
      {PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\41\0\0\7\0\0\0\0"
      "apipb.IPv4AddressSpecificExtended"
      "address"
    }},
  };
}


inline constexpr IPv4AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        is_transitive_{false},
        sub_type_{0u},
        local_admin_{0u} {}

template <typename>
constexpr IPv4AddressSpecificExtended::IPv4AddressSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL IPv4AddressSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) IPv4AddressSpecificExtended(arena);
}
constexpr auto IPv4AddressSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(IPv4AddressSpecificExtended), alignof(IPv4AddressSpecificExtended));
}
constexpr auto IPv4AddressSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &IPv4AddressSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<IPv4AddressSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &IPv4AddressSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<IPv4AddressSpecificExtended>(), &IPv4AddressSpecificExtended::ByteSizeLong,
              &IPv4AddressSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[49],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct IPv4AddressSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr IPv4AddressSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 IPv4AddressSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(IPv4AddressSpecificExtended::InternalGenerateClassData_(
            _default, &IPv4AddressSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<IPv4AddressSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~IPv4AddressSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) IPv4AddressSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<IPv4AddressSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr IPAddressPrefix::ParseTableT_ IPAddressPrefix::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(IPAddressPrefix, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::IPAddressPrefix>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string prefix = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(IPAddressPrefix, _impl_.prefix_)}},
      // uint32 prefix_len = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(IPAddressPrefix, _impl_.prefix_len_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(IPAddressPrefix, _impl_.prefix_len_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 prefix_len = 1;
      {PROTOBUF_FIELD_OFFSET(IPAddressPrefix, _impl_.prefix_len_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string prefix = 2;
      {PROTOBUF_FIELD_OFFSET(IPAddressPrefix, _impl_.prefix_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\25\0\6\0\0\0\0\0"
      "apipb.IPAddressPrefix"
      "prefix"
    }},
  };
}


inline constexpr IPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        prefix_len_{0u} {}

template <typename>
constexpr IPAddressPrefix::IPAddressPrefix(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL IPAddressPrefix::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) IPAddressPrefix(arena);
}
constexpr auto IPAddressPrefix::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(IPAddressPrefix), alignof(IPAddressPrefix));
}
constexpr auto IPAddressPrefix::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &IPAddressPrefix::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<IPAddressPrefix>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &IPAddressPrefix::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<IPAddressPrefix>(), &IPAddressPrefix::ByteSizeLong,
              &IPAddressPrefix::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(IPAddressPrefix, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[11],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct IPAddressPrefixGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr IPAddressPrefixGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 IPAddressPrefix_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(IPAddressPrefix::InternalGenerateClassData_(
            _default, &IPAddressPrefix_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<IPAddressPrefix>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~IPAddressPrefixGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) IPAddressPrefix _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<IPAddressPrefix>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(IPAddressPrefixGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FourOctetAsSpecificExtended::ParseTableT_ FourOctetAsSpecificExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::FourOctetAsSpecificExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 local_admin = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FourOctetAsSpecificExtended, _impl_.local_admin_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.local_admin_)}},
      // bool is_transitive = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(FourOctetAsSpecificExtended, _impl_.is_transitive_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.is_transitive_)}},
      // uint32 sub_type = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FourOctetAsSpecificExtended, _impl_.sub_type_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.sub_type_)}},
      // uint32 asn = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FourOctetAsSpecificExtended, _impl_.asn_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_transitive = 1;
      {PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.is_transitive_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 sub_type = 2;
      {PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.sub_type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 asn = 3;
      {PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.asn_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 local_admin = 4;
      {PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.local_admin_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr FourOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        is_transitive_{false},
        sub_type_{0u},
        asn_{0u},
        local_admin_{0u} {}

template <typename>
constexpr FourOctetAsSpecificExtended::FourOctetAsSpecificExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FourOctetAsSpecificExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FourOctetAsSpecificExtended(arena);
}
constexpr auto FourOctetAsSpecificExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FourOctetAsSpecificExtended), alignof(FourOctetAsSpecificExtended));
}
constexpr auto FourOctetAsSpecificExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FourOctetAsSpecificExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FourOctetAsSpecificExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FourOctetAsSpecificExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FourOctetAsSpecificExtended>(), &FourOctetAsSpecificExtended::ByteSizeLong,
              &FourOctetAsSpecificExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[50],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FourOctetAsSpecificExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FourOctetAsSpecificExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FourOctetAsSpecificExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FourOctetAsSpecificExtended::InternalGenerateClassData_(
            _default, &FourOctetAsSpecificExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FourOctetAsSpecificExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FourOctetAsSpecificExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FourOctetAsSpecificExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FourOctetAsSpecificExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FlowSpecMAC::ParseTableT_ FlowSpecMAC::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FlowSpecMAC, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::FlowSpecMAC>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string address = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecMAC, _impl_.address_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlowSpecMAC, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecMAC, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(FlowSpecMAC, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string address = 2;
      {PROTOBUF_FIELD_OFFSET(FlowSpecMAC, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\21\0\7\0\0\0\0\0"
      "apipb.FlowSpecMAC"
      "address"
    }},
  };
}


inline constexpr FlowSpecMAC::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u} {}

template <typename>
constexpr FlowSpecMAC::FlowSpecMAC(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FlowSpecMAC::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FlowSpecMAC(arena);
}
constexpr auto FlowSpecMAC::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FlowSpecMAC), alignof(FlowSpecMAC));
}
constexpr auto FlowSpecMAC::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FlowSpecMAC::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FlowSpecMAC>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FlowSpecMAC::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FlowSpecMAC>(), &FlowSpecMAC::ByteSizeLong,
              &FlowSpecMAC::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FlowSpecMAC, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[28],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FlowSpecMACGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FlowSpecMACGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FlowSpecMAC_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FlowSpecMAC::InternalGenerateClassData_(
            _default, &FlowSpecMAC_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecMAC>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FlowSpecMACGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FlowSpecMAC _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecMAC>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FlowSpecMACGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FlowSpecIPPrefix::ParseTableT_ FlowSpecIPPrefix::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::FlowSpecIPPrefix>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 offset = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlowSpecIPPrefix, _impl_.offset_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.offset_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlowSpecIPPrefix, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.type_)}},
      // uint32 prefix_len = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlowSpecIPPrefix, _impl_.prefix_len_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.prefix_len_)}},
      // string prefix = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.prefix_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 prefix_len = 2;
      {PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.prefix_len_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string prefix = 3;
      {PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.prefix_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 offset = 4;
      {PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.offset_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
      "\26\0\0\6\0\0\0\0"
      "apipb.FlowSpecIPPrefix"
      "prefix"
    }},
  };
}


inline constexpr FlowSpecIPPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u},
        prefix_len_{0u},
        offset_{0u} {}

template <typename>
constexpr FlowSpecIPPrefix::FlowSpecIPPrefix(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FlowSpecIPPrefix::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FlowSpecIPPrefix(arena);
}
constexpr auto FlowSpecIPPrefix::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FlowSpecIPPrefix), alignof(FlowSpecIPPrefix));
}
constexpr auto FlowSpecIPPrefix::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FlowSpecIPPrefix::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FlowSpecIPPrefix>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FlowSpecIPPrefix::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FlowSpecIPPrefix>(), &FlowSpecIPPrefix::ByteSizeLong,
              &FlowSpecIPPrefix::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[27],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FlowSpecIPPrefixGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FlowSpecIPPrefixGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FlowSpecIPPrefix_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FlowSpecIPPrefix::InternalGenerateClassData_(
            _default, &FlowSpecIPPrefix_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecIPPrefix>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FlowSpecIPPrefixGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FlowSpecIPPrefix _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecIPPrefix>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefixGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FlowSpecComponentItem::ParseTableT_ FlowSpecComponentItem::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::FlowSpecComponentItem>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint64 value = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(FlowSpecComponentItem, _impl_.value_), 0>(),
       {16, 0, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_.value_)}},
      // uint32 op = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlowSpecComponentItem, _impl_.op_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_.op_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 op = 1;
      {PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_.op_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint64 value = 2;
      {PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr FlowSpecComponentItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_{::uint64_t{0u}},
        op_{0u} {}

template <typename>
constexpr FlowSpecComponentItem::FlowSpecComponentItem(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FlowSpecComponentItem::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FlowSpecComponentItem(arena);
}
constexpr auto FlowSpecComponentItem::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FlowSpecComponentItem), alignof(FlowSpecComponentItem));
}
constexpr auto FlowSpecComponentItem::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FlowSpecComponentItem::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FlowSpecComponentItem>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FlowSpecComponentItem::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FlowSpecComponentItem>(), &FlowSpecComponentItem::ByteSizeLong,
              &FlowSpecComponentItem::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[29],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FlowSpecComponentItemGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FlowSpecComponentItemGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FlowSpecComponentItem_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FlowSpecComponentItem::InternalGenerateClassData_(
            _default, &FlowSpecComponentItem_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecComponentItem>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FlowSpecComponentItemGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FlowSpecComponentItem _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecComponentItem>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FlowSpecComponentItemGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EthernetSegmentIdentifier::ParseTableT_ EthernetSegmentIdentifier::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifier, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EthernetSegmentIdentifier>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes value = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifier, _impl_.value_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EthernetSegmentIdentifier, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifier, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifier, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes value = 2;
      {PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifier, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr EthernetSegmentIdentifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u} {}

template <typename>
constexpr EthernetSegmentIdentifier::EthernetSegmentIdentifier(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EthernetSegmentIdentifier::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EthernetSegmentIdentifier(arena);
}
constexpr auto EthernetSegmentIdentifier::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EthernetSegmentIdentifier), alignof(EthernetSegmentIdentifier));
}
constexpr auto EthernetSegmentIdentifier::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EthernetSegmentIdentifier::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EthernetSegmentIdentifier>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EthernetSegmentIdentifier::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EthernetSegmentIdentifier>(), &EthernetSegmentIdentifier::ByteSizeLong,
              &EthernetSegmentIdentifier::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifier, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[17],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EthernetSegmentIdentifierGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EthernetSegmentIdentifierGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EthernetSegmentIdentifier_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EthernetSegmentIdentifier::InternalGenerateClassData_(
            _default, &EthernetSegmentIdentifier_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EthernetSegmentIdentifier>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EthernetSegmentIdentifierGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EthernetSegmentIdentifier _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EthernetSegmentIdentifier>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EthernetSegmentIdentifierGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EncapsulationNLRI::ParseTableT_ EncapsulationNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EncapsulationNLRI, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EncapsulationNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string address = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(EncapsulationNLRI, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string address = 1;
      {PROTOBUF_FIELD_OFFSET(EncapsulationNLRI, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\27\7\0\0\0\0\0\0"
      "apipb.EncapsulationNLRI"
      "address"
    }},
  };
}


inline constexpr EncapsulationNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr EncapsulationNLRI::EncapsulationNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EncapsulationNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EncapsulationNLRI(arena);
}
constexpr auto EncapsulationNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EncapsulationNLRI), alignof(EncapsulationNLRI));
}
constexpr auto EncapsulationNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EncapsulationNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EncapsulationNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EncapsulationNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EncapsulationNLRI>(), &EncapsulationNLRI::ByteSizeLong,
              &EncapsulationNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EncapsulationNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[13],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EncapsulationNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EncapsulationNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EncapsulationNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EncapsulationNLRI::InternalGenerateClassData_(
            _default, &EncapsulationNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EncapsulationNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EncapsulationNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EncapsulationNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EncapsulationNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EncapsulationNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EncapExtended::ParseTableT_ EncapExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EncapExtended, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EncapExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 tunnel_type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EncapExtended, _impl_.tunnel_type_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(EncapExtended, _impl_.tunnel_type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 tunnel_type = 1;
      {PROTOBUF_FIELD_OFFSET(EncapExtended, _impl_.tunnel_type_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr EncapExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tunnel_type_{0u} {}

template <typename>
constexpr EncapExtended::EncapExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EncapExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EncapExtended(arena);
}
constexpr auto EncapExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(EncapExtended), alignof(EncapExtended));
}
constexpr auto EncapExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EncapExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EncapExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EncapExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EncapExtended>(), &EncapExtended::ByteSizeLong,
              &EncapExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EncapExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[54],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EncapExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EncapExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EncapExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EncapExtended::InternalGenerateClassData_(
            _default, &EncapExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EncapExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EncapExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EncapExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EncapExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EncapExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ESImportRouteTarget::ParseTableT_ ESImportRouteTarget::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ESImportRouteTarget, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::ESImportRouteTarget>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string es_import = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ESImportRouteTarget, _impl_.es_import_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string es_import = 1;
      {PROTOBUF_FIELD_OFFSET(ESImportRouteTarget, _impl_.es_import_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\31\11\0\0\0\0\0\0"
      "apipb.ESImportRouteTarget"
      "es_import"
    }},
  };
}


inline constexpr ESImportRouteTarget::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        es_import_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ESImportRouteTarget::ESImportRouteTarget(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ESImportRouteTarget::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ESImportRouteTarget(arena);
}
constexpr auto ESImportRouteTarget::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ESImportRouteTarget), alignof(ESImportRouteTarget));
}
constexpr auto ESImportRouteTarget::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ESImportRouteTarget::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ESImportRouteTarget>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ESImportRouteTarget::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ESImportRouteTarget>(), &ESImportRouteTarget::ByteSizeLong,
              &ESImportRouteTarget::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ESImportRouteTarget, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[58],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ESImportRouteTargetGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ESImportRouteTargetGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ESImportRouteTarget_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ESImportRouteTarget::InternalGenerateClassData_(
            _default, &ESImportRouteTarget_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ESImportRouteTarget>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ESImportRouteTargetGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ESImportRouteTarget _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ESImportRouteTarget>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ESImportRouteTargetGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ESILabelExtended::ParseTableT_ ESILabelExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::ESILabelExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 label = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ESILabelExtended, _impl_.label_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_.label_)}},
      // bool is_single_active = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ESILabelExtended, _impl_.is_single_active_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_.is_single_active_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool is_single_active = 1;
      {PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_.is_single_active_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // uint32 label = 2;
      {PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_.label_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ESILabelExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        is_single_active_{false},
        label_{0u} {}

template <typename>
constexpr ESILabelExtended::ESILabelExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ESILabelExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ESILabelExtended(arena);
}
constexpr auto ESILabelExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ESILabelExtended), alignof(ESILabelExtended));
}
constexpr auto ESILabelExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ESILabelExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ESILabelExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ESILabelExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ESILabelExtended>(), &ESILabelExtended::ByteSizeLong,
              &ESILabelExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[57],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ESILabelExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ESILabelExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ESILabelExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ESILabelExtended::InternalGenerateClassData_(
            _default, &ESILabelExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ESILabelExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ESILabelExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ESILabelExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ESILabelExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ESILabelExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ESILabelExtendedGlobalsTypeInternal ESILabelExtended_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ESILabelExtended_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ESILabelExtended_globals_.GetClassData();
#else
  return ESILabelExtended_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class DefaultGatewayExtended::_Internal {
 public:
};

constexpr DefaultGatewayExtended::ParseTableT_ DefaultGatewayExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(DefaultGatewayExtended,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::DefaultGatewayExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr DefaultGatewayExtended::DefaultGatewayExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL DefaultGatewayExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DefaultGatewayExtended(arena);
}
constexpr auto DefaultGatewayExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(DefaultGatewayExtended), alignof(DefaultGatewayExtended));
}
constexpr auto DefaultGatewayExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &DefaultGatewayExtended::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<DefaultGatewayExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DefaultGatewayExtended::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<DefaultGatewayExtended>(), &DefaultGatewayExtended::ByteSizeLong,
              &DefaultGatewayExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DefaultGatewayExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[55],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct DefaultGatewayExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr DefaultGatewayExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 DefaultGatewayExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(DefaultGatewayExtended::InternalGenerateClassData_(
            _default, &DefaultGatewayExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<DefaultGatewayExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~DefaultGatewayExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) DefaultGatewayExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<DefaultGatewayExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(DefaultGatewayExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr CommunitiesAttribute::ParseTableT_ CommunitiesAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(CommunitiesAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::CommunitiesAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated uint32 communities = 1;
      {::_pbi::TcParser::FastV32P1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(CommunitiesAttribute, _impl_.communities_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated uint32 communities = 1;
      {PROTOBUF_FIELD_OFFSET(CommunitiesAttribute, _impl_.communities_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr CommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::CommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::CommunitiesAttribute, _impl_.communities_)>()
         }
        ,
        _communities_cached_byte_size_{0} {}

template <typename>
constexpr CommunitiesAttribute::CommunitiesAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL CommunitiesAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) CommunitiesAttribute(arena);
}
constexpr auto CommunitiesAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(CommunitiesAttribute), alignof(CommunitiesAttribute));
}
constexpr auto CommunitiesAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &CommunitiesAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<CommunitiesAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &CommunitiesAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<CommunitiesAttribute>(), &CommunitiesAttribute::ByteSizeLong,
              &CommunitiesAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(CommunitiesAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[8],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct CommunitiesAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr CommunitiesAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 CommunitiesAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(CommunitiesAttribute::InternalGenerateClassData_(
            _default, &CommunitiesAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<CommunitiesAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~CommunitiesAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) CommunitiesAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<CommunitiesAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(CommunitiesAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ColorExtended::ParseTableT_ ColorExtended::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ColorExtended, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::ColorExtended>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 color = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ColorExtended, _impl_.color_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(ColorExtended, _impl_.color_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 color = 1;
      {PROTOBUF_FIELD_OFFSET(ColorExtended, _impl_.color_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ColorExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        color_{0u} {}

template <typename>
constexpr ColorExtended::ColorExtended(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ColorExtended::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ColorExtended(arena);
}
constexpr auto ColorExtended::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ColorExtended), alignof(ColorExtended));
}
constexpr auto ColorExtended::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ColorExtended::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ColorExtended>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ColorExtended::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ColorExtended>(), &ColorExtended::ByteSizeLong,
              &ColorExtended::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ColorExtended, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[53],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ColorExtendedGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ColorExtendedGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ColorExtended_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ColorExtended::InternalGenerateClassData_(
            _default, &ColorExtended_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ColorExtended>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ColorExtendedGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ColorExtended _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ColorExtended>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ColorExtendedGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ClusterListAttribute::ParseTableT_ ClusterListAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ClusterListAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::ClusterListAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated string ids = 1;
      {::_pbi::TcParser::FastUR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ClusterListAttribute, _impl_.ids_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated string ids = 1;
      {PROTOBUF_FIELD_OFFSET(ClusterListAttribute, _impl_.ids_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
      "\32\3\0\0\0\0\0\0"
      "apipb.ClusterListAttribute"
      "ids"
    }},
  };
}


inline constexpr ClusterListAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ids_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::ClusterListAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::ClusterListAttribute, _impl_.ids_)>()
         }
     {}

template <typename>
constexpr ClusterListAttribute::ClusterListAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ClusterListAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ClusterListAttribute(arena);
}
constexpr auto ClusterListAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ClusterListAttribute), alignof(ClusterListAttribute));
}
constexpr auto ClusterListAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ClusterListAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ClusterListAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ClusterListAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ClusterListAttribute>(), &ClusterListAttribute::ByteSizeLong,
              &ClusterListAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ClusterListAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[10],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ClusterListAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ClusterListAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ClusterListAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ClusterListAttribute::InternalGenerateClassData_(
            _default, &ClusterListAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ClusterListAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ClusterListAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ClusterListAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ClusterListAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ClusterListAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ClusterListAttributeGlobalsTypeInternal ClusterListAttribute_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ClusterListAttribute_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ClusterListAttribute_globals_.GetClassData();
#else
  return ClusterListAttribute_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class AtomicAggregateAttribute::_Internal {
 public:
};

constexpr AtomicAggregateAttribute::ParseTableT_ AtomicAggregateAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AtomicAggregateAttribute,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      0, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967295,  // skipmap
      offsetof(ParseTableT_, field_names),  // no field_entries
      0,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::AtomicAggregateAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, // no field_entries, or aux_entries
    {{
    }},
  };
}

template <typename>
constexpr AtomicAggregateAttribute::AtomicAggregateAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::internal::ZeroFieldsBase(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL AtomicAggregateAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AtomicAggregateAttribute(arena);
}
constexpr auto AtomicAggregateAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(AtomicAggregateAttribute), alignof(AtomicAggregateAttribute));
}
constexpr auto AtomicAggregateAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AtomicAggregateAttribute::MergeImpl,
          ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<AtomicAggregateAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AtomicAggregateAttribute::SharedDtor,
          ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<AtomicAggregateAttribute>(), &AtomicAggregateAttribute::ByteSizeLong,
              &AtomicAggregateAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AtomicAggregateAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[6],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AtomicAggregateAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AtomicAggregateAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AtomicAggregateAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AtomicAggregateAttribute::InternalGenerateClassData_(
            _default, &AtomicAggregateAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AtomicAggregateAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AtomicAggregateAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AtomicAggregateAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AtomicAggregateAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AtomicAggregateAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AsSegment::ParseTableT_ AsSegment::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AsSegment, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::AsSegment>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated uint32 numbers = 2;
      {::_pbi::TcParser::FastV32P1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(AsSegment, _impl_.numbers_)}},
      // .apipb.AsSegment.Type type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AsSegment, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(AsSegment, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.AsSegment.Type type = 1;
      {PROTOBUF_FIELD_OFFSET(AsSegment, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // repeated uint32 numbers = 2;
      {PROTOBUF_FIELD_OFFSET(AsSegment, _impl_.numbers_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr AsSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        numbers_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::AsSegment,
            PROTOBUF_FIELD_OFFSET(::apipb::AsSegment, _impl_.numbers_)>()
         }
        ,
        _numbers_cached_byte_size_{0},
        type_{static_cast< ::apipb::AsSegment_Type >(0)} {}

template <typename>
constexpr AsSegment::AsSegment(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL AsSegment::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AsSegment(arena);
}
constexpr auto AsSegment::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AsSegment), alignof(AsSegment));
}
constexpr auto AsSegment::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AsSegment::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AsSegment>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AsSegment::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AsSegment>(), &AsSegment::ByteSizeLong,
              &AsSegment::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AsSegment, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AsSegmentGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AsSegmentGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AsSegment_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AsSegment::InternalGenerateClassData_(
            _default, &AsSegment_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AsSegment>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AsSegmentGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AsSegment _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AsSegment>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AsSegmentGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr As4AggregatorAttribute::ParseTableT_ As4AggregatorAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(As4AggregatorAttribute, _impl_._has_bits_),
      0, // no _extensions_
      3, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967289,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::As4AggregatorAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 asn = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(As4AggregatorAttribute, _impl_.asn_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(As4AggregatorAttribute, _impl_.asn_)}},
      // string address = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(As4AggregatorAttribute, _impl_.address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 2;
      {PROTOBUF_FIELD_OFFSET(As4AggregatorAttribute, _impl_.asn_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string address = 3;
      {PROTOBUF_FIELD_OFFSET(As4AggregatorAttribute, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\34\0\7\0\0\0\0\0"
      "apipb.As4AggregatorAttribute"
      "address"
    }},
  };
}


inline constexpr As4AggregatorAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        asn_{0u} {}

template <typename>
constexpr As4AggregatorAttribute::As4AggregatorAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL As4AggregatorAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) As4AggregatorAttribute(arena);
}
constexpr auto As4AggregatorAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(As4AggregatorAttribute), alignof(As4AggregatorAttribute));
}
constexpr auto As4AggregatorAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &As4AggregatorAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<As4AggregatorAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &As4AggregatorAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<As4AggregatorAttribute>(), &As4AggregatorAttribute::ByteSizeLong,
              &As4AggregatorAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(As4AggregatorAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[71],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct As4AggregatorAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr As4AggregatorAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 As4AggregatorAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(As4AggregatorAttribute::InternalGenerateClassData_(
            _default, &As4AggregatorAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<As4AggregatorAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~As4AggregatorAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) As4AggregatorAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<As4AggregatorAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(As4AggregatorAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AigpTLVUnknown::ParseTableT_ AigpTLVUnknown::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AigpTLVUnknown, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::AigpTLVUnknown>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes value = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(AigpTLVUnknown, _impl_.value_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AigpTLVUnknown, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(AigpTLVUnknown, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(AigpTLVUnknown, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // bytes value = 2;
      {PROTOBUF_FIELD_OFFSET(AigpTLVUnknown, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr AigpTLVUnknown::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        value_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u} {}

template <typename>
constexpr AigpTLVUnknown::AigpTLVUnknown(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL AigpTLVUnknown::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AigpTLVUnknown(arena);
}
constexpr auto AigpTLVUnknown::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AigpTLVUnknown), alignof(AigpTLVUnknown));
}
constexpr auto AigpTLVUnknown::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AigpTLVUnknown::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AigpTLVUnknown>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AigpTLVUnknown::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AigpTLVUnknown>(), &AigpTLVUnknown::ByteSizeLong,
              &AigpTLVUnknown::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AigpTLVUnknown, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[98],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AigpTLVUnknownGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AigpTLVUnknownGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AigpTLVUnknown_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AigpTLVUnknown::InternalGenerateClassData_(
            _default, &AigpTLVUnknown_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AigpTLVUnknown>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AigpTLVUnknownGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AigpTLVUnknown _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AigpTLVUnknown>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AigpTLVUnknownGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AigpTLVIGPMetric::ParseTableT_ AigpTLVIGPMetric::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AigpTLVIGPMetric, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::AigpTLVIGPMetric>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint64 metric = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(AigpTLVIGPMetric, _impl_.metric_), 0>(),
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(AigpTLVIGPMetric, _impl_.metric_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint64 metric = 1;
      {PROTOBUF_FIELD_OFFSET(AigpTLVIGPMetric, _impl_.metric_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr AigpTLVIGPMetric::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        metric_{::uint64_t{0u}} {}

template <typename>
constexpr AigpTLVIGPMetric::AigpTLVIGPMetric(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL AigpTLVIGPMetric::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AigpTLVIGPMetric(arena);
}
constexpr auto AigpTLVIGPMetric::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(AigpTLVIGPMetric), alignof(AigpTLVIGPMetric));
}
constexpr auto AigpTLVIGPMetric::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AigpTLVIGPMetric::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AigpTLVIGPMetric>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AigpTLVIGPMetric::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AigpTLVIGPMetric>(), &AigpTLVIGPMetric::ByteSizeLong,
              &AigpTLVIGPMetric::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AigpTLVIGPMetric, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[97],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AigpTLVIGPMetricGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AigpTLVIGPMetricGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AigpTLVIGPMetric_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AigpTLVIGPMetric::InternalGenerateClassData_(
            _default, &AigpTLVIGPMetric_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AigpTLVIGPMetric>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AigpTLVIGPMetricGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AigpTLVIGPMetric _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AigpTLVIGPMetric>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AigpTLVIGPMetricGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AggregatorAttribute::ParseTableT_ AggregatorAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AggregatorAttribute, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::AggregatorAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string address = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(AggregatorAttribute, _impl_.address_)}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AggregatorAttribute, _impl_.asn_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(AggregatorAttribute, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(AggregatorAttribute, _impl_.asn_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string address = 2;
      {PROTOBUF_FIELD_OFFSET(AggregatorAttribute, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
      "\31\0\7\0\0\0\0\0"
      "apipb.AggregatorAttribute"
      "address"
    }},
  };
}


inline constexpr AggregatorAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        asn_{0u} {}

template <typename>
constexpr AggregatorAttribute::AggregatorAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL AggregatorAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AggregatorAttribute(arena);
}
constexpr auto AggregatorAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AggregatorAttribute), alignof(AggregatorAttribute));
}
constexpr auto AggregatorAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AggregatorAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AggregatorAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AggregatorAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AggregatorAttribute>(), &AggregatorAttribute::ByteSizeLong,
              &AggregatorAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AggregatorAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[7],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AggregatorAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AggregatorAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AggregatorAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AggregatorAttribute::InternalGenerateClassData_(
            _default, &AggregatorAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AggregatorAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AggregatorAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AggregatorAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AggregatorAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AggregatorAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr VPNFlowSpecNLRI::ParseTableT_ VPNFlowSpecNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRI, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::VPNFlowSpecNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any rules = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRI, _impl_.rules_)}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRI, _impl_.rd_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRI, _impl_.rd_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .google.protobuf.Any rules = 2;
      {PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRI, _impl_.rules_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr VPNFlowSpecNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        rules_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::VPNFlowSpecNLRI,
            PROTOBUF_FIELD_OFFSET(::apipb::VPNFlowSpecNLRI, _impl_.rules_)>()
         }
        ,
        rd_{nullptr} {}

template <typename>
constexpr VPNFlowSpecNLRI::VPNFlowSpecNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL VPNFlowSpecNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) VPNFlowSpecNLRI(arena);
}
constexpr auto VPNFlowSpecNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(VPNFlowSpecNLRI), alignof(VPNFlowSpecNLRI));
}
constexpr auto VPNFlowSpecNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &VPNFlowSpecNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<VPNFlowSpecNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &VPNFlowSpecNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<VPNFlowSpecNLRI>(), &VPNFlowSpecNLRI::ByteSizeLong,
              &VPNFlowSpecNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[32],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct VPNFlowSpecNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr VPNFlowSpecNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 VPNFlowSpecNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(VPNFlowSpecNLRI::InternalGenerateClassData_(
            _default, &VPNFlowSpecNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<VPNFlowSpecNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~VPNFlowSpecNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) VPNFlowSpecNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<VPNFlowSpecNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(VPNFlowSpecNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapTLV::ParseTableT_ TunnelEncapTLV::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapTLV, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapTLV>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any tlvs = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapTLV, _impl_.tlvs_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TunnelEncapTLV, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapTLV, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapTLV, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated .google.protobuf.Any tlvs = 2;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapTLV, _impl_.tlvs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr TunnelEncapTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::TunnelEncapTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapTLV, _impl_.tlvs_)>()
         }
        ,
        type_{0u} {}

template <typename>
constexpr TunnelEncapTLV::TunnelEncapTLV(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapTLV::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapTLV(arena);
}
constexpr auto TunnelEncapTLV::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapTLV), alignof(TunnelEncapTLV));
}
constexpr auto TunnelEncapTLV::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapTLV::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapTLV>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapTLV::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapTLV>(), &TunnelEncapTLV::ByteSizeLong,
              &TunnelEncapTLV::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapTLV, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[92],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapTLVGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapTLVGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapTLV_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapTLV::InternalGenerateClassData_(
            _default, &TunnelEncapTLV_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapTLV>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapTLVGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapTLV _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapTLV>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapTLVGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVSRSegmentList::ParseTableT_ TunnelEncapSubTLVSRSegmentList::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentList, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVSRSegmentList>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any segments = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentList, _impl_.segments_)}},
      // .apipb.SRWeight weight = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentList, _impl_.weight_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.SRWeight weight = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentList, _impl_.weight_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .google.protobuf.Any segments = 2;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentList, _impl_.segments_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRWeight>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRWeight_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVSRSegmentList::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        segments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::TunnelEncapSubTLVSRSegmentList,
            PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRSegmentList, _impl_.segments_)>()
         }
        ,
        weight_{nullptr} {}

template <typename>
constexpr TunnelEncapSubTLVSRSegmentList::TunnelEncapSubTLVSRSegmentList(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVSRSegmentList::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVSRSegmentList(arena);
}
constexpr auto TunnelEncapSubTLVSRSegmentList::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapSubTLVSRSegmentList), alignof(TunnelEncapSubTLVSRSegmentList));
}
constexpr auto TunnelEncapSubTLVSRSegmentList::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVSRSegmentList::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVSRSegmentList>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVSRSegmentList::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVSRSegmentList>(), &TunnelEncapSubTLVSRSegmentList::ByteSizeLong,
              &TunnelEncapSubTLVSRSegmentList::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentList, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[88],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVSRSegmentListGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVSRSegmentListGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVSRSegmentList_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVSRSegmentList::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVSRSegmentList_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRSegmentList>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVSRSegmentListGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVSRSegmentList _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRSegmentList>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRSegmentListGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr TunnelEncapSubTLVSRBindingSID::ParseTableT_ TunnelEncapSubTLVSRBindingSID::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRBindingSID, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::TunnelEncapSubTLVSRBindingSID>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .google.protobuf.Any bsid = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRBindingSID, _impl_.bsid_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any bsid = 1;
      {PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRBindingSID, _impl_.bsid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr TunnelEncapSubTLVSRBindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bsid_{nullptr} {}

template <typename>
constexpr TunnelEncapSubTLVSRBindingSID::TunnelEncapSubTLVSRBindingSID(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapSubTLVSRBindingSID::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapSubTLVSRBindingSID(arena);
}
constexpr auto TunnelEncapSubTLVSRBindingSID::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TunnelEncapSubTLVSRBindingSID), alignof(TunnelEncapSubTLVSRBindingSID));
}
constexpr auto TunnelEncapSubTLVSRBindingSID::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapSubTLVSRBindingSID::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapSubTLVSRBindingSID>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapSubTLVSRBindingSID::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapSubTLVSRBindingSID>(), &TunnelEncapSubTLVSRBindingSID::ByteSizeLong,
              &TunnelEncapSubTLVSRBindingSID::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRBindingSID, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[79],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapSubTLVSRBindingSIDGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapSubTLVSRBindingSIDGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapSubTLVSRBindingSID_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapSubTLVSRBindingSID::InternalGenerateClassData_(
            _default, &TunnelEncapSubTLVSRBindingSID_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRBindingSID>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapSubTLVSRBindingSIDGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapSubTLVSRBindingSID _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapSubTLVSRBindingSID>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRBindingSIDGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SegmentTypeB::ParseTableT_ SegmentTypeB::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SegmentTypeB>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.SegmentFlags flags = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.flags_)}},
      // bytes sid = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.sid_)}},
      // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 1,
        PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.endpoint_behavior_structure_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.SegmentFlags flags = 1;
      {PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.flags_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bytes sid = 2;
      {PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.sid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 3;
      {PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.endpoint_behavior_structure_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SegmentFlags>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SegmentFlags_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6EndPointBehavior>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6EndPointBehavior_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SegmentTypeB::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sid_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        flags_{nullptr},
        endpoint_behavior_structure_{nullptr} {}

template <typename>
constexpr SegmentTypeB::SegmentTypeB(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SegmentTypeB::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SegmentTypeB(arena);
}
constexpr auto SegmentTypeB::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SegmentTypeB), alignof(SegmentTypeB));
}
constexpr auto SegmentTypeB::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SegmentTypeB::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SegmentTypeB>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SegmentTypeB::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SegmentTypeB>(), &SegmentTypeB::ByteSizeLong,
              &SegmentTypeB::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[87],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SegmentTypeBGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SegmentTypeBGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SegmentTypeB_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SegmentTypeB::InternalGenerateClassData_(
            _default, &SegmentTypeB_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SegmentTypeB>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SegmentTypeBGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SegmentTypeB _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SegmentTypeB>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SegmentTypeBGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SegmentTypeA::ParseTableT_ SegmentTypeA::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SegmentTypeA>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 label = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SegmentTypeA, _impl_.label_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_.label_)}},
      // .apipb.SegmentFlags flags = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_.flags_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.SegmentFlags flags = 1;
      {PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_.flags_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 label = 2;
      {PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_.label_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SegmentFlags>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SegmentFlags_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SegmentTypeA::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        flags_{nullptr},
        label_{0u} {}

template <typename>
constexpr SegmentTypeA::SegmentTypeA(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SegmentTypeA::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SegmentTypeA(arena);
}
constexpr auto SegmentTypeA::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SegmentTypeA), alignof(SegmentTypeA));
}
constexpr auto SegmentTypeA::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SegmentTypeA::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SegmentTypeA>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SegmentTypeA::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SegmentTypeA>(), &SegmentTypeA::ByteSizeLong,
              &SegmentTypeA::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[86],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SegmentTypeAGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SegmentTypeAGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SegmentTypeA_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SegmentTypeA::InternalGenerateClassData_(
            _default, &SegmentTypeA_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SegmentTypeA>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SegmentTypeAGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SegmentTypeA _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SegmentTypeA>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SegmentTypeAGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6TLV::ParseTableT_ SRv6TLV::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6TLV, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6TLV>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any tlv = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6TLV, _impl_.tlv_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .google.protobuf.Any tlv = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6TLV, _impl_.tlv_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SRv6TLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tlv_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6TLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6TLV, _impl_.tlv_)>()
         }
     {}

template <typename>
constexpr SRv6TLV::SRv6TLV(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6TLV::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6TLV(arena);
}
constexpr auto SRv6TLV::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRv6TLV), alignof(SRv6TLV));
}
constexpr auto SRv6TLV::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6TLV::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6TLV>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6TLV::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6TLV>(), &SRv6TLV::ByteSizeLong,
              &SRv6TLV::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6TLV, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[117],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6TLVGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6TLVGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6TLV_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6TLV::InternalGenerateClassData_(
            _default, &SRv6TLV_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6TLV>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6TLVGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6TLV _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6TLV>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6TLVGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6BindingSID::ParseTableT_ SRv6BindingSID::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_._has_bits_),
      0, // no _extensions_
      5, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6BindingSID>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool s_flag = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SRv6BindingSID, _impl_.s_flag_), 2>(),
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.s_flag_)}},
      // bool i_flag = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SRv6BindingSID, _impl_.i_flag_), 3>(),
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.i_flag_)}},
      // bool b_flag = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(SRv6BindingSID, _impl_.b_flag_), 4>(),
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.b_flag_)}},
      // bytes sid = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.sid_)}},
      // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.endpoint_behavior_structure_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // bool s_flag = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.s_flag_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool i_flag = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.i_flag_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool b_flag = 3;
      {PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.b_flag_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bytes sid = 4;
      {PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.sid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 5;
      {PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.endpoint_behavior_structure_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6EndPointBehavior>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6EndPointBehavior_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SRv6BindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sid_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        endpoint_behavior_structure_{nullptr},
        s_flag_{false},
        i_flag_{false},
        b_flag_{false} {}

template <typename>
constexpr SRv6BindingSID::SRv6BindingSID(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6BindingSID::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6BindingSID(arena);
}
constexpr auto SRv6BindingSID::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRv6BindingSID), alignof(SRv6BindingSID));
}
constexpr auto SRv6BindingSID::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6BindingSID::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6BindingSID>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6BindingSID::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6BindingSID>(), &SRv6BindingSID::ByteSizeLong,
              &SRv6BindingSID::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[82],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6BindingSIDGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6BindingSIDGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6BindingSID_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6BindingSID::InternalGenerateClassData_(
            _default, &SRv6BindingSID_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6BindingSID>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6BindingSIDGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6BindingSID _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6BindingSID>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6BindingSIDGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr RouteTargetMembershipNLRI::ParseTableT_ RouteTargetMembershipNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::RouteTargetMembershipNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .google.protobuf.Any rt = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_.rt_)}},
      // uint32 asn = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RouteTargetMembershipNLRI, _impl_.asn_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_.asn_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 asn = 1;
      {PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_.asn_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .google.protobuf.Any rt = 2;
      {PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_.rt_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RouteTargetMembershipNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        rt_{nullptr},
        asn_{0u} {}

template <typename>
constexpr RouteTargetMembershipNLRI::RouteTargetMembershipNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RouteTargetMembershipNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RouteTargetMembershipNLRI(arena);
}
constexpr auto RouteTargetMembershipNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RouteTargetMembershipNLRI), alignof(RouteTargetMembershipNLRI));
}
constexpr auto RouteTargetMembershipNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RouteTargetMembershipNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RouteTargetMembershipNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RouteTargetMembershipNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RouteTargetMembershipNLRI>(), &RouteTargetMembershipNLRI::ByteSizeLong,
              &RouteTargetMembershipNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[26],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct RouteTargetMembershipNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RouteTargetMembershipNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RouteTargetMembershipNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RouteTargetMembershipNLRI::InternalGenerateClassData_(
            _default, &RouteTargetMembershipNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RouteTargetMembershipNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RouteTargetMembershipNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RouteTargetMembershipNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RouteTargetMembershipNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PrefixSID::ParseTableT_ PrefixSID::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PrefixSID, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::PrefixSID>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any tlvs = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(PrefixSID, _impl_.tlvs_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .google.protobuf.Any tlvs = 1;
      {PROTOBUF_FIELD_OFFSET(PrefixSID, _impl_.tlvs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PrefixSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::PrefixSID,
            PROTOBUF_FIELD_OFFSET(::apipb::PrefixSID, _impl_.tlvs_)>()
         }
     {}

template <typename>
constexpr PrefixSID::PrefixSID(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PrefixSID::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PrefixSID(arena);
}
constexpr auto PrefixSID::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PrefixSID), alignof(PrefixSID));
}
constexpr auto PrefixSID::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &PrefixSID::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PrefixSID>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PrefixSID::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PrefixSID>(), &PrefixSID::ByteSizeLong,
              &PrefixSID::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PrefixSID, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[124],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct PrefixSIDGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PrefixSIDGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PrefixSID_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PrefixSID::InternalGenerateClassData_(
            _default, &PrefixSID_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PrefixSID>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PrefixSIDGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PrefixSID _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PrefixSID>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PrefixSIDGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MpUnreachNLRIAttribute::ParseTableT_ MpUnreachNLRIAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttribute, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967290,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MpUnreachNLRIAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.Family family = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttribute, _impl_.family_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .google.protobuf.Any nlris = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 1,
        PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttribute, _impl_.nlris_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.Family family = 1;
      {PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttribute, _impl_.family_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .google.protobuf.Any nlris = 3;
      {PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttribute, _impl_.nlris_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::Family>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::Family_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr MpUnreachNLRIAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        nlris_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::MpUnreachNLRIAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::MpUnreachNLRIAttribute, _impl_.nlris_)>()
         }
        ,
        family_{nullptr} {}

template <typename>
constexpr MpUnreachNLRIAttribute::MpUnreachNLRIAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MpUnreachNLRIAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MpUnreachNLRIAttribute(arena);
}
constexpr auto MpUnreachNLRIAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MpUnreachNLRIAttribute), alignof(MpUnreachNLRIAttribute));
}
constexpr auto MpUnreachNLRIAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MpUnreachNLRIAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MpUnreachNLRIAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MpUnreachNLRIAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MpUnreachNLRIAttribute>(), &MpUnreachNLRIAttribute::ByteSizeLong,
              &MpUnreachNLRIAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[47],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MpUnreachNLRIAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MpUnreachNLRIAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MpUnreachNLRIAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MpUnreachNLRIAttribute::InternalGenerateClassData_(
            _default, &MpUnreachNLRIAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MpUnreachNLRIAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MpUnreachNLRIAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MpUnreachNLRIAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MpUnreachNLRIAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MpUnreachNLRIAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MpReachNLRIAttribute::ParseTableT_ MpReachNLRIAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MpReachNLRIAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.Family family = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_.family_)}},
      // repeated string next_hops = 2;
      {::_pbi::TcParser::FastUR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_.next_hops_)}},
      // repeated .google.protobuf.Any nlris = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_.nlris_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.Family family = 1;
      {PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_.family_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated string next_hops = 2;
      {PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_.next_hops_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUtf8String | ::_fl::kRepSString)},
      // repeated .google.protobuf.Any nlris = 3;
      {PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_.nlris_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::Family>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::Family_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\32\0\11\0\0\0\0\0"
      "apipb.MpReachNLRIAttribute"
      "next_hops"
    }},
  };
}


inline constexpr MpReachNLRIAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        next_hops_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::MpReachNLRIAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.next_hops_)>()
         }
        ,
        nlris_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::MpReachNLRIAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.nlris_)>()
         }
        ,
        family_{nullptr} {}

template <typename>
constexpr MpReachNLRIAttribute::MpReachNLRIAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MpReachNLRIAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MpReachNLRIAttribute(arena);
}
constexpr auto MpReachNLRIAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MpReachNLRIAttribute), alignof(MpReachNLRIAttribute));
}
constexpr auto MpReachNLRIAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MpReachNLRIAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MpReachNLRIAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MpReachNLRIAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MpReachNLRIAttribute>(), &MpReachNLRIAttribute::ByteSizeLong,
              &MpReachNLRIAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MpReachNLRIAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[46],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MpReachNLRIAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MpReachNLRIAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MpReachNLRIAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MpReachNLRIAttribute::InternalGenerateClassData_(
            _default, &MpReachNLRIAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MpReachNLRIAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MpReachNLRIAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MpReachNLRIAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MpReachNLRIAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MpReachNLRIAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MUPType2SessionTransformedRoute::ParseTableT_ MUPType2SessionTransformedRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MUPType2SessionTransformedRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 teid = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPType2SessionTransformedRoute, _impl_.teid_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.teid_)}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.rd_)}},
      // uint32 endpoint_address_length = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPType2SessionTransformedRoute, _impl_.endpoint_address_length_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.endpoint_address_length_)}},
      // string endpoint_address = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.endpoint_address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.rd_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 endpoint_address_length = 2;
      {PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.endpoint_address_length_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string endpoint_address = 3;
      {PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.endpoint_address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 teid = 4;
      {PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.teid_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\45\0\0\20\0\0\0\0"
      "apipb.MUPType2SessionTransformedRoute"
      "endpoint_address"
    }},
  };
}


inline constexpr MUPType2SessionTransformedRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        endpoint_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        endpoint_address_length_{0u},
        teid_{0u} {}

template <typename>
constexpr MUPType2SessionTransformedRoute::MUPType2SessionTransformedRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MUPType2SessionTransformedRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MUPType2SessionTransformedRoute(arena);
}
constexpr auto MUPType2SessionTransformedRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MUPType2SessionTransformedRoute), alignof(MUPType2SessionTransformedRoute));
}
constexpr auto MUPType2SessionTransformedRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MUPType2SessionTransformedRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MUPType2SessionTransformedRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MUPType2SessionTransformedRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MUPType2SessionTransformedRoute>(), &MUPType2SessionTransformedRoute::ByteSizeLong,
              &MUPType2SessionTransformedRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[45],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MUPType2SessionTransformedRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MUPType2SessionTransformedRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MUPType2SessionTransformedRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MUPType2SessionTransformedRoute::InternalGenerateClassData_(
            _default, &MUPType2SessionTransformedRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MUPType2SessionTransformedRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MUPType2SessionTransformedRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MUPType2SessionTransformedRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MUPType2SessionTransformedRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MUPType1SessionTransformedRoute::ParseTableT_ MUPType1SessionTransformedRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MUPType1SessionTransformedRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.rd_)}},
      // uint32 prefix_length = 2 [deprecated = true];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPType1SessionTransformedRoute, _impl_.prefix_length_), 3>(),
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.prefix_length_)}},
      // string prefix = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.prefix_)}},
      // uint32 teid = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPType1SessionTransformedRoute, _impl_.teid_), 4>(),
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.teid_)}},
      // uint32 qfi = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPType1SessionTransformedRoute, _impl_.qfi_), 5>(),
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.qfi_)}},
      // uint32 endpoint_address_length = 6;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MUPType1SessionTransformedRoute, _impl_.endpoint_address_length_), 6>(),
       {48, 6, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.endpoint_address_length_)}},
      // string endpoint_address = 7;
      {::_pbi::TcParser::FastUS1,
       {58, 1, 0,
        PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.endpoint_address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.rd_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 prefix_length = 2 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.prefix_length_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string prefix = 3;
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.prefix_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 teid = 4;
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.teid_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 qfi = 5;
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.qfi_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 endpoint_address_length = 6;
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.endpoint_address_length_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string endpoint_address = 7;
      {PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.endpoint_address_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\45\0\0\6\0\0\0\20"
      "apipb.MUPType1SessionTransformedRoute"
      "prefix"
      "endpoint_address"
    }},
  };
}


inline constexpr MUPType1SessionTransformedRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        endpoint_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        prefix_length_{0u},
        teid_{0u},
        qfi_{0u},
        endpoint_address_length_{0u} {}

template <typename>
constexpr MUPType1SessionTransformedRoute::MUPType1SessionTransformedRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MUPType1SessionTransformedRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MUPType1SessionTransformedRoute(arena);
}
constexpr auto MUPType1SessionTransformedRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MUPType1SessionTransformedRoute), alignof(MUPType1SessionTransformedRoute));
}
constexpr auto MUPType1SessionTransformedRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MUPType1SessionTransformedRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MUPType1SessionTransformedRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MUPType1SessionTransformedRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MUPType1SessionTransformedRoute>(), &MUPType1SessionTransformedRoute::ByteSizeLong,
              &MUPType1SessionTransformedRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[44],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MUPType1SessionTransformedRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MUPType1SessionTransformedRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MUPType1SessionTransformedRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MUPType1SessionTransformedRoute::InternalGenerateClassData_(
            _default, &MUPType1SessionTransformedRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MUPType1SessionTransformedRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MUPType1SessionTransformedRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MUPType1SessionTransformedRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MUPType1SessionTransformedRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MUPInterworkSegmentDiscoveryRoute::ParseTableT_ MUPInterworkSegmentDiscoveryRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRoute, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MUPInterworkSegmentDiscoveryRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string prefix = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRoute, _impl_.prefix_)}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRoute, _impl_.rd_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRoute, _impl_.rd_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string prefix = 2;
      {PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRoute, _impl_.prefix_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\47\0\6\0\0\0\0\0"
      "apipb.MUPInterworkSegmentDiscoveryRoute"
      "prefix"
    }},
  };
}


inline constexpr MUPInterworkSegmentDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr} {}

template <typename>
constexpr MUPInterworkSegmentDiscoveryRoute::MUPInterworkSegmentDiscoveryRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MUPInterworkSegmentDiscoveryRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MUPInterworkSegmentDiscoveryRoute(arena);
}
constexpr auto MUPInterworkSegmentDiscoveryRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MUPInterworkSegmentDiscoveryRoute), alignof(MUPInterworkSegmentDiscoveryRoute));
}
constexpr auto MUPInterworkSegmentDiscoveryRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MUPInterworkSegmentDiscoveryRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MUPInterworkSegmentDiscoveryRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MUPInterworkSegmentDiscoveryRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MUPInterworkSegmentDiscoveryRoute>(), &MUPInterworkSegmentDiscoveryRoute::ByteSizeLong,
              &MUPInterworkSegmentDiscoveryRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[42],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MUPInterworkSegmentDiscoveryRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MUPInterworkSegmentDiscoveryRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MUPInterworkSegmentDiscoveryRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MUPInterworkSegmentDiscoveryRoute::InternalGenerateClassData_(
            _default, &MUPInterworkSegmentDiscoveryRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MUPInterworkSegmentDiscoveryRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MUPInterworkSegmentDiscoveryRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MUPInterworkSegmentDiscoveryRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MUPInterworkSegmentDiscoveryRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MUPInterworkSegmentDiscoveryRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MUPDirectSegmentDiscoveryRoute::ParseTableT_ MUPDirectSegmentDiscoveryRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRoute, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::MUPDirectSegmentDiscoveryRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string address = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRoute, _impl_.address_)}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRoute, _impl_.rd_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRoute, _impl_.rd_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string address = 2;
      {PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRoute, _impl_.address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\44\0\7\0\0\0\0\0"
      "apipb.MUPDirectSegmentDiscoveryRoute"
      "address"
    }},
  };
}


inline constexpr MUPDirectSegmentDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr} {}

template <typename>
constexpr MUPDirectSegmentDiscoveryRoute::MUPDirectSegmentDiscoveryRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MUPDirectSegmentDiscoveryRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MUPDirectSegmentDiscoveryRoute(arena);
}
constexpr auto MUPDirectSegmentDiscoveryRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MUPDirectSegmentDiscoveryRoute), alignof(MUPDirectSegmentDiscoveryRoute));
}
constexpr auto MUPDirectSegmentDiscoveryRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MUPDirectSegmentDiscoveryRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MUPDirectSegmentDiscoveryRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MUPDirectSegmentDiscoveryRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MUPDirectSegmentDiscoveryRoute>(), &MUPDirectSegmentDiscoveryRoute::ByteSizeLong,
              &MUPDirectSegmentDiscoveryRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[43],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MUPDirectSegmentDiscoveryRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MUPDirectSegmentDiscoveryRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MUPDirectSegmentDiscoveryRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MUPDirectSegmentDiscoveryRoute::InternalGenerateClassData_(
            _default, &MUPDirectSegmentDiscoveryRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MUPDirectSegmentDiscoveryRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MUPDirectSegmentDiscoveryRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MUPDirectSegmentDiscoveryRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MUPDirectSegmentDiscoveryRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MUPDirectSegmentDiscoveryRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

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


inline constexpr LsSrLocalBlock::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ranges_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsSrLocalBlock,
            PROTOBUF_FIELD_OFFSET(::apipb::LsSrLocalBlock, _impl_.ranges_)>()
         }
     {}

template <typename>
constexpr LsSrLocalBlock::LsSrLocalBlock(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsSrLocalBlock::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsSrLocalBlock(arena);
}
constexpr auto LsSrLocalBlock::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsSrLocalBlock), alignof(LsSrLocalBlock));
}
constexpr auto LsSrLocalBlock::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsSrLocalBlock::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsSrLocalBlock>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsSrLocalBlock::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsSrLocalBlock>(), &LsSrLocalBlock::ByteSizeLong,
              &LsSrLocalBlock::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsSrLocalBlock, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[106],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsSrLocalBlockGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsSrLocalBlockGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsSrLocalBlock_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsSrLocalBlock::InternalGenerateClassData_(
            _default, &LsSrLocalBlock_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsSrLocalBlock>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsSrLocalBlockGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsSrLocalBlock _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsSrLocalBlock>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsSrLocalBlockGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsSrCapabilities::ParseTableT_ LsSrCapabilities::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsSrCapabilities>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bool ipv4_supported = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsSrCapabilities, _impl_.ipv4_supported_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ipv4_supported_)}},
      // bool ipv6_supported = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LsSrCapabilities, _impl_.ipv6_supported_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ipv6_supported_)}},
      // repeated .apipb.LsSrRange ranges = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ranges_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bool ipv4_supported = 1;
      {PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ipv4_supported_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // bool ipv6_supported = 2;
      {PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ipv6_supported_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .apipb.LsSrRange ranges = 3;
      {PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ranges_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsSrRange>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsSrRange_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsSrCapabilities::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ranges_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsSrCapabilities,
            PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_.ranges_)>()
         }
        ,
        ipv4_supported_{false},
        ipv6_supported_{false} {}

template <typename>
constexpr LsSrCapabilities::LsSrCapabilities(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsSrCapabilities::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsSrCapabilities(arena);
}
constexpr auto LsSrCapabilities::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsSrCapabilities), alignof(LsSrCapabilities));
}
constexpr auto LsSrCapabilities::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsSrCapabilities::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsSrCapabilities>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsSrCapabilities::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsSrCapabilities>(), &LsSrCapabilities::ByteSizeLong,
              &LsSrCapabilities::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[105],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsSrCapabilitiesGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsSrCapabilitiesGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsSrCapabilities_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsSrCapabilities::InternalGenerateClassData_(
            _default, &LsSrCapabilities_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsSrCapabilities>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsSrCapabilitiesGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsSrCapabilities _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsSrCapabilities>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsSrCapabilitiesGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsPrefixV6NLRI::ParseTableT_ LsPrefixV6NLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsPrefixV6NLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_.prefix_descriptor_)}},
      // .apipb.LsNodeDescriptor local_node = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_.local_node_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsNodeDescriptor local_node = 1;
      {PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_.local_node_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
      {PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_.prefix_descriptor_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsNodeDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsNodeDescriptor_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsPrefixDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsPrefixDescriptor_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsPrefixV6NLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        local_node_{nullptr},
        prefix_descriptor_{nullptr} {}

template <typename>
constexpr LsPrefixV6NLRI::LsPrefixV6NLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsPrefixV6NLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsPrefixV6NLRI(arena);
}
constexpr auto LsPrefixV6NLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsPrefixV6NLRI), alignof(LsPrefixV6NLRI));
}
constexpr auto LsPrefixV6NLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsPrefixV6NLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsPrefixV6NLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsPrefixV6NLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsPrefixV6NLRI>(), &LsPrefixV6NLRI::ByteSizeLong,
              &LsPrefixV6NLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[40],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsPrefixV6NLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsPrefixV6NLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsPrefixV6NLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsPrefixV6NLRI::InternalGenerateClassData_(
            _default, &LsPrefixV6NLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsPrefixV6NLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsPrefixV6NLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsPrefixV6NLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsPrefixV6NLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsPrefixV4NLRI::ParseTableT_ LsPrefixV4NLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsPrefixV4NLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_.prefix_descriptor_)}},
      // .apipb.LsNodeDescriptor local_node = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_.local_node_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsNodeDescriptor local_node = 1;
      {PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_.local_node_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
      {PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_.prefix_descriptor_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsNodeDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsNodeDescriptor_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsPrefixDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsPrefixDescriptor_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsPrefixV4NLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        local_node_{nullptr},
        prefix_descriptor_{nullptr} {}

template <typename>
constexpr LsPrefixV4NLRI::LsPrefixV4NLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsPrefixV4NLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsPrefixV4NLRI(arena);
}
constexpr auto LsPrefixV4NLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsPrefixV4NLRI), alignof(LsPrefixV4NLRI));
}
constexpr auto LsPrefixV4NLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsPrefixV4NLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsPrefixV4NLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsPrefixV4NLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsPrefixV4NLRI>(), &LsPrefixV4NLRI::ByteSizeLong,
              &LsPrefixV4NLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[39],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsPrefixV4NLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsPrefixV4NLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsPrefixV4NLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsPrefixV4NLRI::InternalGenerateClassData_(
            _default, &LsPrefixV4NLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsPrefixV4NLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsPrefixV4NLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsPrefixV4NLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsPrefixV4NLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsNodeNLRI::ParseTableT_ LsNodeNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsNodeNLRI, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsNodeNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.LsNodeDescriptor local_node = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsNodeNLRI, _impl_.local_node_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsNodeDescriptor local_node = 1;
      {PROTOBUF_FIELD_OFFSET(LsNodeNLRI, _impl_.local_node_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsNodeDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsNodeDescriptor_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsNodeNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        local_node_{nullptr} {}

template <typename>
constexpr LsNodeNLRI::LsNodeNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsNodeNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsNodeNLRI(arena);
}
constexpr auto LsNodeNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsNodeNLRI), alignof(LsNodeNLRI));
}
constexpr auto LsNodeNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsNodeNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsNodeNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsNodeNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsNodeNLRI>(), &LsNodeNLRI::ByteSizeLong,
              &LsNodeNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsNodeNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[37],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsNodeNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsNodeNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsNodeNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsNodeNLRI::InternalGenerateClassData_(
            _default, &LsNodeNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsNodeNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsNodeNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsNodeNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsNodeNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsNodeNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsLinkNLRI::ParseTableT_ LsLinkNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsLinkNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.LsNodeDescriptor local_node = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.local_node_)}},
      // .apipb.LsNodeDescriptor remote_node = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.remote_node_)}},
      // .apipb.LsLinkDescriptor link_descriptor = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.link_descriptor_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsNodeDescriptor local_node = 1;
      {PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.local_node_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsNodeDescriptor remote_node = 2;
      {PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.remote_node_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsLinkDescriptor link_descriptor = 3;
      {PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.link_descriptor_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsNodeDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsNodeDescriptor_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsNodeDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsNodeDescriptor_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsLinkDescriptor>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsLinkDescriptor_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsLinkNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        local_node_{nullptr},
        remote_node_{nullptr},
        link_descriptor_{nullptr} {}

template <typename>
constexpr LsLinkNLRI::LsLinkNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsLinkNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsLinkNLRI(arena);
}
constexpr auto LsLinkNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsLinkNLRI), alignof(LsLinkNLRI));
}
constexpr auto LsLinkNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsLinkNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsLinkNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsLinkNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsLinkNLRI>(), &LsLinkNLRI::ByteSizeLong,
              &LsLinkNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[38],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsLinkNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsLinkNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsLinkNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsLinkNLRI::InternalGenerateClassData_(
            _default, &LsLinkNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsLinkNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsLinkNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsLinkNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsLinkNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsLinkNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsBgpPeerSegmentSID::ParseTableT_ LsBgpPeerSegmentSID::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsBgpPeerSegmentSID>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.LsBgpPeerSegmentSIDFlags flags = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.flags_)}},
      // uint32 weight = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsBgpPeerSegmentSID, _impl_.weight_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.weight_)}},
      // uint32 sid = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsBgpPeerSegmentSID, _impl_.sid_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.sid_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsBgpPeerSegmentSIDFlags flags = 1;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.flags_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 weight = 2;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.weight_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 sid = 3;
      {PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.sid_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsBgpPeerSegmentSIDFlags>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsBgpPeerSegmentSIDFlags_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsBgpPeerSegmentSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        flags_{nullptr},
        weight_{0u},
        sid_{0u} {}

template <typename>
constexpr LsBgpPeerSegmentSID::LsBgpPeerSegmentSID(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsBgpPeerSegmentSID::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsBgpPeerSegmentSID(arena);
}
constexpr auto LsBgpPeerSegmentSID::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsBgpPeerSegmentSID), alignof(LsBgpPeerSegmentSID));
}
constexpr auto LsBgpPeerSegmentSID::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsBgpPeerSegmentSID::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsBgpPeerSegmentSID>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsBgpPeerSegmentSID::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsBgpPeerSegmentSID>(), &LsBgpPeerSegmentSID::ByteSizeLong,
              &LsBgpPeerSegmentSID::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[111],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsBgpPeerSegmentSIDGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsBgpPeerSegmentSIDGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsBgpPeerSegmentSID_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsBgpPeerSegmentSID::InternalGenerateClassData_(
            _default, &LsBgpPeerSegmentSID_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsBgpPeerSegmentSID>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsBgpPeerSegmentSIDGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsBgpPeerSegmentSID _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsBgpPeerSegmentSID>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsAttributePrefix::ParseTableT_ LsAttributePrefix::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsAttributePrefix>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.LsIGPFlags igp_flags = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.igp_flags_)}},
      // bytes opaque = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.opaque_)}},
      // uint32 sr_prefix_sid = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAttributePrefix, _impl_.sr_prefix_sid_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.sr_prefix_sid_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsIGPFlags igp_flags = 1;
      {PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.igp_flags_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bytes opaque = 2;
      {PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.opaque_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // uint32 sr_prefix_sid = 3;
      {PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.sr_prefix_sid_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsIGPFlags>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsIGPFlags_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsAttributePrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        opaque_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        igp_flags_{nullptr},
        sr_prefix_sid_{0u} {}

template <typename>
constexpr LsAttributePrefix::LsAttributePrefix(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsAttributePrefix::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsAttributePrefix(arena);
}
constexpr auto LsAttributePrefix::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsAttributePrefix), alignof(LsAttributePrefix));
}
constexpr auto LsAttributePrefix::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsAttributePrefix::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsAttributePrefix>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsAttributePrefix::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsAttributePrefix>(), &LsAttributePrefix::ByteSizeLong,
              &LsAttributePrefix::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[109],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsAttributePrefixGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsAttributePrefixGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsAttributePrefix_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsAttributePrefix::InternalGenerateClassData_(
            _default, &LsAttributePrefix_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsAttributePrefix>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsAttributePrefixGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsAttributePrefix _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsAttributePrefix>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsAttributePrefixGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsAddrPrefix::ParseTableT_ LsAddrPrefix::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_._has_bits_),
      0, // no _extensions_
      5, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967264,  // skipmap
      offsetof(ParseTableT_, field_entries),
      5,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsAddrPrefix>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.LsNLRIType type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAddrPrefix, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.type_)}},
      // .google.protobuf.Any nlri = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.nlri_)}},
      // uint32 length = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAddrPrefix, _impl_.length_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.length_)}},
      // .apipb.LsProtocolID protocol_id = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LsAddrPrefix, _impl_.protocol_id_), 4>(),
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.protocol_id_)}},
      // uint64 identifier = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(LsAddrPrefix, _impl_.identifier_), 3>(),
       {40, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.identifier_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsNLRIType type = 1;
      {PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // .google.protobuf.Any nlri = 2;
      {PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.nlri_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 length = 3;
      {PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.length_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .apipb.LsProtocolID protocol_id = 4;
      {PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.protocol_id_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // uint64 identifier = 5;
      {PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.identifier_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsAddrPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        nlri_{nullptr},
        type_{static_cast< ::apipb::LsNLRIType >(0)},
        length_{0u},
        identifier_{::uint64_t{0u}},
        protocol_id_{static_cast< ::apipb::LsProtocolID >(0)} {}

template <typename>
constexpr LsAddrPrefix::LsAddrPrefix(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsAddrPrefix::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsAddrPrefix(arena);
}
constexpr auto LsAddrPrefix::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsAddrPrefix), alignof(LsAddrPrefix));
}
constexpr auto LsAddrPrefix::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsAddrPrefix::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsAddrPrefix>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsAddrPrefix::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsAddrPrefix>(), &LsAddrPrefix::ByteSizeLong,
              &LsAddrPrefix::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[41],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsAddrPrefixGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsAddrPrefixGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsAddrPrefix_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsAddrPrefix::InternalGenerateClassData_(
            _default, &LsAddrPrefix_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsAddrPrefix>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsAddrPrefixGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsAddrPrefix _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsAddrPrefix>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsAddrPrefixGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

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


inline constexpr LargeCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LargeCommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunitiesAttribute, _impl_.communities_)>()
         }
     {}

template <typename>
constexpr LargeCommunitiesAttribute::LargeCommunitiesAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LargeCommunitiesAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LargeCommunitiesAttribute(arena);
}
constexpr auto LargeCommunitiesAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LargeCommunitiesAttribute), alignof(LargeCommunitiesAttribute));
}
constexpr auto LargeCommunitiesAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LargeCommunitiesAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LargeCommunitiesAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LargeCommunitiesAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LargeCommunitiesAttribute>(), &LargeCommunitiesAttribute::ByteSizeLong,
              &LargeCommunitiesAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LargeCommunitiesAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[101],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LargeCommunitiesAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LargeCommunitiesAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LargeCommunitiesAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LargeCommunitiesAttribute::InternalGenerateClassData_(
            _default, &LargeCommunitiesAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LargeCommunitiesAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LargeCommunitiesAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LargeCommunitiesAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LargeCommunitiesAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LargeCommunitiesAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LabeledVPNIPAddressPrefix::ParseTableT_ LabeledVPNIPAddressPrefix::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LabeledVPNIPAddressPrefix>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // string prefix = 4;
      {::_pbi::TcParser::FastUS1,
       {34, 1, 0,
        PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.prefix_)}},
      // repeated uint32 labels = 1;
      {::_pbi::TcParser::FastV32P1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.labels_)}},
      // .google.protobuf.Any rd = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.rd_)}},
      // uint32 prefix_len = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LabeledVPNIPAddressPrefix, _impl_.prefix_len_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.prefix_len_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated uint32 labels = 1;
      {PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.labels_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt32)},
      // .google.protobuf.Any rd = 2;
      {PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.rd_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 prefix_len = 3;
      {PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.prefix_len_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string prefix = 4;
      {PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.prefix_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\37\0\0\0\6\0\0\0"
      "apipb.LabeledVPNIPAddressPrefix"
      "prefix"
    }},
  };
}


inline constexpr LabeledVPNIPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        labels_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LabeledVPNIPAddressPrefix,
            PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.labels_)>()
         }
        ,
        _labels_cached_byte_size_{0},
        prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        prefix_len_{0u} {}

template <typename>
constexpr LabeledVPNIPAddressPrefix::LabeledVPNIPAddressPrefix(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LabeledVPNIPAddressPrefix::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LabeledVPNIPAddressPrefix(arena);
}
constexpr auto LabeledVPNIPAddressPrefix::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LabeledVPNIPAddressPrefix), alignof(LabeledVPNIPAddressPrefix));
}
constexpr auto LabeledVPNIPAddressPrefix::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LabeledVPNIPAddressPrefix::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LabeledVPNIPAddressPrefix>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LabeledVPNIPAddressPrefix::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LabeledVPNIPAddressPrefix>(), &LabeledVPNIPAddressPrefix::ByteSizeLong,
              &LabeledVPNIPAddressPrefix::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[25],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LabeledVPNIPAddressPrefixGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LabeledVPNIPAddressPrefixGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LabeledVPNIPAddressPrefix_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LabeledVPNIPAddressPrefix::InternalGenerateClassData_(
            _default, &LabeledVPNIPAddressPrefix_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LabeledVPNIPAddressPrefix>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LabeledVPNIPAddressPrefixGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LabeledVPNIPAddressPrefix _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LabeledVPNIPAddressPrefix>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefixGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr IP6ExtendedCommunitiesAttribute::ParseTableT_ IP6ExtendedCommunitiesAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(IP6ExtendedCommunitiesAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::IP6ExtendedCommunitiesAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any communities = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(IP6ExtendedCommunitiesAttribute, _impl_.communities_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .google.protobuf.Any communities = 1;
      {PROTOBUF_FIELD_OFFSET(IP6ExtendedCommunitiesAttribute, _impl_.communities_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr IP6ExtendedCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::IP6ExtendedCommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::IP6ExtendedCommunitiesAttribute, _impl_.communities_)>()
         }
     {}

template <typename>
constexpr IP6ExtendedCommunitiesAttribute::IP6ExtendedCommunitiesAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL IP6ExtendedCommunitiesAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) IP6ExtendedCommunitiesAttribute(arena);
}
constexpr auto IP6ExtendedCommunitiesAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(IP6ExtendedCommunitiesAttribute), alignof(IP6ExtendedCommunitiesAttribute));
}
constexpr auto IP6ExtendedCommunitiesAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &IP6ExtendedCommunitiesAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<IP6ExtendedCommunitiesAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &IP6ExtendedCommunitiesAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<IP6ExtendedCommunitiesAttribute>(), &IP6ExtendedCommunitiesAttribute::ByteSizeLong,
              &IP6ExtendedCommunitiesAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(IP6ExtendedCommunitiesAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[96],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct IP6ExtendedCommunitiesAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr IP6ExtendedCommunitiesAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 IP6ExtendedCommunitiesAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(IP6ExtendedCommunitiesAttribute::InternalGenerateClassData_(
            _default, &IP6ExtendedCommunitiesAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<IP6ExtendedCommunitiesAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~IP6ExtendedCommunitiesAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) IP6ExtendedCommunitiesAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<IP6ExtendedCommunitiesAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(IP6ExtendedCommunitiesAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FlowSpecNLRI::ParseTableT_ FlowSpecNLRI::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FlowSpecNLRI, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::FlowSpecNLRI>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any rules = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecNLRI, _impl_.rules_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .google.protobuf.Any rules = 1;
      {PROTOBUF_FIELD_OFFSET(FlowSpecNLRI, _impl_.rules_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FlowSpecNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        rules_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::FlowSpecNLRI,
            PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecNLRI, _impl_.rules_)>()
         }
     {}

template <typename>
constexpr FlowSpecNLRI::FlowSpecNLRI(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FlowSpecNLRI::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FlowSpecNLRI(arena);
}
constexpr auto FlowSpecNLRI::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FlowSpecNLRI), alignof(FlowSpecNLRI));
}
constexpr auto FlowSpecNLRI::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FlowSpecNLRI::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FlowSpecNLRI>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FlowSpecNLRI::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FlowSpecNLRI>(), &FlowSpecNLRI::ByteSizeLong,
              &FlowSpecNLRI::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FlowSpecNLRI, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[31],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FlowSpecNLRIGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FlowSpecNLRIGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FlowSpecNLRI_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FlowSpecNLRI::InternalGenerateClassData_(
            _default, &FlowSpecNLRI_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecNLRI>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FlowSpecNLRIGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FlowSpecNLRI _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecNLRI>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FlowSpecNLRIGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr FlowSpecComponent::ParseTableT_ FlowSpecComponent::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FlowSpecComponent, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::FlowSpecComponent>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .apipb.FlowSpecComponentItem items = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecComponent, _impl_.items_)}},
      // uint32 type = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlowSpecComponent, _impl_.type_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(FlowSpecComponent, _impl_.type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(FlowSpecComponent, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated .apipb.FlowSpecComponentItem items = 2;
      {PROTOBUF_FIELD_OFFSET(FlowSpecComponent, _impl_.items_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::FlowSpecComponentItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::FlowSpecComponentItem_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FlowSpecComponent::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        items_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::FlowSpecComponent,
            PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponent, _impl_.items_)>()
         }
        ,
        type_{0u} {}

template <typename>
constexpr FlowSpecComponent::FlowSpecComponent(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL FlowSpecComponent::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FlowSpecComponent(arena);
}
constexpr auto FlowSpecComponent::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FlowSpecComponent), alignof(FlowSpecComponent));
}
constexpr auto FlowSpecComponent::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &FlowSpecComponent::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FlowSpecComponent>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FlowSpecComponent::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FlowSpecComponent>(), &FlowSpecComponent::ByteSizeLong,
              &FlowSpecComponent::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FlowSpecComponent, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[30],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct FlowSpecComponentGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr FlowSpecComponentGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 FlowSpecComponent_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(FlowSpecComponent::InternalGenerateClassData_(
            _default, &FlowSpecComponent_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecComponent>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~FlowSpecComponentGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) FlowSpecComponent _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<FlowSpecComponent>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(FlowSpecComponentGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr ExtendedCommunitiesAttribute::ParseTableT_ ExtendedCommunitiesAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExtendedCommunitiesAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::ExtendedCommunitiesAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any communities = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExtendedCommunitiesAttribute, _impl_.communities_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .google.protobuf.Any communities = 1;
      {PROTOBUF_FIELD_OFFSET(ExtendedCommunitiesAttribute, _impl_.communities_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExtendedCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::ExtendedCommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::ExtendedCommunitiesAttribute, _impl_.communities_)>()
         }
     {}

template <typename>
constexpr ExtendedCommunitiesAttribute::ExtendedCommunitiesAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ExtendedCommunitiesAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExtendedCommunitiesAttribute(arena);
}
constexpr auto ExtendedCommunitiesAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExtendedCommunitiesAttribute), alignof(ExtendedCommunitiesAttribute));
}
constexpr auto ExtendedCommunitiesAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ExtendedCommunitiesAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExtendedCommunitiesAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExtendedCommunitiesAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExtendedCommunitiesAttribute>(), &ExtendedCommunitiesAttribute::ByteSizeLong,
              &ExtendedCommunitiesAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExtendedCommunitiesAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[69],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExtendedCommunitiesAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExtendedCommunitiesAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExtendedCommunitiesAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExtendedCommunitiesAttribute::InternalGenerateClassData_(
            _default, &ExtendedCommunitiesAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExtendedCommunitiesAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExtendedCommunitiesAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExtendedCommunitiesAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExtendedCommunitiesAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExtendedCommunitiesAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EVPNMACIPAdvertisementRoute::ParseTableT_ EVPNMACIPAdvertisementRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EVPNMACIPAdvertisementRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 3, 0,
        PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.rd_)}},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 4, 1,
        PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.esi_)}},
      // uint32 ethernet_tag = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNMACIPAdvertisementRoute, _impl_.ethernet_tag_), 5>(),
       {24, 5, 0,
        PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.ethernet_tag_)}},
      // string mac_address = 4;
      {::_pbi::TcParser::FastUS1,
       {34, 1, 0,
        PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.mac_address_)}},
      // string ip_address = 5;
      {::_pbi::TcParser::FastUS1,
       {42, 2, 0,
        PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.ip_address_)}},
      // repeated uint32 labels = 6;
      {::_pbi::TcParser::FastV32P1,
       {50, 0, 0,
        PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.labels_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.rd_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.esi_), _Internal::kHasBitsOffset + 4, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 ethernet_tag = 3;
      {PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.ethernet_tag_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string mac_address = 4;
      {PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.mac_address_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string ip_address = 5;
      {PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.ip_address_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // repeated uint32 labels = 6;
      {PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.labels_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::EthernetSegmentIdentifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::EthernetSegmentIdentifier_globals_},
        #endif
    }},
    {{
      "\41\0\0\0\13\12\0\0"
      "apipb.EVPNMACIPAdvertisementRoute"
      "mac_address"
      "ip_address"
    }},
  };
}


inline constexpr EVPNMACIPAdvertisementRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        labels_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::EVPNMACIPAdvertisementRoute,
            PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.labels_)>()
         }
        ,
        _labels_cached_byte_size_{0},
        mac_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        ip_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        esi_{nullptr},
        ethernet_tag_{0u} {}

template <typename>
constexpr EVPNMACIPAdvertisementRoute::EVPNMACIPAdvertisementRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EVPNMACIPAdvertisementRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EVPNMACIPAdvertisementRoute(arena);
}
constexpr auto EVPNMACIPAdvertisementRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EVPNMACIPAdvertisementRoute), alignof(EVPNMACIPAdvertisementRoute));
}
constexpr auto EVPNMACIPAdvertisementRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EVPNMACIPAdvertisementRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EVPNMACIPAdvertisementRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EVPNMACIPAdvertisementRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EVPNMACIPAdvertisementRoute>(), &EVPNMACIPAdvertisementRoute::ByteSizeLong,
              &EVPNMACIPAdvertisementRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[19],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EVPNMACIPAdvertisementRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EVPNMACIPAdvertisementRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EVPNMACIPAdvertisementRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EVPNMACIPAdvertisementRoute::InternalGenerateClassData_(
            _default, &EVPNMACIPAdvertisementRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EVPNMACIPAdvertisementRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EVPNMACIPAdvertisementRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EVPNMACIPAdvertisementRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EVPNMACIPAdvertisementRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EVPNInclusiveMulticastEthernetTagRoute::ParseTableT_ EVPNInclusiveMulticastEthernetTagRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EVPNInclusiveMulticastEthernetTagRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.rd_)}},
      // uint32 ethernet_tag = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNInclusiveMulticastEthernetTagRoute, _impl_.ethernet_tag_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.ethernet_tag_)}},
      // string ip_address = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.ip_address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.rd_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 ethernet_tag = 2;
      {PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.ethernet_tag_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string ip_address = 3;
      {PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.ip_address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
      "\54\0\0\12\0\0\0\0"
      "apipb.EVPNInclusiveMulticastEthernetTagRoute"
      "ip_address"
    }},
  };
}


inline constexpr EVPNInclusiveMulticastEthernetTagRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ip_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        ethernet_tag_{0u} {}

template <typename>
constexpr EVPNInclusiveMulticastEthernetTagRoute::EVPNInclusiveMulticastEthernetTagRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EVPNInclusiveMulticastEthernetTagRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EVPNInclusiveMulticastEthernetTagRoute(arena);
}
constexpr auto EVPNInclusiveMulticastEthernetTagRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EVPNInclusiveMulticastEthernetTagRoute), alignof(EVPNInclusiveMulticastEthernetTagRoute));
}
constexpr auto EVPNInclusiveMulticastEthernetTagRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EVPNInclusiveMulticastEthernetTagRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EVPNInclusiveMulticastEthernetTagRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EVPNInclusiveMulticastEthernetTagRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EVPNInclusiveMulticastEthernetTagRoute>(), &EVPNInclusiveMulticastEthernetTagRoute::ByteSizeLong,
              &EVPNInclusiveMulticastEthernetTagRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[20],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EVPNInclusiveMulticastEthernetTagRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EVPNInclusiveMulticastEthernetTagRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EVPNInclusiveMulticastEthernetTagRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EVPNInclusiveMulticastEthernetTagRoute::InternalGenerateClassData_(
            _default, &EVPNInclusiveMulticastEthernetTagRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EVPNInclusiveMulticastEthernetTagRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EVPNInclusiveMulticastEthernetTagRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EVPNInclusiveMulticastEthernetTagRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EVPNInclusiveMulticastEthernetTagRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EVPNIPPrefixRoute::ParseTableT_ EVPNIPPrefixRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EVPNIPPrefixRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.rd_)}},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 3, 1,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.esi_)}},
      // uint32 ethernet_tag = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNIPPrefixRoute, _impl_.ethernet_tag_), 4>(),
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.ethernet_tag_)}},
      // string ip_prefix = 4;
      {::_pbi::TcParser::FastUS1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.ip_prefix_)}},
      // uint32 ip_prefix_len = 5;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNIPPrefixRoute, _impl_.ip_prefix_len_), 5>(),
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.ip_prefix_len_)}},
      // string gw_address = 6;
      {::_pbi::TcParser::FastUS1,
       {50, 1, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.gw_address_)}},
      // uint32 label = 7;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNIPPrefixRoute, _impl_.label_), 6>(),
       {56, 6, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.label_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.rd_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.esi_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 ethernet_tag = 3;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.ethernet_tag_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string ip_prefix = 4;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.ip_prefix_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 ip_prefix_len = 5;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.ip_prefix_len_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // string gw_address = 6;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.gw_address_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // uint32 label = 7;
      {PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.label_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::EthernetSegmentIdentifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::EthernetSegmentIdentifier_globals_},
        #endif
    }},
    {{
      "\27\0\0\0\11\0\12\0"
      "apipb.EVPNIPPrefixRoute"
      "ip_prefix"
      "gw_address"
    }},
  };
}


inline constexpr EVPNIPPrefixRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ip_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        gw_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        esi_{nullptr},
        ethernet_tag_{0u},
        ip_prefix_len_{0u},
        label_{0u} {}

template <typename>
constexpr EVPNIPPrefixRoute::EVPNIPPrefixRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EVPNIPPrefixRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EVPNIPPrefixRoute(arena);
}
constexpr auto EVPNIPPrefixRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EVPNIPPrefixRoute), alignof(EVPNIPPrefixRoute));
}
constexpr auto EVPNIPPrefixRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EVPNIPPrefixRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EVPNIPPrefixRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EVPNIPPrefixRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EVPNIPPrefixRoute>(), &EVPNIPPrefixRoute::ByteSizeLong,
              &EVPNIPPrefixRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[22],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EVPNIPPrefixRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EVPNIPPrefixRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EVPNIPPrefixRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EVPNIPPrefixRoute::InternalGenerateClassData_(
            _default, &EVPNIPPrefixRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EVPNIPPrefixRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EVPNIPPrefixRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EVPNIPPrefixRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EVPNIPPrefixRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EVPNIPMSIRoute::ParseTableT_ EVPNIPMSIRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EVPNIPMSIRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.rd_)}},
      // uint32 ethernet_tag = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNIPMSIRoute, _impl_.ethernet_tag_), 2>(),
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.ethernet_tag_)}},
      // .google.protobuf.Any rt = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.rt_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.rd_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 ethernet_tag = 2;
      {PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.ethernet_tag_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .google.protobuf.Any rt = 3;
      {PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.rt_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr EVPNIPMSIRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        rd_{nullptr},
        rt_{nullptr},
        ethernet_tag_{0u} {}

template <typename>
constexpr EVPNIPMSIRoute::EVPNIPMSIRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EVPNIPMSIRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EVPNIPMSIRoute(arena);
}
constexpr auto EVPNIPMSIRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(EVPNIPMSIRoute), alignof(EVPNIPMSIRoute));
}
constexpr auto EVPNIPMSIRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EVPNIPMSIRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EVPNIPMSIRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EVPNIPMSIRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EVPNIPMSIRoute>(), &EVPNIPMSIRoute::ByteSizeLong,
              &EVPNIPMSIRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[23],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EVPNIPMSIRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EVPNIPMSIRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EVPNIPMSIRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EVPNIPMSIRoute::InternalGenerateClassData_(
            _default, &EVPNIPMSIRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EVPNIPMSIRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EVPNIPMSIRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EVPNIPMSIRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EVPNIPMSIRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EVPNIPMSIRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EVPNEthernetSegmentRoute::ParseTableT_ EVPNEthernetSegmentRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EVPNEthernetSegmentRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.rd_)}},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.esi_)}},
      // string ip_address = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.ip_address_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.rd_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.esi_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string ip_address = 3;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.ip_address_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::EthernetSegmentIdentifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::EthernetSegmentIdentifier_globals_},
        #endif
    }},
    {{
      "\36\0\0\12\0\0\0\0"
      "apipb.EVPNEthernetSegmentRoute"
      "ip_address"
    }},
  };
}


inline constexpr EVPNEthernetSegmentRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ip_address_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        rd_{nullptr},
        esi_{nullptr} {}

template <typename>
constexpr EVPNEthernetSegmentRoute::EVPNEthernetSegmentRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EVPNEthernetSegmentRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EVPNEthernetSegmentRoute(arena);
}
constexpr auto EVPNEthernetSegmentRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EVPNEthernetSegmentRoute), alignof(EVPNEthernetSegmentRoute));
}
constexpr auto EVPNEthernetSegmentRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EVPNEthernetSegmentRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EVPNEthernetSegmentRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EVPNEthernetSegmentRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EVPNEthernetSegmentRoute>(), &EVPNEthernetSegmentRoute::ByteSizeLong,
              &EVPNEthernetSegmentRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[21],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EVPNEthernetSegmentRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EVPNEthernetSegmentRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EVPNEthernetSegmentRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EVPNEthernetSegmentRoute::InternalGenerateClassData_(
            _default, &EVPNEthernetSegmentRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EVPNEthernetSegmentRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EVPNEthernetSegmentRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EVPNEthernetSegmentRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EVPNEthernetSegmentRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr EVPNEthernetAutoDiscoveryRoute::ParseTableT_ EVPNEthernetAutoDiscoveryRoute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::EVPNEthernetAutoDiscoveryRoute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 label = 4;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNEthernetAutoDiscoveryRoute, _impl_.label_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.label_)}},
      // .google.protobuf.Any rd = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.rd_)}},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.esi_)}},
      // uint32 ethernet_tag = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EVPNEthernetAutoDiscoveryRoute, _impl_.ethernet_tag_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.ethernet_tag_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .google.protobuf.Any rd = 1;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.rd_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.EthernetSegmentIdentifier esi = 2;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.esi_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 ethernet_tag = 3;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.ethernet_tag_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // uint32 label = 4;
      {PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.label_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::EthernetSegmentIdentifier>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::EthernetSegmentIdentifier_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr EVPNEthernetAutoDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        rd_{nullptr},
        esi_{nullptr},
        ethernet_tag_{0u},
        label_{0u} {}

template <typename>
constexpr EVPNEthernetAutoDiscoveryRoute::EVPNEthernetAutoDiscoveryRoute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL EVPNEthernetAutoDiscoveryRoute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EVPNEthernetAutoDiscoveryRoute(arena);
}
constexpr auto EVPNEthernetAutoDiscoveryRoute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(EVPNEthernetAutoDiscoveryRoute), alignof(EVPNEthernetAutoDiscoveryRoute));
}
constexpr auto EVPNEthernetAutoDiscoveryRoute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &EVPNEthernetAutoDiscoveryRoute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EVPNEthernetAutoDiscoveryRoute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EVPNEthernetAutoDiscoveryRoute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EVPNEthernetAutoDiscoveryRoute>(), &EVPNEthernetAutoDiscoveryRoute::ByteSizeLong,
              &EVPNEthernetAutoDiscoveryRoute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[18],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct EVPNEthernetAutoDiscoveryRouteGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EVPNEthernetAutoDiscoveryRouteGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 EVPNEthernetAutoDiscoveryRoute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(EVPNEthernetAutoDiscoveryRoute::InternalGenerateClassData_(
            _default, &EVPNEthernetAutoDiscoveryRoute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<EVPNEthernetAutoDiscoveryRoute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EVPNEthernetAutoDiscoveryRouteGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) EVPNEthernetAutoDiscoveryRoute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<EVPNEthernetAutoDiscoveryRoute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRouteGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

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


inline constexpr AsPathAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        segments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::AsPathAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::AsPathAttribute, _impl_.segments_)>()
         }
     {}

template <typename>
constexpr AsPathAttribute::AsPathAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL AsPathAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AsPathAttribute(arena);
}
constexpr auto AsPathAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AsPathAttribute), alignof(AsPathAttribute));
}
constexpr auto AsPathAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AsPathAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AsPathAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AsPathAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AsPathAttribute>(), &AsPathAttribute::ByteSizeLong,
              &AsPathAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AsPathAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[2],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AsPathAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AsPathAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AsPathAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AsPathAttribute::InternalGenerateClassData_(
            _default, &AsPathAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AsPathAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AsPathAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AsPathAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AsPathAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AsPathAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

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


inline constexpr As4PathAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        segments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::As4PathAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::As4PathAttribute, _impl_.segments_)>()
         }
     {}

template <typename>
constexpr As4PathAttribute::As4PathAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL As4PathAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) As4PathAttribute(arena);
}
constexpr auto As4PathAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(As4PathAttribute), alignof(As4PathAttribute));
}
constexpr auto As4PathAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &As4PathAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<As4PathAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &As4PathAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<As4PathAttribute>(), &As4PathAttribute::ByteSizeLong,
              &As4PathAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(As4PathAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[70],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct As4PathAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr As4PathAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 As4PathAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(As4PathAttribute::InternalGenerateClassData_(
            _default, &As4PathAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<As4PathAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~As4PathAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) As4PathAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<As4PathAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(As4PathAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr AigpAttribute::ParseTableT_ AigpAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(AigpAttribute, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::AigpAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .google.protobuf.Any tlvs = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(AigpAttribute, _impl_.tlvs_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .google.protobuf.Any tlvs = 1;
      {PROTOBUF_FIELD_OFFSET(AigpAttribute, _impl_.tlvs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::google::protobuf::Any_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr AigpAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::AigpAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::AigpAttribute, _impl_.tlvs_)>()
         }
     {}

template <typename>
constexpr AigpAttribute::AigpAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL AigpAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AigpAttribute(arena);
}
constexpr auto AigpAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AigpAttribute), alignof(AigpAttribute));
}
constexpr auto AigpAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &AigpAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AigpAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AigpAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AigpAttribute>(), &AigpAttribute::ByteSizeLong,
              &AigpAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AigpAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[99],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct AigpAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr AigpAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 AigpAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(AigpAttribute::InternalGenerateClassData_(
            _default, &AigpAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<AigpAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~AigpAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) AigpAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<AigpAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(AigpAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

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


inline constexpr TunnelEncapAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::TunnelEncapAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapAttribute, _impl_.tlvs_)>()
         }
     {}

template <typename>
constexpr TunnelEncapAttribute::TunnelEncapAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL TunnelEncapAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TunnelEncapAttribute(arena);
}
constexpr auto TunnelEncapAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TunnelEncapAttribute), alignof(TunnelEncapAttribute));
}
constexpr auto TunnelEncapAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &TunnelEncapAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TunnelEncapAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TunnelEncapAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TunnelEncapAttribute>(), &TunnelEncapAttribute::ByteSizeLong,
              &TunnelEncapAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TunnelEncapAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[93],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct TunnelEncapAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr TunnelEncapAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 TunnelEncapAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(TunnelEncapAttribute::InternalGenerateClassData_(
            _default, &TunnelEncapAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~TunnelEncapAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) TunnelEncapAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<TunnelEncapAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(TunnelEncapAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST TunnelEncapAttributeGlobalsTypeInternal TunnelEncapAttribute_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* TunnelEncapAttribute_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return TunnelEncapAttribute_globals_.GetClassData();
#else
  return TunnelEncapAttribute_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
constexpr SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::ParseTableT_ SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::DiscardEverythingFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.SRv6TLV value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.value_)}},
      // uint32 key = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 key = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .apipb.SRv6TLV value = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6TLV>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6TLV_globals_},
        #endif
    }},
    {{
    }},
  };
}

template <typename>
constexpr SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::MapEntry(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse(arena);
}
constexpr auto SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse), alignof(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse));
}
constexpr auto SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::SharedDtor,
          static_cast<void (::google::protobuf::MessageLite::*)()>(&SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::ClearImpl),
              ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl
              ,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[120],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6L3ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6L3ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateClassData_(
            _default, &SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6L3ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SRv6L3ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_.GetClassData();
#else
  return SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
constexpr SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::ParseTableT_ SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::DiscardEverythingFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.SRv6TLV value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.value_)}},
      // uint32 key = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 key = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .apipb.SRv6TLV value = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6TLV>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6TLV_globals_},
        #endif
    }},
    {{
    }},
  };
}

template <typename>
constexpr SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::MapEntry(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse(arena);
}
constexpr auto SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse), alignof(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse));
}
constexpr auto SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::SharedDtor,
          static_cast<void (::google::protobuf::MessageLite::*)()>(&SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::ClearImpl),
              ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl
              ,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[122],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6L2ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6L2ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateClassData_(
            _default, &SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6L2ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SRv6L2ServiceTLV_SubTlvsEntry_DoNotUseGlobalsTypeInternal SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_.GetClassData();
#else
  return SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
constexpr SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::ParseTableT_ SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::DiscardEverythingFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.SRv6TLV value = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.value_)}},
      // uint32 key = 1;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.key_), 1>(),
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.key_)}},
    }}, {{
      65535, 65535
    }}, {{
      // uint32 key = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.key_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // .apipb.SRv6TLV value = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.value_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6TLV>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6TLV_globals_},
        #endif
    }},
    {{
    }},
  };
}

template <typename>
constexpr SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::MapEntry(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
      ) {
}
inline void* PROTOBUF_NONNULL SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse(arena);
}
constexpr auto SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse), alignof(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse));
}
constexpr auto SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::SharedDtor,
          static_cast<void (::google::protobuf::MessageLite::*)()>(&SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::ClearImpl),
              ::google::protobuf::Message::ByteSizeLongImpl, ::google::protobuf::Message::_InternalSerializeImpl
              ,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[118],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::InternalGenerateClassData_(
            _default, &SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsAttributeNode::ParseTableT_ LsAttributeNode::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_._has_bits_),
      0, // no _extensions_
      9, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966784,  // skipmap
      offsetof(ParseTableT_, field_entries),
      9,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsAttributeNode>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // string name = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.name_)}},
      // .apipb.LsNodeFlags flags = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 6, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.flags_)}},
      // string local_router_id = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.local_router_id_)}},
      // string local_router_id_v6 = 4;
      {::_pbi::TcParser::FastUS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.local_router_id_v6_)}},
      // bytes isis_area = 5;
      {::_pbi::TcParser::FastBS1,
       {42, 3, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.isis_area_)}},
      // bytes opaque = 6;
      {::_pbi::TcParser::FastBS1,
       {50, 4, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.opaque_)}},
      // .apipb.LsSrCapabilities sr_capabilities = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 7, 1,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_capabilities_)}},
      // bytes sr_algorithms = 8;
      {::_pbi::TcParser::FastBS1,
       {66, 5, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_algorithms_)}},
      // .apipb.LsSrLocalBlock sr_local_block = 9;
      {::_pbi::TcParser::FastMtS1,
       {74, 8, 2,
        PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_local_block_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // string name = 1;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .apipb.LsNodeFlags flags = 2;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.flags_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // string local_router_id = 3;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.local_router_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string local_router_id_v6 = 4;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.local_router_id_v6_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // bytes isis_area = 5;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.isis_area_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // bytes opaque = 6;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.opaque_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .apipb.LsSrCapabilities sr_capabilities = 7;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_capabilities_), _Internal::kHasBitsOffset + 7, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // bytes sr_algorithms = 8;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_algorithms_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .apipb.LsSrLocalBlock sr_local_block = 9;
      {PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_local_block_), _Internal::kHasBitsOffset + 8, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsNodeFlags>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsNodeFlags_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsSrCapabilities>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsSrCapabilities_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsSrLocalBlock>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsSrLocalBlock_globals_},
        #endif
    }},
    {{
      "\25\4\0\17\22\0\0\0\0\0\0\0\0\0\0\0"
      "apipb.LsAttributeNode"
      "name"
      "local_router_id"
      "local_router_id_v6"
    }},
  };
}


inline constexpr LsAttributeNode::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        local_router_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        local_router_id_v6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        isis_area_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        opaque_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        sr_algorithms_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        flags_{nullptr},
        sr_capabilities_{nullptr},
        sr_local_block_{nullptr} {}

template <typename>
constexpr LsAttributeNode::LsAttributeNode(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsAttributeNode::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsAttributeNode(arena);
}
constexpr auto LsAttributeNode::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LsAttributeNode), alignof(LsAttributeNode));
}
constexpr auto LsAttributeNode::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsAttributeNode::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsAttributeNode>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsAttributeNode::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsAttributeNode>(), &LsAttributeNode::ByteSizeLong,
              &LsAttributeNode::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[107],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsAttributeNodeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsAttributeNodeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsAttributeNode_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsAttributeNode::InternalGenerateClassData_(
            _default, &LsAttributeNode_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsAttributeNode>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsAttributeNodeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsAttributeNode _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsAttributeNode>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsAttributeNodeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsAttributeBgpPeerSegment::ParseTableT_ LsAttributeBgpPeerSegment::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsAttributeBgpPeerSegment>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .apipb.LsBgpPeerSegmentSID bgp_peer_node_sid = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_node_sid_)}},
      // .apipb.LsBgpPeerSegmentSID bgp_peer_adjacency_sid = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_adjacency_sid_)}},
      // .apipb.LsBgpPeerSegmentSID bgp_peer_set_sid = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_set_sid_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsBgpPeerSegmentSID bgp_peer_node_sid = 1;
      {PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_node_sid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsBgpPeerSegmentSID bgp_peer_adjacency_sid = 2;
      {PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_adjacency_sid_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsBgpPeerSegmentSID bgp_peer_set_sid = 3;
      {PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_set_sid_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsBgpPeerSegmentSID>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsBgpPeerSegmentSID_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsBgpPeerSegmentSID>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsBgpPeerSegmentSID_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsBgpPeerSegmentSID>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsBgpPeerSegmentSID_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsAttributeBgpPeerSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bgp_peer_node_sid_{nullptr},
        bgp_peer_adjacency_sid_{nullptr},
        bgp_peer_set_sid_{nullptr} {}

template <typename>
constexpr LsAttributeBgpPeerSegment::LsAttributeBgpPeerSegment(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsAttributeBgpPeerSegment::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsAttributeBgpPeerSegment(arena);
}
constexpr auto LsAttributeBgpPeerSegment::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsAttributeBgpPeerSegment), alignof(LsAttributeBgpPeerSegment));
}
constexpr auto LsAttributeBgpPeerSegment::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsAttributeBgpPeerSegment::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsAttributeBgpPeerSegment>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsAttributeBgpPeerSegment::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsAttributeBgpPeerSegment>(), &LsAttributeBgpPeerSegment::ByteSizeLong,
              &LsAttributeBgpPeerSegment::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[112],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsAttributeBgpPeerSegmentGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsAttributeBgpPeerSegmentGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsAttributeBgpPeerSegment_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsAttributeBgpPeerSegment::InternalGenerateClassData_(
            _default, &LsAttributeBgpPeerSegment_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsAttributeBgpPeerSegment>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsAttributeBgpPeerSegmentGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsAttributeBgpPeerSegment _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsAttributeBgpPeerSegment>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegmentGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6L3ServiceTLV::ParseTableT_ SRv6L3ServiceTLV::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6L3ServiceTLV>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // map<uint32, .apipb.SRv6TLV> sub_tlvs = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV, _impl_.sub_tlvs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMap)},
    }},
    {{
        {::_pbi::TcParser::GetMapAuxInfo(
            0, 0, 13, 11, 0)},
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6TLV>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6TLV_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SRv6L3ServiceTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sub_tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6L3ServiceTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV, _impl_.sub_tlvs_)>()
         }
     {}

template <typename>
constexpr SRv6L3ServiceTLV::SRv6L3ServiceTLV(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6L3ServiceTLV::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6L3ServiceTLV(arena);
}
constexpr auto SRv6L3ServiceTLV::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRv6L3ServiceTLV), alignof(SRv6L3ServiceTLV));
}
constexpr auto SRv6L3ServiceTLV::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6L3ServiceTLV::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6L3ServiceTLV>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6L3ServiceTLV::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6L3ServiceTLV>(), &SRv6L3ServiceTLV::ByteSizeLong,
              &SRv6L3ServiceTLV::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLV, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[121],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6L3ServiceTLVGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6L3ServiceTLVGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6L3ServiceTLV_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6L3ServiceTLV::InternalGenerateClassData_(
            _default, &SRv6L3ServiceTLV_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6L3ServiceTLV>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6L3ServiceTLVGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6L3ServiceTLV _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6L3ServiceTLV>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6L3ServiceTLVGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6L2ServiceTLV::ParseTableT_ SRv6L2ServiceTLV::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6L2ServiceTLV>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // map<uint32, .apipb.SRv6TLV> sub_tlvs = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV, _impl_.sub_tlvs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMap)},
    }},
    {{
        {::_pbi::TcParser::GetMapAuxInfo(
            0, 0, 13, 11, 0)},
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6TLV>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6TLV_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SRv6L2ServiceTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sub_tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6L2ServiceTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV, _impl_.sub_tlvs_)>()
         }
     {}

template <typename>
constexpr SRv6L2ServiceTLV::SRv6L2ServiceTLV(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6L2ServiceTLV::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6L2ServiceTLV(arena);
}
constexpr auto SRv6L2ServiceTLV::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRv6L2ServiceTLV), alignof(SRv6L2ServiceTLV));
}
constexpr auto SRv6L2ServiceTLV::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6L2ServiceTLV::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6L2ServiceTLV>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6L2ServiceTLV::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6L2ServiceTLV>(), &SRv6L2ServiceTLV::ByteSizeLong,
              &SRv6L2ServiceTLV::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLV, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[123],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6L2ServiceTLVGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6L2ServiceTLVGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6L2ServiceTLV_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6L2ServiceTLV::InternalGenerateClassData_(
            _default, &SRv6L2ServiceTLV_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6L2ServiceTLV>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6L2ServiceTLVGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6L2ServiceTLV _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6L2ServiceTLV>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6L2ServiceTLVGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr SRv6InformationSubTLV::ParseTableT_ SRv6InformationSubTLV::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::SRv6InformationSubTLV>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // bytes sid = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.sid_)}},
      // .apipb.SRv6SIDFlags flags = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.flags_)}},
      // uint32 endpoint_behavior = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SRv6InformationSubTLV, _impl_.endpoint_behavior_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.endpoint_behavior_)}},
    }}, {{
      65535, 65535
    }}, {{
      // bytes sid = 1;
      {PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.sid_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // .apipb.SRv6SIDFlags flags = 2;
      {PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.flags_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 endpoint_behavior = 3;
      {PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.endpoint_behavior_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // map<uint32, .apipb.SRv6TLV> sub_sub_tlvs = 4;
      {PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.sub_sub_tlvs_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMap)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6SIDFlags>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6SIDFlags_globals_},
        #endif
        {::_pbi::TcParser::GetMapAuxInfo(
            0, 0, 13, 11, 0)},
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::SRv6TLV>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::SRv6TLV_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SRv6InformationSubTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sid_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        flags_{nullptr},
        endpoint_behavior_{0u},
        sub_sub_tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6InformationSubTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.sub_sub_tlvs_)>()
         }
     {}

template <typename>
constexpr SRv6InformationSubTLV::SRv6InformationSubTLV(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SRv6InformationSubTLV::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SRv6InformationSubTLV(arena);
}
constexpr auto SRv6InformationSubTLV::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SRv6InformationSubTLV), alignof(SRv6InformationSubTLV));
}
constexpr auto SRv6InformationSubTLV::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SRv6InformationSubTLV::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SRv6InformationSubTLV>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SRv6InformationSubTLV::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SRv6InformationSubTLV>(), &SRv6InformationSubTLV::ByteSizeLong,
              &SRv6InformationSubTLV::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[119],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SRv6InformationSubTLVGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SRv6InformationSubTLVGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SRv6InformationSubTLV_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SRv6InformationSubTLV::InternalGenerateClassData_(
            _default, &SRv6InformationSubTLV_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SRv6InformationSubTLV>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SRv6InformationSubTLVGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SRv6InformationSubTLV _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SRv6InformationSubTLV>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLVGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr LsAttribute::ParseTableT_ LsAttribute::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      4,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::apipb::LsAttribute>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .apipb.LsAttributeBgpPeerSegment bgp_peer_segment = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 3, 3,
        PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.bgp_peer_segment_)}},
      // .apipb.LsAttributeNode node = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.node_)}},
      // .apipb.LsAttributeLink link = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.link_)}},
      // .apipb.LsAttributePrefix prefix = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.prefix_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .apipb.LsAttributeNode node = 1;
      {PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.node_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsAttributeLink link = 2;
      {PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.link_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsAttributePrefix prefix = 3;
      {PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.prefix_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .apipb.LsAttributeBgpPeerSegment bgp_peer_segment = 4;
      {PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.bgp_peer_segment_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsAttributeNode>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsAttributeNode_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsAttributeLink>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsAttributeLink_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsAttributePrefix>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsAttributePrefix_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::apipb::LsAttributeBgpPeerSegment>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::apipb::LsAttributeBgpPeerSegment_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LsAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        node_{nullptr},
        link_{nullptr},
        prefix_{nullptr},
        bgp_peer_segment_{nullptr} {}

template <typename>
constexpr LsAttribute::LsAttribute(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LsAttribute::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LsAttribute(arena);
}
constexpr auto LsAttribute::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(LsAttribute), alignof(LsAttribute));
}
constexpr auto LsAttribute::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LsAttribute::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LsAttribute>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LsAttribute::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LsAttribute>(), &LsAttribute::ByteSizeLong,
              &LsAttribute::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[113],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_attribute_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LsAttributeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LsAttributeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LsAttribute_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LsAttribute::InternalGenerateClassData_(
            _default, &LsAttribute_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LsAttribute>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LsAttributeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LsAttribute _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LsAttribute>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LsAttributeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST LsAttributeGlobalsTypeInternal LsAttribute_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* LsAttribute_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return LsAttribute_globals_.GetClassData();
#else
  return LsAttribute_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace apipb
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_attribute_2eproto[6];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_attribute_2eproto = nullptr;
const ::uint32_t
    TableStruct_attribute_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::OriginAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::OriginAttribute, _impl_.origin_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::AsSegment, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::AsSegment, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::AsSegment, _impl_.numbers_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::AsPathAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::AsPathAttribute, _impl_.segments_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::NextHopAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::NextHopAttribute, _impl_.next_hop_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MultiExitDiscAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MultiExitDiscAttribute, _impl_.med_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LocalPrefAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LocalPrefAttribute, _impl_.local_pref_),
        0,
        0x000, // bitmap
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::AggregatorAttribute, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::AggregatorAttribute, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::AggregatorAttribute, _impl_.address_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::CommunitiesAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::CommunitiesAttribute, _impl_.communities_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::OriginatorIdAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::OriginatorIdAttribute, _impl_.id_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::ClusterListAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::ClusterListAttribute, _impl_.ids_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::IPAddressPrefix, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::IPAddressPrefix, _impl_.prefix_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPAddressPrefix, _impl_.prefix_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_.labels_),
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_.prefix_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_.prefix_),
        0,
        2,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EncapsulationNLRI, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EncapsulationNLRI, _impl_.address_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherTwoOctetASN, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherTwoOctetASN, _impl_.admin_),
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherTwoOctetASN, _impl_.assigned_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherIPAddress, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherIPAddress, _impl_.admin_),
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherIPAddress, _impl_.assigned_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherFourOctetASN, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherFourOctetASN, _impl_.admin_),
        PROTOBUF_FIELD_OFFSET(::apipb::RouteDistinguisherFourOctetASN, _impl_.assigned_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EthernetSegmentIdentifier, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EthernetSegmentIdentifier, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::EthernetSegmentIdentifier, _impl_.value_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetAutoDiscoveryRoute, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetAutoDiscoveryRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetAutoDiscoveryRoute, _impl_.esi_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetAutoDiscoveryRoute, _impl_.ethernet_tag_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetAutoDiscoveryRoute, _impl_.label_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.esi_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.ethernet_tag_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.mac_address_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.ip_address_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.labels_),
        3,
        4,
        5,
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNInclusiveMulticastEthernetTagRoute, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNInclusiveMulticastEthernetTagRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNInclusiveMulticastEthernetTagRoute, _impl_.ethernet_tag_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNInclusiveMulticastEthernetTagRoute, _impl_.ip_address_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetSegmentRoute, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetSegmentRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetSegmentRoute, _impl_.esi_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNEthernetSegmentRoute, _impl_.ip_address_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.esi_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.ethernet_tag_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.ip_prefix_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.ip_prefix_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.gw_address_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPPrefixRoute, _impl_.label_),
        2,
        3,
        4,
        0,
        5,
        1,
        6,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPMSIRoute, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPMSIRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPMSIRoute, _impl_.ethernet_tag_),
        PROTOBUF_FIELD_OFFSET(::apipb::EVPNIPMSIRoute, _impl_.rt_),
        0,
        2,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRPolicyNLRI, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRPolicyNLRI, _impl_.length_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRPolicyNLRI, _impl_.distinguisher_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRPolicyNLRI, _impl_.color_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRPolicyNLRI, _impl_.endpoint_),
        1,
        2,
        3,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.labels_),
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.prefix_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.prefix_),
        0,
        2,
        3,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RouteTargetMembershipNLRI, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RouteTargetMembershipNLRI, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::RouteTargetMembershipNLRI, _impl_.rt_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecIPPrefix, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecIPPrefix, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecIPPrefix, _impl_.prefix_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecIPPrefix, _impl_.prefix_),
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecIPPrefix, _impl_.offset_),
        1,
        2,
        0,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecMAC, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecMAC, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecMAC, _impl_.address_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponentItem, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponentItem, _impl_.op_),
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponentItem, _impl_.value_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponent, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponent, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponent, _impl_.items_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecNLRI, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecNLRI, _impl_.rules_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::VPNFlowSpecNLRI, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::VPNFlowSpecNLRI, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::VPNFlowSpecNLRI, _impl_.rules_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::OpaqueNLRI, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::OpaqueNLRI, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::apipb::OpaqueNLRI, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.bgp_ls_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.ospf_area_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.pseudonode_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.igp_router_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.bgp_router_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeDescriptor, _impl_.bgp_confederation_member_),
        2,
        3,
        4,
        5,
        0,
        1,
        6,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_.link_local_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_.link_remote_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_.interface_addr_ipv4_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_.neighbor_addr_ipv4_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_.interface_addr_ipv6_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkDescriptor, _impl_.neighbor_addr_ipv6_),
        4,
        5,
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixDescriptor, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixDescriptor, _impl_.ip_reachability_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixDescriptor, _impl_.ospf_route_type_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeNLRI, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeNLRI, _impl_.local_node_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkNLRI, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkNLRI, _impl_.local_node_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkNLRI, _impl_.remote_node_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsLinkNLRI, _impl_.link_descriptor_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixV4NLRI, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixV4NLRI, _impl_.local_node_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixV4NLRI, _impl_.prefix_descriptor_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixV6NLRI, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixV6NLRI, _impl_.local_node_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixV6NLRI, _impl_.prefix_descriptor_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsAddrPrefix, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsAddrPrefix, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAddrPrefix, _impl_.nlri_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAddrPrefix, _impl_.length_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAddrPrefix, _impl_.protocol_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAddrPrefix, _impl_.identifier_),
        1,
        0,
        2,
        4,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MUPInterworkSegmentDiscoveryRoute, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MUPInterworkSegmentDiscoveryRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPInterworkSegmentDiscoveryRoute, _impl_.prefix_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MUPDirectSegmentDiscoveryRoute, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MUPDirectSegmentDiscoveryRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPDirectSegmentDiscoveryRoute, _impl_.address_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.prefix_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.prefix_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.teid_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.qfi_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.endpoint_address_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType1SessionTransformedRoute, _impl_.endpoint_address_),
        2,
        3,
        0,
        4,
        5,
        6,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType2SessionTransformedRoute, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType2SessionTransformedRoute, _impl_.rd_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType2SessionTransformedRoute, _impl_.endpoint_address_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType2SessionTransformedRoute, _impl_.endpoint_address_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPType2SessionTransformedRoute, _impl_.teid_),
        1,
        2,
        0,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.family_),
        PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.next_hops_),
        PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.nlris_),
        2,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MpUnreachNLRIAttribute, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MpUnreachNLRIAttribute, _impl_.family_),
        PROTOBUF_FIELD_OFFSET(::apipb::MpUnreachNLRIAttribute, _impl_.nlris_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TwoOctetAsSpecificExtended, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TwoOctetAsSpecificExtended, _impl_.is_transitive_),
        PROTOBUF_FIELD_OFFSET(::apipb::TwoOctetAsSpecificExtended, _impl_.sub_type_),
        PROTOBUF_FIELD_OFFSET(::apipb::TwoOctetAsSpecificExtended, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::TwoOctetAsSpecificExtended, _impl_.local_admin_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::IPv4AddressSpecificExtended, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::IPv4AddressSpecificExtended, _impl_.is_transitive_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPv4AddressSpecificExtended, _impl_.sub_type_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPv4AddressSpecificExtended, _impl_.address_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPv4AddressSpecificExtended, _impl_.local_admin_),
        1,
        2,
        0,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::FourOctetAsSpecificExtended, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::FourOctetAsSpecificExtended, _impl_.is_transitive_),
        PROTOBUF_FIELD_OFFSET(::apipb::FourOctetAsSpecificExtended, _impl_.sub_type_),
        PROTOBUF_FIELD_OFFSET(::apipb::FourOctetAsSpecificExtended, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::FourOctetAsSpecificExtended, _impl_.local_admin_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LinkBandwidthExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LinkBandwidthExtended, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::LinkBandwidthExtended, _impl_.bandwidth_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::ValidationExtended, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::ValidationExtended, _impl_.state_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::ColorExtended, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::ColorExtended, _impl_.color_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::EncapExtended, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::EncapExtended, _impl_.tunnel_type_),
        0,
        0x000, // bitmap
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::OpaqueExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::OpaqueExtended, _impl_.is_transitive_),
        PROTOBUF_FIELD_OFFSET(::apipb::OpaqueExtended, _impl_.value_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::ESILabelExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::ESILabelExtended, _impl_.is_single_active_),
        PROTOBUF_FIELD_OFFSET(::apipb::ESILabelExtended, _impl_.label_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::ESImportRouteTarget, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::ESImportRouteTarget, _impl_.es_import_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MacMobilityExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MacMobilityExtended, _impl_.is_sticky_),
        PROTOBUF_FIELD_OFFSET(::apipb::MacMobilityExtended, _impl_.sequence_num_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RouterMacExtended, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RouterMacExtended, _impl_.mac_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficRateExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficRateExtended, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficRateExtended, _impl_.rate_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficActionExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficActionExtended, _impl_.terminal_),
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficActionExtended, _impl_.sample_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectTwoOctetAsSpecificExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectTwoOctetAsSpecificExtended, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectTwoOctetAsSpecificExtended, _impl_.local_admin_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectIPv4AddressSpecificExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectIPv4AddressSpecificExtended, _impl_.address_),
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectIPv4AddressSpecificExtended, _impl_.local_admin_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectFourOctetAsSpecificExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectFourOctetAsSpecificExtended, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectFourOctetAsSpecificExtended, _impl_.local_admin_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficRemarkExtended, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TrafficRemarkExtended, _impl_.dscp_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::MUPExtended, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::MUPExtended, _impl_.sub_type_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPExtended, _impl_.segment_id2_),
        PROTOBUF_FIELD_OFFSET(::apipb::MUPExtended, _impl_.segment_id4_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownExtended, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownExtended, _impl_.value_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::ExtendedCommunitiesAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::ExtendedCommunitiesAttribute, _impl_.communities_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::As4PathAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::As4PathAttribute, _impl_.segments_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::As4AggregatorAttribute, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::As4AggregatorAttribute, _impl_.asn_),
        PROTOBUF_FIELD_OFFSET(::apipb::As4AggregatorAttribute, _impl_.address_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::PmsiTunnelAttribute, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::PmsiTunnelAttribute, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::PmsiTunnelAttribute, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::PmsiTunnelAttribute, _impl_.label_),
        PROTOBUF_FIELD_OFFSET(::apipb::PmsiTunnelAttribute, _impl_.id_),
        1,
        2,
        3,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVEncapsulation, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVEncapsulation, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVEncapsulation, _impl_.cookie_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVProtocol, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVProtocol, _impl_.protocol_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVColor, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVColor, _impl_.color_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRPreference, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRPreference, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRPreference, _impl_.preference_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRCandidatePathName, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRCandidatePathName, _impl_.candidate_path_name_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRPriority, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRPriority, _impl_.priority_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRBindingSID, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRBindingSID, _impl_.bsid_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRBindingSID, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRBindingSID, _impl_.s_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRBindingSID, _impl_.i_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRBindingSID, _impl_.sid_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6EndPointBehavior, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6EndPointBehavior, _impl_.behavior_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6EndPointBehavior, _impl_.block_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6EndPointBehavior, _impl_.node_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6EndPointBehavior, _impl_.func_len_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6EndPointBehavior, _impl_.arg_len_),
        0,
        1,
        2,
        3,
        4,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6BindingSID, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6BindingSID, _impl_.s_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6BindingSID, _impl_.i_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6BindingSID, _impl_.b_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6BindingSID, _impl_.sid_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6BindingSID, _impl_.endpoint_behavior_structure_),
        2,
        3,
        4,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRENLP, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRENLP, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRENLP, _impl_.enlp_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRWeight, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRWeight, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRWeight, _impl_.weight_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentFlags, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentFlags, _impl_.v_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentFlags, _impl_.a_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentFlags, _impl_.s_flag_),
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentFlags, _impl_.b_flag_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeA, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeA, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeA, _impl_.label_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeB, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeB, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeB, _impl_.sid_),
        PROTOBUF_FIELD_OFFSET(::apipb::SegmentTypeB, _impl_.endpoint_behavior_structure_),
        1,
        0,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRSegmentList, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRSegmentList, _impl_.weight_),
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRSegmentList, _impl_.segments_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVEgressEndpoint, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVEgressEndpoint, _impl_.address_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVUDPDestPort, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVUDPDestPort, _impl_.port_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVUnknown, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVUnknown, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVUnknown, _impl_.value_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapTLV, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapTLV, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapTLV, _impl_.tlvs_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapAttribute, _impl_.tlvs_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::IPv6AddressSpecificExtended, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::IPv6AddressSpecificExtended, _impl_.is_transitive_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPv6AddressSpecificExtended, _impl_.sub_type_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPv6AddressSpecificExtended, _impl_.address_),
        PROTOBUF_FIELD_OFFSET(::apipb::IPv6AddressSpecificExtended, _impl_.local_admin_),
        1,
        2,
        0,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectIPv6AddressSpecificExtended, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectIPv6AddressSpecificExtended, _impl_.address_),
        PROTOBUF_FIELD_OFFSET(::apipb::RedirectIPv6AddressSpecificExtended, _impl_.local_admin_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::IP6ExtendedCommunitiesAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::IP6ExtendedCommunitiesAttribute, _impl_.communities_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::AigpTLVIGPMetric, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::AigpTLVIGPMetric, _impl_.metric_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::AigpTLVUnknown, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::AigpTLVUnknown, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::AigpTLVUnknown, _impl_.value_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::AigpAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::AigpAttribute, _impl_.tlvs_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunity, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunity, _impl_.global_admin_),
        PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunity, _impl_.local_data1_),
        PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunity, _impl_.local_data2_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunitiesAttribute, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunitiesAttribute, _impl_.communities_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_.overload_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_.attached_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_.external_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_.abr_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_.router_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsNodeFlags, _impl_.v6_),
        0,
        1,
        2,
        3,
        4,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsIGPFlags, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsIGPFlags, _impl_.down_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsIGPFlags, _impl_.no_unicast_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsIGPFlags, _impl_.local_address_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsIGPFlags, _impl_.propagate_nssa_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrRange, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrRange, _impl_.begin_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrRange, _impl_.end_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_.ipv4_supported_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_.ipv6_supported_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_.ranges_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrLocalBlock, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsSrLocalBlock, _impl_.ranges_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_._has_bits_),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.local_router_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.local_router_id_v6_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.isis_area_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.opaque_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.sr_capabilities_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.sr_algorithms_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeNode, _impl_.sr_local_block_),
        0,
        6,
        1,
        2,
        3,
        4,
        7,
        5,
        8,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_._has_bits_),
        17, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.local_router_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.local_router_id_v6_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.remote_router_id_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.remote_router_id_v6_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.admin_group_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.default_te_metric_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.igp_metric_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.opaque_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.bandwidth_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.reservable_bandwidth_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.unreserved_bandwidth_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.sr_adjacency_sid_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.srlgs_),
        2,
        3,
        4,
        5,
        6,
        8,
        9,
        10,
        7,
        11,
        12,
        0,
        13,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributePrefix, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributePrefix, _impl_.igp_flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributePrefix, _impl_.opaque_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributePrefix, _impl_.sr_prefix_sid_),
        1,
        0,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSIDFlags, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSIDFlags, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSIDFlags, _impl_.local_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSIDFlags, _impl_.backup_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSIDFlags, _impl_.persistent_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSID, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSID, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSID, _impl_.weight_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsBgpPeerSegmentSID, _impl_.sid_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeBgpPeerSegment, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeBgpPeerSegment, _impl_.bgp_peer_node_sid_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeBgpPeerSegment, _impl_.bgp_peer_adjacency_sid_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeBgpPeerSegment, _impl_.bgp_peer_set_sid_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttribute, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttribute, _impl_.node_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttribute, _impl_.link_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttribute, _impl_.prefix_),
        PROTOBUF_FIELD_OFFSET(::apipb::LsAttribute, _impl_.bgp_peer_segment_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownAttribute, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownAttribute, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownAttribute, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::apipb::UnknownAttribute, _impl_.value_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_.locator_block_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_.locator_node_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_.function_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_.argument_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_.transposition_length_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6StructureSubSubTLV, _impl_.transposition_offset_),
        0,
        1,
        2,
        3,
        4,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6SIDFlags, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6SIDFlags, _impl_.flag_1_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6TLV, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6TLV, _impl_.tlv_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.sid_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.endpoint_behavior_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.sub_sub_tlvs_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV, _impl_.sub_tlvs_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.key_),
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV, _impl_.sub_tlvs_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::apipb::PrefixSID, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::apipb::PrefixSID, _impl_.tlvs_),
        0,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::apipb::OriginAttribute)},
        {5, sizeof(::apipb::AsSegment)},
        {12, sizeof(::apipb::AsPathAttribute)},
        {17, sizeof(::apipb::NextHopAttribute)},
        {22, sizeof(::apipb::MultiExitDiscAttribute)},
        {27, sizeof(::apipb::LocalPrefAttribute)},
        {32, sizeof(::apipb::AtomicAggregateAttribute)},
        {33, sizeof(::apipb::AggregatorAttribute)},
        {40, sizeof(::apipb::CommunitiesAttribute)},
        {45, sizeof(::apipb::OriginatorIdAttribute)},
        {50, sizeof(::apipb::ClusterListAttribute)},
        {55, sizeof(::apipb::IPAddressPrefix)},
        {62, sizeof(::apipb::LabeledIPAddressPrefix)},
        {71, sizeof(::apipb::EncapsulationNLRI)},
        {76, sizeof(::apipb::RouteDistinguisherTwoOctetASN)},
        {83, sizeof(::apipb::RouteDistinguisherIPAddress)},
        {90, sizeof(::apipb::RouteDistinguisherFourOctetASN)},
        {97, sizeof(::apipb::EthernetSegmentIdentifier)},
        {104, sizeof(::apipb::EVPNEthernetAutoDiscoveryRoute)},
        {115, sizeof(::apipb::EVPNMACIPAdvertisementRoute)},
        {130, sizeof(::apipb::EVPNInclusiveMulticastEthernetTagRoute)},
        {139, sizeof(::apipb::EVPNEthernetSegmentRoute)},
        {148, sizeof(::apipb::EVPNIPPrefixRoute)},
        {165, sizeof(::apipb::EVPNIPMSIRoute)},
        {174, sizeof(::apipb::SRPolicyNLRI)},
        {185, sizeof(::apipb::LabeledVPNIPAddressPrefix)},
        {196, sizeof(::apipb::RouteTargetMembershipNLRI)},
        {203, sizeof(::apipb::FlowSpecIPPrefix)},
        {214, sizeof(::apipb::FlowSpecMAC)},
        {221, sizeof(::apipb::FlowSpecComponentItem)},
        {228, sizeof(::apipb::FlowSpecComponent)},
        {235, sizeof(::apipb::FlowSpecNLRI)},
        {240, sizeof(::apipb::VPNFlowSpecNLRI)},
        {247, sizeof(::apipb::OpaqueNLRI)},
        {254, sizeof(::apipb::LsNodeDescriptor)},
        {271, sizeof(::apipb::LsLinkDescriptor)},
        {286, sizeof(::apipb::LsPrefixDescriptor)},
        {293, sizeof(::apipb::LsNodeNLRI)},
        {298, sizeof(::apipb::LsLinkNLRI)},
        {307, sizeof(::apipb::LsPrefixV4NLRI)},
        {314, sizeof(::apipb::LsPrefixV6NLRI)},
        {321, sizeof(::apipb::LsAddrPrefix)},
        {334, sizeof(::apipb::MUPInterworkSegmentDiscoveryRoute)},
        {341, sizeof(::apipb::MUPDirectSegmentDiscoveryRoute)},
        {348, sizeof(::apipb::MUPType1SessionTransformedRoute)},
        {365, sizeof(::apipb::MUPType2SessionTransformedRoute)},
        {376, sizeof(::apipb::MpReachNLRIAttribute)},
        {385, sizeof(::apipb::MpUnreachNLRIAttribute)},
        {392, sizeof(::apipb::TwoOctetAsSpecificExtended)},
        {403, sizeof(::apipb::IPv4AddressSpecificExtended)},
        {414, sizeof(::apipb::FourOctetAsSpecificExtended)},
        {425, sizeof(::apipb::LinkBandwidthExtended)},
        {432, sizeof(::apipb::ValidationExtended)},
        {437, sizeof(::apipb::ColorExtended)},
        {442, sizeof(::apipb::EncapExtended)},
        {447, sizeof(::apipb::DefaultGatewayExtended)},
        {448, sizeof(::apipb::OpaqueExtended)},
        {455, sizeof(::apipb::ESILabelExtended)},
        {462, sizeof(::apipb::ESImportRouteTarget)},
        {467, sizeof(::apipb::MacMobilityExtended)},
        {474, sizeof(::apipb::RouterMacExtended)},
        {479, sizeof(::apipb::TrafficRateExtended)},
        {486, sizeof(::apipb::TrafficActionExtended)},
        {493, sizeof(::apipb::RedirectTwoOctetAsSpecificExtended)},
        {500, sizeof(::apipb::RedirectIPv4AddressSpecificExtended)},
        {507, sizeof(::apipb::RedirectFourOctetAsSpecificExtended)},
        {514, sizeof(::apipb::TrafficRemarkExtended)},
        {519, sizeof(::apipb::MUPExtended)},
        {528, sizeof(::apipb::UnknownExtended)},
        {535, sizeof(::apipb::ExtendedCommunitiesAttribute)},
        {540, sizeof(::apipb::As4PathAttribute)},
        {545, sizeof(::apipb::As4AggregatorAttribute)},
        {552, sizeof(::apipb::PmsiTunnelAttribute)},
        {563, sizeof(::apipb::TunnelEncapSubTLVEncapsulation)},
        {570, sizeof(::apipb::TunnelEncapSubTLVProtocol)},
        {575, sizeof(::apipb::TunnelEncapSubTLVColor)},
        {580, sizeof(::apipb::TunnelEncapSubTLVSRPreference)},
        {587, sizeof(::apipb::TunnelEncapSubTLVSRCandidatePathName)},
        {592, sizeof(::apipb::TunnelEncapSubTLVSRPriority)},
        {597, sizeof(::apipb::TunnelEncapSubTLVSRBindingSID)},
        {602, sizeof(::apipb::SRBindingSID)},
        {611, sizeof(::apipb::SRv6EndPointBehavior)},
        {624, sizeof(::apipb::SRv6BindingSID)},
        {637, sizeof(::apipb::TunnelEncapSubTLVSRENLP)},
        {644, sizeof(::apipb::SRWeight)},
        {651, sizeof(::apipb::SegmentFlags)},
        {662, sizeof(::apipb::SegmentTypeA)},
        {669, sizeof(::apipb::SegmentTypeB)},
        {678, sizeof(::apipb::TunnelEncapSubTLVSRSegmentList)},
        {685, sizeof(::apipb::TunnelEncapSubTLVEgressEndpoint)},
        {690, sizeof(::apipb::TunnelEncapSubTLVUDPDestPort)},
        {695, sizeof(::apipb::TunnelEncapSubTLVUnknown)},
        {702, sizeof(::apipb::TunnelEncapTLV)},
        {709, sizeof(::apipb::TunnelEncapAttribute)},
        {714, sizeof(::apipb::IPv6AddressSpecificExtended)},
        {725, sizeof(::apipb::RedirectIPv6AddressSpecificExtended)},
        {732, sizeof(::apipb::IP6ExtendedCommunitiesAttribute)},
        {737, sizeof(::apipb::AigpTLVIGPMetric)},
        {742, sizeof(::apipb::AigpTLVUnknown)},
        {749, sizeof(::apipb::AigpAttribute)},
        {754, sizeof(::apipb::LargeCommunity)},
        {763, sizeof(::apipb::LargeCommunitiesAttribute)},
        {768, sizeof(::apipb::LsNodeFlags)},
        {783, sizeof(::apipb::LsIGPFlags)},
        {794, sizeof(::apipb::LsSrRange)},
        {801, sizeof(::apipb::LsSrCapabilities)},
        {810, sizeof(::apipb::LsSrLocalBlock)},
        {815, sizeof(::apipb::LsAttributeNode)},
        {836, sizeof(::apipb::LsAttributeLink)},
        {867, sizeof(::apipb::LsAttributePrefix)},
        {876, sizeof(::apipb::LsBgpPeerSegmentSIDFlags)},
        {887, sizeof(::apipb::LsBgpPeerSegmentSID)},
        {896, sizeof(::apipb::LsAttributeBgpPeerSegment)},
        {905, sizeof(::apipb::LsAttribute)},
        {916, sizeof(::apipb::UnknownAttribute)},
        {925, sizeof(::apipb::SRv6StructureSubSubTLV)},
        {940, sizeof(::apipb::SRv6SIDFlags)},
        {945, sizeof(::apipb::SRv6TLV)},
        {950, sizeof(::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse)},
        {957, sizeof(::apipb::SRv6InformationSubTLV)},
        {968, sizeof(::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse)},
        {975, sizeof(::apipb::SRv6L3ServiceTLV)},
        {980, sizeof(::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse)},
        {987, sizeof(::apipb::SRv6L2ServiceTLV)},
        {992, sizeof(::apipb::PrefixSID)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::apipb::OriginAttribute_globals_,
        &::apipb::AsSegment_globals_,
        &::apipb::AsPathAttribute_globals_,
        &::apipb::NextHopAttribute_globals_,
        &::apipb::MultiExitDiscAttribute_globals_,
        &::apipb::LocalPrefAttribute_globals_,
        &::apipb::AtomicAggregateAttribute_globals_,
        &::apipb::AggregatorAttribute_globals_,
        &::apipb::CommunitiesAttribute_globals_,
        &::apipb::OriginatorIdAttribute_globals_,
        &::apipb::ClusterListAttribute_globals_,
        &::apipb::IPAddressPrefix_globals_,
        &::apipb::LabeledIPAddressPrefix_globals_,
        &::apipb::EncapsulationNLRI_globals_,
        &::apipb::RouteDistinguisherTwoOctetASN_globals_,
        &::apipb::RouteDistinguisherIPAddress_globals_,
        &::apipb::RouteDistinguisherFourOctetASN_globals_,
        &::apipb::EthernetSegmentIdentifier_globals_,
        &::apipb::EVPNEthernetAutoDiscoveryRoute_globals_,
        &::apipb::EVPNMACIPAdvertisementRoute_globals_,
        &::apipb::EVPNInclusiveMulticastEthernetTagRoute_globals_,
        &::apipb::EVPNEthernetSegmentRoute_globals_,
        &::apipb::EVPNIPPrefixRoute_globals_,
        &::apipb::EVPNIPMSIRoute_globals_,
        &::apipb::SRPolicyNLRI_globals_,
        &::apipb::LabeledVPNIPAddressPrefix_globals_,
        &::apipb::RouteTargetMembershipNLRI_globals_,
        &::apipb::FlowSpecIPPrefix_globals_,
        &::apipb::FlowSpecMAC_globals_,
        &::apipb::FlowSpecComponentItem_globals_,
        &::apipb::FlowSpecComponent_globals_,
        &::apipb::FlowSpecNLRI_globals_,
        &::apipb::VPNFlowSpecNLRI_globals_,
        &::apipb::OpaqueNLRI_globals_,
        &::apipb::LsNodeDescriptor_globals_,
        &::apipb::LsLinkDescriptor_globals_,
        &::apipb::LsPrefixDescriptor_globals_,
        &::apipb::LsNodeNLRI_globals_,
        &::apipb::LsLinkNLRI_globals_,
        &::apipb::LsPrefixV4NLRI_globals_,
        &::apipb::LsPrefixV6NLRI_globals_,
        &::apipb::LsAddrPrefix_globals_,
        &::apipb::MUPInterworkSegmentDiscoveryRoute_globals_,
        &::apipb::MUPDirectSegmentDiscoveryRoute_globals_,
        &::apipb::MUPType1SessionTransformedRoute_globals_,
        &::apipb::MUPType2SessionTransformedRoute_globals_,
        &::apipb::MpReachNLRIAttribute_globals_,
        &::apipb::MpUnreachNLRIAttribute_globals_,
        &::apipb::TwoOctetAsSpecificExtended_globals_,
        &::apipb::IPv4AddressSpecificExtended_globals_,
        &::apipb::FourOctetAsSpecificExtended_globals_,
        &::apipb::LinkBandwidthExtended_globals_,
        &::apipb::ValidationExtended_globals_,
        &::apipb::ColorExtended_globals_,
        &::apipb::EncapExtended_globals_,
        &::apipb::DefaultGatewayExtended_globals_,
        &::apipb::OpaqueExtended_globals_,
        &::apipb::ESILabelExtended_globals_,
        &::apipb::ESImportRouteTarget_globals_,
        &::apipb::MacMobilityExtended_globals_,
        &::apipb::RouterMacExtended_globals_,
        &::apipb::TrafficRateExtended_globals_,
        &::apipb::TrafficActionExtended_globals_,
        &::apipb::RedirectTwoOctetAsSpecificExtended_globals_,
        &::apipb::RedirectIPv4AddressSpecificExtended_globals_,
        &::apipb::RedirectFourOctetAsSpecificExtended_globals_,
        &::apipb::TrafficRemarkExtended_globals_,
        &::apipb::MUPExtended_globals_,
        &::apipb::UnknownExtended_globals_,
        &::apipb::ExtendedCommunitiesAttribute_globals_,
        &::apipb::As4PathAttribute_globals_,
        &::apipb::As4AggregatorAttribute_globals_,
        &::apipb::PmsiTunnelAttribute_globals_,
        &::apipb::TunnelEncapSubTLVEncapsulation_globals_,
        &::apipb::TunnelEncapSubTLVProtocol_globals_,
        &::apipb::TunnelEncapSubTLVColor_globals_,
        &::apipb::TunnelEncapSubTLVSRPreference_globals_,
        &::apipb::TunnelEncapSubTLVSRCandidatePathName_globals_,
        &::apipb::TunnelEncapSubTLVSRPriority_globals_,
        &::apipb::TunnelEncapSubTLVSRBindingSID_globals_,
        &::apipb::SRBindingSID_globals_,
        &::apipb::SRv6EndPointBehavior_globals_,
        &::apipb::SRv6BindingSID_globals_,
        &::apipb::TunnelEncapSubTLVSRENLP_globals_,
        &::apipb::SRWeight_globals_,
        &::apipb::SegmentFlags_globals_,
        &::apipb::SegmentTypeA_globals_,
        &::apipb::SegmentTypeB_globals_,
        &::apipb::TunnelEncapSubTLVSRSegmentList_globals_,
        &::apipb::TunnelEncapSubTLVEgressEndpoint_globals_,
        &::apipb::TunnelEncapSubTLVUDPDestPort_globals_,
        &::apipb::TunnelEncapSubTLVUnknown_globals_,
        &::apipb::TunnelEncapTLV_globals_,
        &::apipb::TunnelEncapAttribute_globals_,
        &::apipb::IPv6AddressSpecificExtended_globals_,
        &::apipb::RedirectIPv6AddressSpecificExtended_globals_,
        &::apipb::IP6ExtendedCommunitiesAttribute_globals_,
        &::apipb::AigpTLVIGPMetric_globals_,
        &::apipb::AigpTLVUnknown_globals_,
        &::apipb::AigpAttribute_globals_,
        &::apipb::LargeCommunity_globals_,
        &::apipb::LargeCommunitiesAttribute_globals_,
        &::apipb::LsNodeFlags_globals_,
        &::apipb::LsIGPFlags_globals_,
        &::apipb::LsSrRange_globals_,
        &::apipb::LsSrCapabilities_globals_,
        &::apipb::LsSrLocalBlock_globals_,
        &::apipb::LsAttributeNode_globals_,
        &::apipb::LsAttributeLink_globals_,
        &::apipb::LsAttributePrefix_globals_,
        &::apipb::LsBgpPeerSegmentSIDFlags_globals_,
        &::apipb::LsBgpPeerSegmentSID_globals_,
        &::apipb::LsAttributeBgpPeerSegment_globals_,
        &::apipb::LsAttribute_globals_,
        &::apipb::UnknownAttribute_globals_,
        &::apipb::SRv6StructureSubSubTLV_globals_,
        &::apipb::SRv6SIDFlags_globals_,
        &::apipb::SRv6TLV_globals_,
        &::apipb::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_globals_,
        &::apipb::SRv6InformationSubTLV_globals_,
        &::apipb::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_,
        &::apipb::SRv6L3ServiceTLV_globals_,
        &::apipb::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_,
        &::apipb::SRv6L2ServiceTLV_globals_,
        &::apipb::PrefixSID_globals_,
};
const char descriptor_table_protodef_attribute_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\017attribute.proto\022\005apipb\032\031google/protobu"
    "f/any.proto\032\013gobgp.proto\"!\n\017OriginAttrib"
    "ute\022\016\n\006origin\030\001 \001(\r\"\236\001\n\tAsSegment\022#\n\004typ"
    "e\030\001 \001(\0162\025.apipb.AsSegment.Type\022\017\n\007number"
    "s\030\002 \003(\r\"[\n\004Type\022\013\n\007UNKNOWN\020\000\022\n\n\006AS_SET\020\001"
    "\022\017\n\013AS_SEQUENCE\020\002\022\026\n\022AS_CONFED_SEQUENCE\020"
    "\003\022\021\n\rAS_CONFED_SET\020\004\"5\n\017AsPathAttribute\022"
    "\"\n\010segments\030\001 \003(\0132\020.apipb.AsSegment\"$\n\020N"
    "extHopAttribute\022\020\n\010next_hop\030\001 \001(\t\"%\n\026Mul"
    "tiExitDiscAttribute\022\013\n\003med\030\001 \001(\r\"(\n\022Loca"
    "lPrefAttribute\022\022\n\nlocal_pref\030\001 \001(\r\"\032\n\030At"
    "omicAggregateAttribute\"3\n\023AggregatorAttr"
    "ibute\022\013\n\003asn\030\001 \001(\r\022\017\n\007address\030\002 \001(\t\"+\n\024C"
    "ommunitiesAttribute\022\023\n\013communities\030\001 \003(\r"
    "\"#\n\025OriginatorIdAttribute\022\n\n\002id\030\001 \001(\t\"#\n"
    "\024ClusterListAttribute\022\013\n\003ids\030\001 \003(\t\"5\n\017IP"
    "AddressPrefix\022\022\n\nprefix_len\030\001 \001(\r\022\016\n\006pre"
    "fix\030\002 \001(\t\"L\n\026LabeledIPAddressPrefix\022\016\n\006l"
    "abels\030\001 \003(\r\022\022\n\nprefix_len\030\002 \001(\r\022\016\n\006prefi"
    "x\030\003 \001(\t\"$\n\021EncapsulationNLRI\022\017\n\007address\030"
    "\001 \001(\t\"@\n\035RouteDistinguisherTwoOctetASN\022\r"
    "\n\005admin\030\001 \001(\r\022\020\n\010assigned\030\002 \001(\r\">\n\033Route"
    "DistinguisherIPAddress\022\r\n\005admin\030\001 \001(\t\022\020\n"
    "\010assigned\030\002 \001(\r\"A\n\036RouteDistinguisherFou"
    "rOctetASN\022\r\n\005admin\030\001 \001(\r\022\020\n\010assigned\030\002 \001"
    "(\r\"8\n\031EthernetSegmentIdentifier\022\014\n\004type\030"
    "\001 \001(\r\022\r\n\005value\030\002 \001(\014\"\226\001\n\036EVPNEthernetAut"
    "oDiscoveryRoute\022 \n\002rd\030\001 \001(\0132\024.google.pro"
    "tobuf.Any\022-\n\003esi\030\002 \001(\0132 .apipb.EthernetS"
    "egmentIdentifier\022\024\n\014ethernet_tag\030\003 \001(\r\022\r"
    "\n\005label\030\004 \001(\r\"\275\001\n\033EVPNMACIPAdvertisement"
    "Route\022 \n\002rd\030\001 \001(\0132\024.google.protobuf.Any\022"
    "-\n\003esi\030\002 \001(\0132 .apipb.EthernetSegmentIden"
    "tifier\022\024\n\014ethernet_tag\030\003 \001(\r\022\023\n\013mac_addr"
    "ess\030\004 \001(\t\022\022\n\nip_address\030\005 \001(\t\022\016\n\006labels\030"
    "\006 \003(\r\"t\n&EVPNInclusiveMulticastEthernetT"
    "agRoute\022 \n\002rd\030\001 \001(\0132\024.google.protobuf.An"
    "y\022\024\n\014ethernet_tag\030\002 \001(\r\022\022\n\nip_address\030\003 "
    "\001(\t\"\177\n\030EVPNEthernetSegmentRoute\022 \n\002rd\030\001 "
    "\001(\0132\024.google.protobuf.Any\022-\n\003esi\030\002 \001(\0132 "
    ".apipb.EthernetSegmentIdentifier\022\022\n\nip_a"
    "ddress\030\003 \001(\t\"\307\001\n\021EVPNIPPrefixRoute\022 \n\002rd"
    "\030\001 \001(\0132\024.google.protobuf.Any\022-\n\003esi\030\002 \001("
    "\0132 .apipb.EthernetSegmentIdentifier\022\024\n\014e"
    "thernet_tag\030\003 \001(\r\022\021\n\tip_prefix\030\004 \001(\t\022\025\n\r"
    "ip_prefix_len\030\005 \001(\r\022\022\n\ngw_address\030\006 \001(\t\022"
    "\r\n\005label\030\007 \001(\r\"j\n\016EVPNIPMSIRoute\022 \n\002rd\030\001"
    " \001(\0132\024.google.protobuf.Any\022\024\n\014ethernet_t"
    "ag\030\002 \001(\r\022 \n\002rt\030\003 \001(\0132\024.google.protobuf.A"
    "ny\"V\n\014SRPolicyNLRI\022\016\n\006length\030\001 \001(\r\022\025\n\rdi"
    "stinguisher\030\002 \001(\r\022\r\n\005color\030\003 \001(\r\022\020\n\010endp"
    "oint\030\004 \001(\014\"q\n\031LabeledVPNIPAddressPrefix\022"
    "\016\n\006labels\030\001 \003(\r\022 \n\002rd\030\002 \001(\0132\024.google.pro"
    "tobuf.Any\022\022\n\nprefix_len\030\003 \001(\r\022\016\n\006prefix\030"
    "\004 \001(\t\"J\n\031RouteTargetMembershipNLRI\022\013\n\003as"
    "n\030\001 \001(\r\022 \n\002rt\030\002 \001(\0132\024.google.protobuf.An"
    "y\"T\n\020FlowSpecIPPrefix\022\014\n\004type\030\001 \001(\r\022\022\n\np"
    "refix_len\030\002 \001(\r\022\016\n\006prefix\030\003 \001(\t\022\016\n\006offse"
    "t\030\004 \001(\r\",\n\013FlowSpecMAC\022\014\n\004type\030\001 \001(\r\022\017\n\007"
    "address\030\002 \001(\t\"2\n\025FlowSpecComponentItem\022\n"
    "\n\002op\030\001 \001(\r\022\r\n\005value\030\002 \001(\004\"N\n\021FlowSpecCom"
    "ponent\022\014\n\004type\030\001 \001(\r\022+\n\005items\030\002 \003(\0132\034.ap"
    "ipb.FlowSpecComponentItem\"3\n\014FlowSpecNLR"
    "I\022#\n\005rules\030\001 \003(\0132\024.google.protobuf.Any\"X"
    "\n\017VPNFlowSpecNLRI\022 \n\002rd\030\001 \001(\0132\024.google.p"
    "rotobuf.Any\022#\n\005rules\030\002 \003(\0132\024.google.prot"
    "obuf.Any\"(\n\nOpaqueNLRI\022\013\n\003key\030\001 \001(\014\022\r\n\005v"
    "alue\030\002 \001(\014\"\254\001\n\020LsNodeDescriptor\022\013\n\003asn\030\001"
    " \001(\r\022\021\n\tbgp_ls_id\030\002 \001(\r\022\024\n\014ospf_area_id\030"
    "\003 \001(\r\022\022\n\npseudonode\030\004 \001(\010\022\025\n\rigp_router_"
    "id\030\005 \001(\t\022\025\n\rbgp_router_id\030\006 \001(\t\022 \n\030bgp_c"
    "onfederation_member\030\007 \001(\r\"\263\001\n\020LsLinkDesc"
    "riptor\022\025\n\rlink_local_id\030\001 \001(\r\022\026\n\016link_re"
    "mote_id\030\002 \001(\r\022\033\n\023interface_addr_ipv4\030\003 \001"
    "(\t\022\032\n\022neighbor_addr_ipv4\030\004 \001(\t\022\033\n\023interf"
    "ace_addr_ipv6\030\005 \001(\t\022\032\n\022neighbor_addr_ipv"
    "6\030\006 \001(\t\"^\n\022LsPrefixDescriptor\022\027\n\017ip_reac"
    "hability\030\001 \003(\t\022/\n\017ospf_route_type\030\002 \001(\0162"
    "\026.apipb.LsOspfRouteType\"9\n\nLsNodeNLRI\022+\n"
    "\nlocal_node\030\001 \001(\0132\027.apipb.LsNodeDescript"
    "or\"\231\001\n\nLsLinkNLRI\022+\n\nlocal_node\030\001 \001(\0132\027."
    "apipb.LsNodeDescriptor\022,\n\013remote_node\030\002 "
    "\001(\0132\027.apipb.LsNodeDescriptor\0220\n\017link_des"
    "criptor\030\003 \001(\0132\027.apipb.LsLinkDescriptor\"s"
    "\n\016LsPrefixV4NLRI\022+\n\nlocal_node\030\001 \001(\0132\027.a"
    "pipb.LsNodeDescriptor\0224\n\021prefix_descript"
    "or\030\002 \001(\0132\031.apipb.LsPrefixDescriptor\"s\n\016L"
    "sPrefixV6NLRI\022+\n\nlocal_node\030\001 \001(\0132\027.apip"
    "b.LsNodeDescriptor\0224\n\021prefix_descriptor\030"
    "\002 \001(\0132\031.apipb.LsPrefixDescriptor\"\241\001\n\014LsA"
    "ddrPrefix\022\037\n\004type\030\001 \001(\0162\021.apipb.LsNLRITy"
    "pe\022\"\n\004nlri\030\002 \001(\0132\024.google.protobuf.Any\022\016"
    "\n\006length\030\003 \001(\r\022(\n\013protocol_id\030\004 \001(\0162\023.ap"
    "ipb.LsProtocolID\022\022\n\nidentifier\030\005 \001(\004\"U\n!"
    "MUPInterworkSegmentDiscoveryRoute\022 \n\002rd\030"
    "\001 \001(\0132\024.google.protobuf.Any\022\016\n\006prefix\030\002 "
    "\001(\t\"S\n\036MUPDirectSegmentDiscoveryRoute\022 \n"
    "\002rd\030\001 \001(\0132\024.google.protobuf.Any\022\017\n\007addre"
    "ss\030\002 \001(\t\"\304\001\n\037MUPType1SessionTransformedR"
    "oute\022 \n\002rd\030\001 \001(\0132\024.google.protobuf.Any\022\031"
    "\n\rprefix_length\030\002 \001(\rB\002\030\001\022\016\n\006prefix\030\003 \001("
    "\t\022\014\n\004teid\030\004 \001(\r\022\013\n\003qfi\030\005 \001(\r\022\037\n\027endpoint"
    "_address_length\030\006 \001(\r\022\030\n\020endpoint_addres"
    "s\030\007 \001(\t\"\214\001\n\037MUPType2SessionTransformedRo"
    "ute\022 \n\002rd\030\001 \001(\0132\024.google.protobuf.Any\022\037\n"
    "\027endpoint_address_length\030\002 \001(\r\022\030\n\020endpoi"
    "nt_address\030\003 \001(\t\022\014\n\004teid\030\004 \001(\r\"m\n\024MpReac"
    "hNLRIAttribute\022\035\n\006family\030\001 \001(\0132\r.apipb.F"
    "amily\022\021\n\tnext_hops\030\002 \003(\t\022#\n\005nlris\030\003 \003(\0132"
    "\024.google.protobuf.Any\"\\\n\026MpUnreachNLRIAt"
    "tribute\022\035\n\006family\030\001 \001(\0132\r.apipb.Family\022#"
    "\n\005nlris\030\003 \003(\0132\024.google.protobuf.Any\"g\n\032T"
    "woOctetAsSpecificExtended\022\025\n\ris_transiti"
    "ve\030\001 \001(\010\022\020\n\010sub_type\030\002 \001(\r\022\013\n\003asn\030\003 \001(\r\022"
    "\023\n\013local_admin\030\004 \001(\r\"l\n\033IPv4AddressSpeci"
    "ficExtended\022\025\n\ris_transitive\030\001 \001(\010\022\020\n\010su"
    "b_type\030\002 \001(\r\022\017\n\007address\030\003 \001(\t\022\023\n\013local_a"
    "dmin\030\004 \001(\r\"h\n\033FourOctetAsSpecificExtende"
    "d\022\025\n\ris_transitive\030\001 \001(\010\022\020\n\010sub_type\030\002 \001"
    "(\r\022\013\n\003asn\030\003 \001(\r\022\023\n\013local_admin\030\004 \001(\r\"7\n\025"
    "LinkBandwidthExtended\022\013\n\003asn\030\001 \001(\r\022\021\n\tba"
    "ndwidth\030\002 \001(\002\"#\n\022ValidationExtended\022\r\n\005s"
    "tate\030\001 \001(\r\"\036\n\rColorExtended\022\r\n\005color\030\001 \001"
    "(\r\"$\n\rEncapExtended\022\023\n\013tunnel_type\030\001 \001(\r"
    "\"\030\n\026DefaultGatewayExtended\"6\n\016OpaqueExte"
    "nded\022\025\n\ris_transitive\030\001 \001(\010\022\r\n\005value\030\003 \001"
    "(\014\";\n\020ESILabelExtended\022\030\n\020is_single_acti"
    "ve\030\001 \001(\010\022\r\n\005label\030\002 \001(\r\"(\n\023ESImportRoute"
    "Target\022\021\n\tes_import\030\001 \001(\t\">\n\023MacMobility"
    "Extended\022\021\n\tis_sticky\030\001 \001(\010\022\024\n\014sequence_"
    "num\030\002 \001(\r\" \n\021RouterMacExtended\022\013\n\003mac\030\001 "
    "\001(\t\"0\n\023TrafficRateExtended\022\013\n\003asn\030\001 \001(\r\022"
    "\014\n\004rate\030\002 \001(\002\"9\n\025TrafficActionExtended\022\020"
    "\n\010terminal\030\001 \001(\010\022\016\n\006sample\030\002 \001(\010\"F\n\"Redi"
    "rectTwoOctetAsSpecificExtended\022\013\n\003asn\030\001 "
    "\001(\r\022\023\n\013local_admin\030\002 \001(\r\"K\n#RedirectIPv4"
    "AddressSpecificExtended\022\017\n\007address\030\001 \001(\t"
    "\022\023\n\013local_admin\030\002 \001(\r\"G\n#RedirectFourOct"
    "etAsSpecificExtended\022\013\n\003asn\030\001 \001(\r\022\023\n\013loc"
    "al_admin\030\002 \001(\r\"%\n\025TrafficRemarkExtended\022"
    "\014\n\004dscp\030\001 \001(\r\"I\n\013MUPExtended\022\020\n\010sub_type"
    "\030\001 \001(\r\022\023\n\013segment_id2\030\002 \001(\r\022\023\n\013segment_i"
    "d4\030\003 \001(\r\".\n\017UnknownExtended\022\014\n\004type\030\001 \001("
    "\r\022\r\n\005value\030\002 \001(\014\"I\n\034ExtendedCommunitiesA"
    "ttribute\022)\n\013communities\030\001 \003(\0132\024.google.p"
    "rotobuf.Any\"6\n\020As4PathAttribute\022\"\n\010segme"
    "nts\030\001 \003(\0132\020.apipb.AsSegment\"6\n\026As4Aggreg"
    "atorAttribute\022\013\n\003asn\030\002 \001(\r\022\017\n\007address\030\003 "
    "\001(\t\"M\n\023PmsiTunnelAttribute\022\r\n\005flags\030\001 \001("
    "\r\022\014\n\004type\030\002 \001(\r\022\r\n\005label\030\003 \001(\r\022\n\n\002id\030\004 \001"
    "(\014\"=\n\036TunnelEncapSubTLVEncapsulation\022\013\n\003"
    "key\030\001 \001(\r\022\016\n\006cookie\030\002 \001(\014\"-\n\031TunnelEncap"
    "SubTLVProtocol\022\020\n\010protocol\030\001 \001(\r\"\'\n\026Tunn"
    "elEncapSubTLVColor\022\r\n\005color\030\001 \001(\r\"B\n\035Tun"
    "nelEncapSubTLVSRPreference\022\r\n\005flags\030\001 \001("
    "\r\022\022\n\npreference\030\002 \001(\r\"C\n$TunnelEncapSubT"
    "LVSRCandidatePathName\022\033\n\023candidate_path_"
    "name\030\001 \001(\t\"/\n\033TunnelEncapSubTLVSRPriorit"
    "y\022\020\n\010priority\030\001 \001(\r\"C\n\035TunnelEncapSubTLV"
    "SRBindingSID\022\"\n\004bsid\030\001 \001(\0132\024.google.prot"
    "obuf.Any\";\n\014SRBindingSID\022\016\n\006s_flag\030\001 \001(\010"
    "\022\016\n\006i_flag\030\002 \001(\010\022\013\n\003sid\030\003 \001(\014\"\205\001\n\024SRv6En"
    "dPointBehavior\022%\n\010behavior\030\001 \001(\0162\023.apipb"
    ".SRv6Behavior\022\021\n\tblock_len\030\002 \001(\r\022\020\n\010node"
    "_len\030\003 \001(\r\022\020\n\010func_len\030\004 \001(\r\022\017\n\007arg_len\030"
    "\005 \001(\r\"\217\001\n\016SRv6BindingSID\022\016\n\006s_flag\030\001 \001(\010"
    "\022\016\n\006i_flag\030\002 \001(\010\022\016\n\006b_flag\030\003 \001(\010\022\013\n\003sid\030"
    "\004 \001(\014\022@\n\033endpoint_behavior_structure\030\005 \001"
    "(\0132\033.apipb.SRv6EndPointBehavior\"G\n\027Tunne"
    "lEncapSubTLVSRENLP\022\r\n\005flags\030\001 \001(\r\022\035\n\004enl"
    "p\030\002 \001(\0162\017.apipb.ENLPType\")\n\010SRWeight\022\r\n\005"
    "flags\030\001 \001(\r\022\016\n\006weight\030\002 \001(\r\"N\n\014SegmentFl"
    "ags\022\016\n\006v_flag\030\001 \001(\010\022\016\n\006a_flag\030\002 \001(\010\022\016\n\006s"
    "_flag\030\003 \001(\010\022\016\n\006b_flag\030\004 \001(\010\"A\n\014SegmentTy"
    "peA\022\"\n\005flags\030\001 \001(\0132\023.apipb.SegmentFlags\022"
    "\r\n\005label\030\002 \001(\r\"\201\001\n\014SegmentTypeB\022\"\n\005flags"
    "\030\001 \001(\0132\023.apipb.SegmentFlags\022\013\n\003sid\030\002 \001(\014"
    "\022@\n\033endpoint_behavior_structure\030\003 \001(\0132\033."
    "apipb.SRv6EndPointBehavior\"i\n\036TunnelEnca"
    "pSubTLVSRSegmentList\022\037\n\006weight\030\001 \001(\0132\017.a"
    "pipb.SRWeight\022&\n\010segments\030\002 \003(\0132\024.google"
    ".protobuf.Any\"2\n\037TunnelEncapSubTLVEgress"
    "Endpoint\022\017\n\007address\030\001 \001(\t\",\n\034TunnelEncap"
    "SubTLVUDPDestPort\022\014\n\004port\030\001 \001(\r\"7\n\030Tunne"
    "lEncapSubTLVUnknown\022\014\n\004type\030\001 \001(\r\022\r\n\005val"
    "ue\030\002 \001(\014\"B\n\016TunnelEncapTLV\022\014\n\004type\030\001 \001(\r"
    "\022\"\n\004tlvs\030\002 \003(\0132\024.google.protobuf.Any\";\n\024"
    "TunnelEncapAttribute\022#\n\004tlvs\030\001 \003(\0132\025.api"
    "pb.TunnelEncapTLV\"l\n\033IPv6AddressSpecific"
    "Extended\022\025\n\ris_transitive\030\001 \001(\010\022\020\n\010sub_t"
    "ype\030\002 \001(\r\022\017\n\007address\030\003 \001(\t\022\023\n\013local_admi"
    "n\030\004 \001(\r\"K\n#RedirectIPv6AddressSpecificEx"
    "tended\022\017\n\007address\030\001 \001(\t\022\023\n\013local_admin\030\002"
    " \001(\r\"L\n\037IP6ExtendedCommunitiesAttribute\022"
    ")\n\013communities\030\001 \003(\0132\024.google.protobuf.A"
    "ny\"\"\n\020AigpTLVIGPMetric\022\016\n\006metric\030\001 \001(\004\"-"
    "\n\016AigpTLVUnknown\022\014\n\004type\030\001 \001(\r\022\r\n\005value\030"
    "\002 \001(\014\"3\n\rAigpAttribute\022\"\n\004tlvs\030\001 \003(\0132\024.g"
    "oogle.protobuf.Any\"P\n\016LargeCommunity\022\024\n\014"
    "global_admin\030\001 \001(\r\022\023\n\013local_data1\030\002 \001(\r\022"
    "\023\n\013local_data2\030\003 \001(\r\"G\n\031LargeCommunities"
    "Attribute\022*\n\013communities\030\001 \003(\0132\025.apipb.L"
    "argeCommunity\"l\n\013LsNodeFlags\022\020\n\010overload"
    "\030\001 \001(\010\022\020\n\010attached\030\002 \001(\010\022\020\n\010external\030\003 \001"
    "(\010\022\013\n\003abr\030\004 \001(\010\022\016\n\006router\030\005 \001(\010\022\n\n\002v6\030\006 "
    "\001(\010\"]\n\nLsIGPFlags\022\014\n\004down\030\001 \001(\010\022\022\n\nno_un"
    "icast\030\002 \001(\010\022\025\n\rlocal_address\030\003 \001(\010\022\026\n\016pr"
    "opagate_nssa\030\004 \001(\010\"\'\n\tLsSrRange\022\r\n\005begin"
    "\030\001 \001(\r\022\013\n\003end\030\002 \001(\r\"d\n\020LsSrCapabilities\022"
    "\026\n\016ipv4_supported\030\001 \001(\010\022\026\n\016ipv6_supporte"
    "d\030\002 \001(\010\022 \n\006ranges\030\003 \003(\0132\020.apipb.LsSrRang"
    "e\"2\n\016LsSrLocalBlock\022 \n\006ranges\030\001 \003(\0132\020.ap"
    "ipb.LsSrRange\"\222\002\n\017LsAttributeNode\022\014\n\004nam"
    "e\030\001 \001(\t\022!\n\005flags\030\002 \001(\0132\022.apipb.LsNodeFla"
    "gs\022\027\n\017local_router_id\030\003 \001(\t\022\032\n\022local_rou"
    "ter_id_v6\030\004 \001(\t\022\021\n\tisis_area\030\005 \001(\014\022\016\n\006op"
    "aque\030\006 \001(\014\0220\n\017sr_capabilities\030\007 \001(\0132\027.ap"
    "ipb.LsSrCapabilities\022\025\n\rsr_algorithms\030\010 "
    "\001(\014\022-\n\016sr_local_block\030\t \001(\0132\025.apipb.LsSr"
    "LocalBlock\"\327\002\n\017LsAttributeLink\022\014\n\004name\030\001"
    " \001(\t\022\027\n\017local_router_id\030\002 \001(\t\022\032\n\022local_r"
    "outer_id_v6\030\003 \001(\t\022\030\n\020remote_router_id\030\004 "
    "\001(\t\022\033\n\023remote_router_id_v6\030\005 \001(\t\022\023\n\013admi"
    "n_group\030\006 \001(\r\022\031\n\021default_te_metric\030\007 \001(\r"
    "\022\022\n\nigp_metric\030\010 \001(\r\022\016\n\006opaque\030\t \001(\014\022\021\n\t"
    "bandwidth\030\n \001(\002\022\034\n\024reservable_bandwidth\030"
    "\013 \001(\002\022\034\n\024unreserved_bandwidth\030\014 \003(\002\022\030\n\020s"
    "r_adjacency_sid\030\r \001(\r\022\r\n\005srlgs\030\016 \003(\r\"`\n\021"
    "LsAttributePrefix\022$\n\tigp_flags\030\001 \001(\0132\021.a"
    "pipb.LsIGPFlags\022\016\n\006opaque\030\002 \001(\014\022\025\n\rsr_pr"
    "efix_sid\030\003 \001(\r\"\\\n\030LsBgpPeerSegmentSIDFla"
    "gs\022\r\n\005value\030\001 \001(\010\022\r\n\005local\030\002 \001(\010\022\016\n\006back"
    "up\030\003 \001(\010\022\022\n\npersistent\030\004 \001(\010\"b\n\023LsBgpPee"
    "rSegmentSID\022.\n\005flags\030\001 \001(\0132\037.apipb.LsBgp"
    "PeerSegmentSIDFlags\022\016\n\006weight\030\002 \001(\r\022\013\n\003s"
    "id\030\003 \001(\r\"\304\001\n\031LsAttributeBgpPeerSegment\0225"
    "\n\021bgp_peer_node_sid\030\001 \001(\0132\032.apipb.LsBgpP"
    "eerSegmentSID\022:\n\026bgp_peer_adjacency_sid\030"
    "\002 \001(\0132\032.apipb.LsBgpPeerSegmentSID\0224\n\020bgp"
    "_peer_set_sid\030\003 \001(\0132\032.apipb.LsBgpPeerSeg"
    "mentSID\"\277\001\n\013LsAttribute\022$\n\004node\030\001 \001(\0132\026."
    "apipb.LsAttributeNode\022$\n\004link\030\002 \001(\0132\026.ap"
    "ipb.LsAttributeLink\022(\n\006prefix\030\003 \001(\0132\030.ap"
    "ipb.LsAttributePrefix\022:\n\020bgp_peer_segmen"
    "t\030\004 \001(\0132 .apipb.LsAttributeBgpPeerSegmen"
    "t\">\n\020UnknownAttribute\022\r\n\005flags\030\001 \001(\r\022\014\n\004"
    "type\030\002 \001(\r\022\r\n\005value\030\003 \001(\014\"\301\001\n\026SRv6Struct"
    "ureSubSubTLV\022\034\n\024locator_block_length\030\001 \001"
    "(\r\022\033\n\023locator_node_length\030\002 \001(\r\022\027\n\017funct"
    "ion_length\030\003 \001(\r\022\027\n\017argument_length\030\004 \001("
    "\r\022\034\n\024transposition_length\030\005 \001(\r\022\034\n\024trans"
    "position_offset\030\006 \001(\r\"\036\n\014SRv6SIDFlags\022\016\n"
    "\006flag_1\030\001 \001(\010\",\n\007SRv6TLV\022!\n\003tlv\030\001 \003(\0132\024."
    "google.protobuf.Any\"\352\001\n\025SRv6InformationS"
    "ubTLV\022\013\n\003sid\030\001 \001(\014\022\"\n\005flags\030\002 \001(\0132\023.apip"
    "b.SRv6SIDFlags\022\031\n\021endpoint_behavior\030\003 \001("
    "\r\022B\n\014sub_sub_tlvs\030\004 \003(\0132,.apipb.SRv6Info"
    "rmationSubTLV.SubSubTlvsEntry\032A\n\017SubSubT"
    "lvsEntry\022\013\n\003key\030\001 \001(\r\022\035\n\005value\030\002 \001(\0132\016.a"
    "pipb.SRv6TLV:\0028\001\"\212\001\n\020SRv6L3ServiceTLV\0226\n"
    "\010sub_tlvs\030\001 \003(\0132$.apipb.SRv6L3ServiceTLV"
    ".SubTlvsEntry\032>\n\014SubTlvsEntry\022\013\n\003key\030\001 \001"
    "(\r\022\035\n\005value\030\002 \001(\0132\016.apipb.SRv6TLV:\0028\001\"\212\001"
    "\n\020SRv6L2ServiceTLV\0226\n\010sub_tlvs\030\001 \003(\0132$.a"
    "pipb.SRv6L2ServiceTLV.SubTlvsEntry\032>\n\014Su"
    "bTlvsEntry\022\013\n\003key\030\001 \001(\r\022\035\n\005value\030\002 \001(\0132\016"
    ".apipb.SRv6TLV:\0028\001\"/\n\tPrefixSID\022\"\n\004tlvs\030"
    "\001 \003(\0132\024.google.protobuf.Any*\367\001\n\017LsOspfRo"
    "uteType\022\036\n\032LS_OSPF_ROUTE_TYPE_UNKNOWN\020\000\022"
    "!\n\035LS_OSPF_ROUTE_TYPE_INTRA_AREA\020\001\022!\n\035LS"
    "_OSPF_ROUTE_TYPE_INTER_AREA\020\002\022 \n\034LS_OSPF"
    "_ROUTE_TYPE_EXTERNAL1\020\003\022 \n\034LS_OSPF_ROUTE"
    "_TYPE_EXTERNAL2\020\004\022\034\n\030LS_OSPF_ROUTE_TYPE_"
    "NSSA1\020\005\022\034\n\030LS_OSPF_ROUTE_TYPE_NSSA2\020\006*s\n"
    "\nLsNLRIType\022\023\n\017LS_NLRI_UNKNOWN\020\000\022\020\n\014LS_N"
    "LRI_NODE\020\001\022\020\n\014LS_NLRI_LINK\020\002\022\025\n\021LS_NLRI_"
    "PREFIX_V4\020\003\022\025\n\021LS_NLRI_PREFIX_V6\020\004*\273\001\n\014L"
    "sProtocolID\022\027\n\023LS_PROTOCOL_UNKNOWN\020\000\022\027\n\023"
    "LS_PROTOCOL_ISIS_L1\020\001\022\027\n\023LS_PROTOCOL_ISI"
    "S_L2\020\002\022\027\n\023LS_PROTOCOL_OSPF_V2\020\003\022\026\n\022LS_PR"
    "OTOCOL_DIRECT\020\004\022\026\n\022LS_PROTOCOL_STATIC\020\005\022"
    "\027\n\023LS_PROTOCOL_OSPF_V3\020\006*\355\005\n\014SRv6Behavio"
    "r\022\014\n\010RESERVED\020\000\022\007\n\003END\020\001\022\020\n\014END_WITH_PSP"
    "\020\002\022\020\n\014END_WITH_USP\020\003\022\024\n\020END_WITH_PSP_USP"
    "\020\004\022\010\n\004ENDX\020\005\022\021\n\rENDX_WITH_PSP\020\006\022\021\n\rENDX_"
    "WITH_USP\020\007\022\025\n\021ENDX_WITH_PSP_USP\020\010\022\010\n\004END"
    "T\020\t\022\021\n\rENDT_WITH_PSP\020\n\022\021\n\rENDT_WITH_USP\020"
    "\013\022\025\n\021ENDT_WITH_PSP_USP\020\014\022\021\n\rEND_B6_ENCAP"
    "S\020\016\022\n\n\006END_BM\020\017\022\013\n\007END_DX6\020\020\022\013\n\007END_DX4\020"
    "\021\022\013\n\007END_DT6\020\022\022\013\n\007END_DT4\020\023\022\014\n\010END_DT46\020"
    "\024\022\013\n\007END_DX2\020\025\022\014\n\010END_DX2V\020\026\022\014\n\010END_DT2U"
    "\020\027\022\014\n\010END_DT2M\020\030\022\025\n\021END_B6_ENCAPS_Red\020\033\022"
    "\020\n\014END_WITH_USD\020\034\022\024\n\020END_WITH_PSP_USD\020\035\022"
    "\024\n\020END_WITH_USP_USD\020\036\022\030\n\024END_WITH_PSP_US"
    "P_USD\020\037\022\021\n\rENDX_WITH_USD\020 \022\025\n\021ENDX_WITH_"
    "PSP_USD\020!\022\025\n\021ENDX_WITH_USP_USD\020\"\022\031\n\025ENDX"
    "_WITH_PSP_USP_USD\020#\022\021\n\rENDT_WITH_USD\020$\022\025"
    "\n\021ENDT_WITH_PSP_USD\020%\022\025\n\021ENDT_WITH_USP_U"
    "SD\020&\022\031\n\025ENDT_WITH_PSP_USP_USD\020\'\022\016\n\nENDM_"
    "GTP6D\020E\022\017\n\013ENDM_GTP6DI\020F\022\016\n\nENDM_GTP6E\020G"
    "\022\016\n\nENDM_GTP4E\020H*D\n\010ENLPType\022\014\n\010Reserved"
    "\020\000\022\t\n\005Type1\020\001\022\t\n\005Type2\020\002\022\t\n\005Type3\020\003\022\t\n\005T"
    "ype4\020\004B$Z\"github.com/osrg/gobgp/v3/api;a"
    "pipbb\006proto3"
};
static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
    descriptor_table_attribute_2eproto_deps[2] = {
        &::descriptor_table_gobgp_2eproto,
        &::descriptor_table_google_2fprotobuf_2fany_2eproto,
};
static ::absl::once_flag descriptor_table_attribute_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_attribute_2eproto = {
    false,
    false,
    12132,
    descriptor_table_protodef_attribute_2eproto,
    "attribute.proto",
    &descriptor_table_attribute_2eproto_once,
    descriptor_table_attribute_2eproto_deps,
    2,
    125,
    schemas,
    file_message_globals,
    TableStruct_attribute_2eproto::offsets,
    file_level_enum_descriptors_attribute_2eproto,
    file_level_service_descriptors_attribute_2eproto,
};
namespace apipb {
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AsSegment_Type_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_attribute_2eproto);
  return file_level_enum_descriptors_attribute_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t AsSegment_Type_internal_data_[] = {
    327680u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
LsOspfRouteType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_attribute_2eproto);
  return file_level_enum_descriptors_attribute_2eproto[1];
}
PROTOBUF_CONSTINIT const uint32_t LsOspfRouteType_internal_data_[] = {
    458752u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
LsNLRIType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_attribute_2eproto);
  return file_level_enum_descriptors_attribute_2eproto[2];
}
PROTOBUF_CONSTINIT const uint32_t LsNLRIType_internal_data_[] = {
    327680u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
LsProtocolID_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_attribute_2eproto);
  return file_level_enum_descriptors_attribute_2eproto[3];
}
PROTOBUF_CONSTINIT const uint32_t LsProtocolID_internal_data_[] = {
    458752u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
SRv6Behavior_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_attribute_2eproto);
  return file_level_enum_descriptors_attribute_2eproto[4];
}
PROTOBUF_CONSTINIT const uint32_t SRv6Behavior_internal_data_[] = {
    851968u, 64u, 134205438u, 251658240u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
ENLPType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_attribute_2eproto);
  return file_level_enum_descriptors_attribute_2eproto[5];
}
PROTOBUF_CONSTINIT const uint32_t ENLPType_internal_data_[] = {
    327680u, 0u, };
// ===================================================================

OriginAttribute::OriginAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OriginAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.OriginAttribute)
}
OriginAttribute::OriginAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const OriginAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OriginAttribute_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE OriginAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull OriginAttribute_class_data_ =
        OriginAttribute::InternalGenerateClassData_(OriginAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OriginAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OriginAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(OriginAttribute_class_data_.tc_table);
  return OriginAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OriginAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OriginAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&OriginAttribute_globals_));
  return OriginAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const OriginAttribute::ParseTableT_
    OriginAttribute::_table_ =
        OriginAttribute::InternalGenerateParseTable_(OriginAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void OriginAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.OriginAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.origin_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 origin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_origin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_origin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.OriginAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 origin = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_origin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_origin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_origin() != 0) {
      _this->_impl_.origin_ = from._impl_.origin_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata OriginAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

AsSegment::AsSegment(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AsSegment_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.AsSegment)
}
PROTOBUF_NDEBUG_INLINE AsSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::AsSegment& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        numbers_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::AsSegment,
              PROTOBUF_FIELD_OFFSET(::apipb::AsSegment, _impl_.numbers_)>()
          , from.numbers_
        }
        ,
        _numbers_cached_byte_size_{0} {}

AsSegment::AsSegment(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AsSegment& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AsSegment_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AsSegment* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.AsSegment)
}
PROTOBUF_NDEBUG_INLINE AsSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        numbers_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::AsSegment,
            PROTOBUF_FIELD_OFFSET(::apipb::AsSegment, _impl_.numbers_)>()
         }
        ,
        _numbers_cached_byte_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AsSegment_class_data_ =
        AsSegment::InternalGenerateClassData_(AsSegment_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AsSegment::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AsSegment_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AsSegment_class_data_.tc_table);
  return AsSegment_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AsSegment::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AsSegment_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AsSegment_globals_));
  return AsSegment_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AsSegment::ParseTableT_
    AsSegment::_table_ =
        AsSegment::InternalGenerateParseTable_(AsSegment_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AsSegment::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.AsSegment)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.numbers_.Clear();
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.AsSegment.Type type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_type(), target);
    }
  }

  // repeated uint32 numbers = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._numbers_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt32Packed(
            2, this_._internal_numbers(), byte_size, target);
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.AsSegment)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated uint32 numbers = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt32SizeWithPackedTagSize(
              this_._internal_numbers(), 1,
              this_._impl_._numbers_cached_byte_size_);
    }
    // .apipb.AsSegment.Type type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_numbers()->MergeFrom(from._internal_numbers());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata AsSegment::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

AsPathAttribute::AsPathAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AsPathAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.AsPathAttribute)
}
PROTOBUF_NDEBUG_INLINE AsPathAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::AsPathAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        segments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::AsPathAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::AsPathAttribute, _impl_.segments_)>()
          , from.segments_
        }
     {}

AsPathAttribute::AsPathAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AsPathAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AsPathAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AsPathAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.AsPathAttribute)
}
PROTOBUF_NDEBUG_INLINE AsPathAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        segments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::AsPathAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::AsPathAttribute, _impl_.segments_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AsPathAttribute_class_data_ =
        AsPathAttribute::InternalGenerateClassData_(AsPathAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AsPathAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AsPathAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AsPathAttribute_class_data_.tc_table);
  return AsPathAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AsPathAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AsPathAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AsPathAttribute_globals_));
  return AsPathAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AsPathAttribute::ParseTableT_
    AsPathAttribute::_table_ =
        AsPathAttribute::InternalGenerateParseTable_(AsPathAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AsPathAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.AsPathAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.segments_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .apipb.AsSegment segments = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_segments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_segments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.AsPathAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .apipb.AsSegment segments = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_segments_size();
      for (const auto& msg : this_._internal_segments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata AsPathAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

NextHopAttribute::NextHopAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NextHopAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.NextHopAttribute)
}
PROTOBUF_NDEBUG_INLINE NextHopAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::NextHopAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        next_hop_(arena, from.next_hop_) {}

NextHopAttribute::NextHopAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NextHopAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NextHopAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NextHopAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.NextHopAttribute)
}
PROTOBUF_NDEBUG_INLINE NextHopAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        next_hop_(arena) {}

inline void NextHopAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
NextHopAttribute::~NextHopAttribute() {
  // @@protoc_insertion_point(destructor:apipb.NextHopAttribute)
  SharedDtor(*this);
}
inline void NextHopAttribute::SharedDtor(MessageLite& self) {
  NextHopAttribute& this_ = static_cast<NextHopAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.next_hop_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NextHopAttribute_class_data_ =
        NextHopAttribute::InternalGenerateClassData_(NextHopAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NextHopAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NextHopAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NextHopAttribute_class_data_.tc_table);
  return NextHopAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NextHopAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NextHopAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NextHopAttribute_globals_));
  return NextHopAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NextHopAttribute::ParseTableT_
    NextHopAttribute::_table_ =
        NextHopAttribute::InternalGenerateParseTable_(NextHopAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NextHopAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.NextHopAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.next_hop_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string next_hop = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_next_hop().empty()) {
      const ::std::string& _s = this_._internal_next_hop();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.NextHopAttribute.next_hop");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.NextHopAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string next_hop = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_next_hop().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_next_hop());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_next_hop().empty()) {
      _this->_internal_set_next_hop(from._internal_next_hop());
    } else {
      if (_this->_impl_.next_hop_.IsDefault()) {
        _this->_internal_set_next_hop("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata NextHopAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

MultiExitDiscAttribute::MultiExitDiscAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MultiExitDiscAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MultiExitDiscAttribute)
}
MultiExitDiscAttribute::MultiExitDiscAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MultiExitDiscAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MultiExitDiscAttribute_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE MultiExitDiscAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MultiExitDiscAttribute_class_data_ =
        MultiExitDiscAttribute::InternalGenerateClassData_(MultiExitDiscAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MultiExitDiscAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MultiExitDiscAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MultiExitDiscAttribute_class_data_.tc_table);
  return MultiExitDiscAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MultiExitDiscAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MultiExitDiscAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MultiExitDiscAttribute_globals_));
  return MultiExitDiscAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MultiExitDiscAttribute::ParseTableT_
    MultiExitDiscAttribute::_table_ =
        MultiExitDiscAttribute::InternalGenerateParseTable_(MultiExitDiscAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MultiExitDiscAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MultiExitDiscAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.med_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 med = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_med() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_med(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MultiExitDiscAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 med = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_med() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_med());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_med() != 0) {
      _this->_impl_.med_ = from._impl_.med_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata MultiExitDiscAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LocalPrefAttribute::LocalPrefAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LocalPrefAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LocalPrefAttribute)
}
LocalPrefAttribute::LocalPrefAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LocalPrefAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LocalPrefAttribute_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LocalPrefAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LocalPrefAttribute_class_data_ =
        LocalPrefAttribute::InternalGenerateClassData_(LocalPrefAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LocalPrefAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LocalPrefAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LocalPrefAttribute_class_data_.tc_table);
  return LocalPrefAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LocalPrefAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LocalPrefAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LocalPrefAttribute_globals_));
  return LocalPrefAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LocalPrefAttribute::ParseTableT_
    LocalPrefAttribute::_table_ =
        LocalPrefAttribute::InternalGenerateParseTable_(LocalPrefAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LocalPrefAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LocalPrefAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.local_pref_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 local_pref = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_local_pref() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_local_pref(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LocalPrefAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 local_pref = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_local_pref() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_pref());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_local_pref() != 0) {
      _this->_impl_.local_pref_ = from._impl_.local_pref_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata LocalPrefAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

AtomicAggregateAttribute::AtomicAggregateAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, AtomicAggregateAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:apipb.AtomicAggregateAttribute)
}
AtomicAggregateAttribute::AtomicAggregateAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AtomicAggregateAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, AtomicAggregateAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AtomicAggregateAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:apipb.AtomicAggregateAttribute)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AtomicAggregateAttribute_class_data_ =
        AtomicAggregateAttribute::InternalGenerateClassData_(AtomicAggregateAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AtomicAggregateAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AtomicAggregateAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AtomicAggregateAttribute_class_data_.tc_table);
  return AtomicAggregateAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AtomicAggregateAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AtomicAggregateAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AtomicAggregateAttribute_globals_));
  return AtomicAggregateAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AtomicAggregateAttribute::ParseTableT_
    AtomicAggregateAttribute::_table_ =
        AtomicAggregateAttribute::InternalGenerateParseTable_(AtomicAggregateAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata AtomicAggregateAttribute::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

AggregatorAttribute::AggregatorAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AggregatorAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.AggregatorAttribute)
}
PROTOBUF_NDEBUG_INLINE AggregatorAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::AggregatorAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

AggregatorAttribute::AggregatorAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AggregatorAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AggregatorAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AggregatorAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.asn_ = from._impl_.asn_;

  // @@protoc_insertion_point(copy_constructor:apipb.AggregatorAttribute)
}
PROTOBUF_NDEBUG_INLINE AggregatorAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void AggregatorAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.asn_ = {};
}
AggregatorAttribute::~AggregatorAttribute() {
  // @@protoc_insertion_point(destructor:apipb.AggregatorAttribute)
  SharedDtor(*this);
}
inline void AggregatorAttribute::SharedDtor(MessageLite& self) {
  AggregatorAttribute& this_ = static_cast<AggregatorAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AggregatorAttribute_class_data_ =
        AggregatorAttribute::InternalGenerateClassData_(AggregatorAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregatorAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregatorAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AggregatorAttribute_class_data_.tc_table);
  return AggregatorAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AggregatorAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AggregatorAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AggregatorAttribute_globals_));
  return AggregatorAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AggregatorAttribute::ParseTableT_
    AggregatorAttribute::_table_ =
        AggregatorAttribute::InternalGenerateParseTable_(AggregatorAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AggregatorAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.AggregatorAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_.asn_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // string address = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.AggregatorAttribute.address");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.AggregatorAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string address = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata AggregatorAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

CommunitiesAttribute::CommunitiesAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, CommunitiesAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.CommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE CommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::CommunitiesAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        communities_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::CommunitiesAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::CommunitiesAttribute, _impl_.communities_)>()
          , from.communities_
        }
        ,
        _communities_cached_byte_size_{0} {}

CommunitiesAttribute::CommunitiesAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const CommunitiesAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, CommunitiesAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CommunitiesAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.CommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE CommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::CommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::CommunitiesAttribute, _impl_.communities_)>()
         }
        ,
        _communities_cached_byte_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull CommunitiesAttribute_class_data_ =
        CommunitiesAttribute::InternalGenerateClassData_(CommunitiesAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&CommunitiesAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(CommunitiesAttribute_class_data_.tc_table);
  return CommunitiesAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&CommunitiesAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&CommunitiesAttribute_globals_));
  return CommunitiesAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const CommunitiesAttribute::ParseTableT_
    CommunitiesAttribute::_table_ =
        CommunitiesAttribute::InternalGenerateParseTable_(CommunitiesAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void CommunitiesAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.CommunitiesAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.communities_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated uint32 communities = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._communities_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt32Packed(
            1, this_._internal_communities(), byte_size, target);
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.CommunitiesAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated uint32 communities = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt32SizeWithPackedTagSize(
              this_._internal_communities(), 1,
              this_._impl_._communities_cached_byte_size_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_communities()->MergeFrom(from._internal_communities());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata CommunitiesAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

OriginatorIdAttribute::OriginatorIdAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OriginatorIdAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.OriginatorIdAttribute)
}
PROTOBUF_NDEBUG_INLINE OriginatorIdAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::OriginatorIdAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        id_(arena, from.id_) {}

OriginatorIdAttribute::OriginatorIdAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const OriginatorIdAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OriginatorIdAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  OriginatorIdAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.OriginatorIdAttribute)
}
PROTOBUF_NDEBUG_INLINE OriginatorIdAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        id_(arena) {}

inline void OriginatorIdAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
OriginatorIdAttribute::~OriginatorIdAttribute() {
  // @@protoc_insertion_point(destructor:apipb.OriginatorIdAttribute)
  SharedDtor(*this);
}
inline void OriginatorIdAttribute::SharedDtor(MessageLite& self) {
  OriginatorIdAttribute& this_ = static_cast<OriginatorIdAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull OriginatorIdAttribute_class_data_ =
        OriginatorIdAttribute::InternalGenerateClassData_(OriginatorIdAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OriginatorIdAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OriginatorIdAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(OriginatorIdAttribute_class_data_.tc_table);
  return OriginatorIdAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OriginatorIdAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OriginatorIdAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&OriginatorIdAttribute_globals_));
  return OriginatorIdAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const OriginatorIdAttribute::ParseTableT_
    OriginatorIdAttribute::_table_ =
        OriginatorIdAttribute::InternalGenerateParseTable_(OriginatorIdAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void OriginatorIdAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.OriginatorIdAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.id_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string id = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_id().empty()) {
      const ::std::string& _s = this_._internal_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.OriginatorIdAttribute.id");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.OriginatorIdAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string id = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_id());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_id().empty()) {
      _this->_internal_set_id(from._internal_id());
    } else {
      if (_this->_impl_.id_.IsDefault()) {
        _this->_internal_set_id("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata OriginatorIdAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ClusterListAttribute::ClusterListAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ClusterListAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.ClusterListAttribute)
}
PROTOBUF_NDEBUG_INLINE ClusterListAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::ClusterListAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ids_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::ClusterListAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::ClusterListAttribute, _impl_.ids_)>()
          , from.ids_
        }
     {}

ClusterListAttribute::ClusterListAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ClusterListAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ClusterListAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ClusterListAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.ClusterListAttribute)
}
PROTOBUF_NDEBUG_INLINE ClusterListAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ids_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::ClusterListAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::ClusterListAttribute, _impl_.ids_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ClusterListAttribute_class_data_ =
        ClusterListAttribute::InternalGenerateClassData_(ClusterListAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ClusterListAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ClusterListAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ClusterListAttribute_class_data_.tc_table);
  return ClusterListAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ClusterListAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ClusterListAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ClusterListAttribute_globals_));
  return ClusterListAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ClusterListAttribute::ParseTableT_
    ClusterListAttribute::_table_ =
        ClusterListAttribute::InternalGenerateParseTable_(ClusterListAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ClusterListAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.ClusterListAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.ids_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated string ids = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_ids_size(); i < n; ++i) {
      const auto& s = this_._internal_ids().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.ClusterListAttribute.ids");
      target = stream->WriteString(1, s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.ClusterListAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated string ids = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_ids().size());
      for (int i = 0, n = this_._internal_ids().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_ids().Get(i));
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata ClusterListAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

IPAddressPrefix::IPAddressPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IPAddressPrefix_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.IPAddressPrefix)
}
PROTOBUF_NDEBUG_INLINE IPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::IPAddressPrefix& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prefix_(arena, from.prefix_) {}

IPAddressPrefix::IPAddressPrefix(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const IPAddressPrefix& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IPAddressPrefix_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  IPAddressPrefix* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.prefix_len_ = from._impl_.prefix_len_;

  // @@protoc_insertion_point(copy_constructor:apipb.IPAddressPrefix)
}
PROTOBUF_NDEBUG_INLINE IPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        prefix_(arena) {}

inline void IPAddressPrefix::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.prefix_len_ = {};
}
IPAddressPrefix::~IPAddressPrefix() {
  // @@protoc_insertion_point(destructor:apipb.IPAddressPrefix)
  SharedDtor(*this);
}
inline void IPAddressPrefix::SharedDtor(MessageLite& self) {
  IPAddressPrefix& this_ = static_cast<IPAddressPrefix&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prefix_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull IPAddressPrefix_class_data_ =
        IPAddressPrefix::InternalGenerateClassData_(IPAddressPrefix_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IPAddressPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IPAddressPrefix_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(IPAddressPrefix_class_data_.tc_table);
  return IPAddressPrefix_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IPAddressPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IPAddressPrefix_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&IPAddressPrefix_globals_));
  return IPAddressPrefix_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const IPAddressPrefix::ParseTableT_
    IPAddressPrefix::_table_ =
        IPAddressPrefix::InternalGenerateParseTable_(IPAddressPrefix_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void IPAddressPrefix::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.IPAddressPrefix)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.prefix_.ClearNonDefaultToEmpty();
  }
  _impl_.prefix_len_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 prefix_len = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_prefix_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_prefix_len(), target);
    }
  }

  // string prefix = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_prefix().empty()) {
      const ::std::string& _s = this_._internal_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.IPAddressPrefix.prefix");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.IPAddressPrefix)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string prefix = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prefix());
      }
    }
    // uint32 prefix_len = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_prefix_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_prefix_len());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_prefix().empty()) {
        _this->_internal_set_prefix(from._internal_prefix());
      } else {
        if (_this->_impl_.prefix_.IsDefault()) {
          _this->_internal_set_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_prefix_len() != 0) {
        _this->_impl_.prefix_len_ = from._impl_.prefix_len_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata IPAddressPrefix::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LabeledIPAddressPrefix::LabeledIPAddressPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LabeledIPAddressPrefix_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LabeledIPAddressPrefix)
}
PROTOBUF_NDEBUG_INLINE LabeledIPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LabeledIPAddressPrefix& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        labels_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LabeledIPAddressPrefix,
              PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_.labels_)>()
          , from.labels_
        }
        ,
        _labels_cached_byte_size_{0},
        prefix_(arena, from.prefix_) {}

LabeledIPAddressPrefix::LabeledIPAddressPrefix(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LabeledIPAddressPrefix& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LabeledIPAddressPrefix_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LabeledIPAddressPrefix* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.prefix_len_ = from._impl_.prefix_len_;

  // @@protoc_insertion_point(copy_constructor:apipb.LabeledIPAddressPrefix)
}
PROTOBUF_NDEBUG_INLINE LabeledIPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        labels_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LabeledIPAddressPrefix,
            PROTOBUF_FIELD_OFFSET(::apipb::LabeledIPAddressPrefix, _impl_.labels_)>()
         }
        ,
        _labels_cached_byte_size_{0},
        prefix_(arena) {}

inline void LabeledIPAddressPrefix::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.prefix_len_ = {};
}
LabeledIPAddressPrefix::~LabeledIPAddressPrefix() {
  // @@protoc_insertion_point(destructor:apipb.LabeledIPAddressPrefix)
  SharedDtor(*this);
}
inline void LabeledIPAddressPrefix::SharedDtor(MessageLite& self) {
  LabeledIPAddressPrefix& this_ = static_cast<LabeledIPAddressPrefix&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prefix_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LabeledIPAddressPrefix_class_data_ =
        LabeledIPAddressPrefix::InternalGenerateClassData_(LabeledIPAddressPrefix_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LabeledIPAddressPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LabeledIPAddressPrefix_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LabeledIPAddressPrefix_class_data_.tc_table);
  return LabeledIPAddressPrefix_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LabeledIPAddressPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LabeledIPAddressPrefix_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LabeledIPAddressPrefix_globals_));
  return LabeledIPAddressPrefix_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LabeledIPAddressPrefix::ParseTableT_
    LabeledIPAddressPrefix::_table_ =
        LabeledIPAddressPrefix::InternalGenerateParseTable_(LabeledIPAddressPrefix_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LabeledIPAddressPrefix::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LabeledIPAddressPrefix)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.labels_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.prefix_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.prefix_len_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated uint32 labels = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._labels_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt32Packed(
            1, this_._internal_labels(), byte_size, target);
      }
    }
  }

  // uint32 prefix_len = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_prefix_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_prefix_len(), target);
    }
  }

  // string prefix = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_prefix().empty()) {
      const ::std::string& _s = this_._internal_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LabeledIPAddressPrefix.prefix");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LabeledIPAddressPrefix)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated uint32 labels = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt32SizeWithPackedTagSize(
              this_._internal_labels(), 1,
              this_._impl_._labels_cached_byte_size_);
    }
    // string prefix = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prefix());
      }
    }
    // uint32 prefix_len = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_prefix_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_prefix_len());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_labels()->MergeFrom(from._internal_labels());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_prefix().empty()) {
        _this->_internal_set_prefix(from._internal_prefix());
      } else {
        if (_this->_impl_.prefix_.IsDefault()) {
          _this->_internal_set_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_prefix_len() != 0) {
        _this->_impl_.prefix_len_ = from._impl_.prefix_len_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LabeledIPAddressPrefix::InternalSwap(LabeledIPAddressPrefix* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.labels_.InternalSwap(&other->_impl_.labels_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.prefix_, &other->_impl_.prefix_, arena);
  swap(_impl_.prefix_len_, other->_impl_.prefix_len_);
}

::google::protobuf::Metadata LabeledIPAddressPrefix::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

EncapsulationNLRI::EncapsulationNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EncapsulationNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EncapsulationNLRI)
}
PROTOBUF_NDEBUG_INLINE EncapsulationNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EncapsulationNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

EncapsulationNLRI::EncapsulationNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EncapsulationNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EncapsulationNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EncapsulationNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.EncapsulationNLRI)
}
PROTOBUF_NDEBUG_INLINE EncapsulationNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void EncapsulationNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
EncapsulationNLRI::~EncapsulationNLRI() {
  // @@protoc_insertion_point(destructor:apipb.EncapsulationNLRI)
  SharedDtor(*this);
}
inline void EncapsulationNLRI::SharedDtor(MessageLite& self) {
  EncapsulationNLRI& this_ = static_cast<EncapsulationNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EncapsulationNLRI_class_data_ =
        EncapsulationNLRI::InternalGenerateClassData_(EncapsulationNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EncapsulationNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EncapsulationNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EncapsulationNLRI_class_data_.tc_table);
  return EncapsulationNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EncapsulationNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EncapsulationNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EncapsulationNLRI_globals_));
  return EncapsulationNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EncapsulationNLRI::ParseTableT_
    EncapsulationNLRI::_table_ =
        EncapsulationNLRI::InternalGenerateParseTable_(EncapsulationNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EncapsulationNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EncapsulationNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string address = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EncapsulationNLRI.address");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EncapsulationNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string address = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_address().empty()) {
      _this->_internal_set_address(from._internal_address());
    } else {
      if (_this->_impl_.address_.IsDefault()) {
        _this->_internal_set_address("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata EncapsulationNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RouteDistinguisherTwoOctetASN::RouteDistinguisherTwoOctetASN(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteDistinguisherTwoOctetASN_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RouteDistinguisherTwoOctetASN)
}
RouteDistinguisherTwoOctetASN::RouteDistinguisherTwoOctetASN(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteDistinguisherTwoOctetASN& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteDistinguisherTwoOctetASN_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE RouteDistinguisherTwoOctetASN::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RouteDistinguisherTwoOctetASN::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, admin_),
           0,
           offsetof(Impl_, assigned_) -
               offsetof(Impl_, admin_) +
               sizeof(Impl_::assigned_));
}
RouteDistinguisherTwoOctetASN::~RouteDistinguisherTwoOctetASN() {
  // @@protoc_insertion_point(destructor:apipb.RouteDistinguisherTwoOctetASN)
  SharedDtor(*this);
}
inline void RouteDistinguisherTwoOctetASN::SharedDtor(MessageLite& self) {
  RouteDistinguisherTwoOctetASN& this_ = static_cast<RouteDistinguisherTwoOctetASN&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RouteDistinguisherTwoOctetASN_class_data_ =
        RouteDistinguisherTwoOctetASN::InternalGenerateClassData_(RouteDistinguisherTwoOctetASN_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteDistinguisherTwoOctetASN::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteDistinguisherTwoOctetASN_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RouteDistinguisherTwoOctetASN_class_data_.tc_table);
  return RouteDistinguisherTwoOctetASN_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteDistinguisherTwoOctetASN::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteDistinguisherTwoOctetASN_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RouteDistinguisherTwoOctetASN_globals_));
  return RouteDistinguisherTwoOctetASN_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RouteDistinguisherTwoOctetASN::ParseTableT_
    RouteDistinguisherTwoOctetASN::_table_ =
        RouteDistinguisherTwoOctetASN::InternalGenerateParseTable_(RouteDistinguisherTwoOctetASN_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RouteDistinguisherTwoOctetASN::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RouteDistinguisherTwoOctetASN)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.admin_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.assigned_) -
        reinterpret_cast<char*>(&_impl_.admin_)) + sizeof(_impl_.assigned_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 admin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_admin(), target);
    }
  }

  // uint32 assigned = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_assigned() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_assigned(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RouteDistinguisherTwoOctetASN)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 admin = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_admin());
      }
    }
    // uint32 assigned = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_assigned() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_assigned());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_admin() != 0) {
        _this->_impl_.admin_ = from._impl_.admin_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_assigned() != 0) {
        _this->_impl_.assigned_ = from._impl_.assigned_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RouteDistinguisherTwoOctetASN::InternalSwap(RouteDistinguisherTwoOctetASN* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_.assigned_)
      + sizeof(RouteDistinguisherTwoOctetASN::_impl_.assigned_)
      - PROTOBUF_FIELD_OFFSET(RouteDistinguisherTwoOctetASN, _impl_.admin_)>(
          reinterpret_cast<char*>(&_impl_.admin_),
          reinterpret_cast<char*>(&other->_impl_.admin_));
}

::google::protobuf::Metadata RouteDistinguisherTwoOctetASN::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RouteDistinguisherIPAddress::RouteDistinguisherIPAddress(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteDistinguisherIPAddress_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RouteDistinguisherIPAddress)
}
PROTOBUF_NDEBUG_INLINE RouteDistinguisherIPAddress::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::RouteDistinguisherIPAddress& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        admin_(arena, from.admin_) {}

RouteDistinguisherIPAddress::RouteDistinguisherIPAddress(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RouteDistinguisherIPAddress& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteDistinguisherIPAddress_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RouteDistinguisherIPAddress* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.assigned_ = from._impl_.assigned_;

  // @@protoc_insertion_point(copy_constructor:apipb.RouteDistinguisherIPAddress)
}
PROTOBUF_NDEBUG_INLINE RouteDistinguisherIPAddress::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        admin_(arena) {}

inline void RouteDistinguisherIPAddress::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.assigned_ = {};
}
RouteDistinguisherIPAddress::~RouteDistinguisherIPAddress() {
  // @@protoc_insertion_point(destructor:apipb.RouteDistinguisherIPAddress)
  SharedDtor(*this);
}
inline void RouteDistinguisherIPAddress::SharedDtor(MessageLite& self) {
  RouteDistinguisherIPAddress& this_ = static_cast<RouteDistinguisherIPAddress&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.admin_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RouteDistinguisherIPAddress_class_data_ =
        RouteDistinguisherIPAddress::InternalGenerateClassData_(RouteDistinguisherIPAddress_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteDistinguisherIPAddress::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteDistinguisherIPAddress_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RouteDistinguisherIPAddress_class_data_.tc_table);
  return RouteDistinguisherIPAddress_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteDistinguisherIPAddress::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteDistinguisherIPAddress_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RouteDistinguisherIPAddress_globals_));
  return RouteDistinguisherIPAddress_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RouteDistinguisherIPAddress::ParseTableT_
    RouteDistinguisherIPAddress::_table_ =
        RouteDistinguisherIPAddress::InternalGenerateParseTable_(RouteDistinguisherIPAddress_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RouteDistinguisherIPAddress::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RouteDistinguisherIPAddress)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.admin_.ClearNonDefaultToEmpty();
  }
  _impl_.assigned_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string admin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_admin().empty()) {
      const ::std::string& _s = this_._internal_admin();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.RouteDistinguisherIPAddress.admin");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // uint32 assigned = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_assigned() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_assigned(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RouteDistinguisherIPAddress)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string admin = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_admin().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_admin());
      }
    }
    // uint32 assigned = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_assigned() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_assigned());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_admin().empty()) {
        _this->_internal_set_admin(from._internal_admin());
      } else {
        if (_this->_impl_.admin_.IsDefault()) {
          _this->_internal_set_admin("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_assigned() != 0) {
        _this->_impl_.assigned_ = from._impl_.assigned_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata RouteDistinguisherIPAddress::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RouteDistinguisherFourOctetASN::RouteDistinguisherFourOctetASN(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteDistinguisherFourOctetASN_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RouteDistinguisherFourOctetASN)
}
RouteDistinguisherFourOctetASN::RouteDistinguisherFourOctetASN(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RouteDistinguisherFourOctetASN& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteDistinguisherFourOctetASN_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE RouteDistinguisherFourOctetASN::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RouteDistinguisherFourOctetASN::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, admin_),
           0,
           offsetof(Impl_, assigned_) -
               offsetof(Impl_, admin_) +
               sizeof(Impl_::assigned_));
}
RouteDistinguisherFourOctetASN::~RouteDistinguisherFourOctetASN() {
  // @@protoc_insertion_point(destructor:apipb.RouteDistinguisherFourOctetASN)
  SharedDtor(*this);
}
inline void RouteDistinguisherFourOctetASN::SharedDtor(MessageLite& self) {
  RouteDistinguisherFourOctetASN& this_ = static_cast<RouteDistinguisherFourOctetASN&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RouteDistinguisherFourOctetASN_class_data_ =
        RouteDistinguisherFourOctetASN::InternalGenerateClassData_(RouteDistinguisherFourOctetASN_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteDistinguisherFourOctetASN::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteDistinguisherFourOctetASN_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RouteDistinguisherFourOctetASN_class_data_.tc_table);
  return RouteDistinguisherFourOctetASN_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteDistinguisherFourOctetASN::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteDistinguisherFourOctetASN_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RouteDistinguisherFourOctetASN_globals_));
  return RouteDistinguisherFourOctetASN_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RouteDistinguisherFourOctetASN::ParseTableT_
    RouteDistinguisherFourOctetASN::_table_ =
        RouteDistinguisherFourOctetASN::InternalGenerateParseTable_(RouteDistinguisherFourOctetASN_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RouteDistinguisherFourOctetASN::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RouteDistinguisherFourOctetASN)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.admin_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.assigned_) -
        reinterpret_cast<char*>(&_impl_.admin_)) + sizeof(_impl_.assigned_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 admin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_admin(), target);
    }
  }

  // uint32 assigned = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_assigned() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_assigned(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RouteDistinguisherFourOctetASN)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 admin = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_admin());
      }
    }
    // uint32 assigned = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_assigned() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_assigned());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_admin() != 0) {
        _this->_impl_.admin_ = from._impl_.admin_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_assigned() != 0) {
        _this->_impl_.assigned_ = from._impl_.assigned_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RouteDistinguisherFourOctetASN::InternalSwap(RouteDistinguisherFourOctetASN* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_.assigned_)
      + sizeof(RouteDistinguisherFourOctetASN::_impl_.assigned_)
      - PROTOBUF_FIELD_OFFSET(RouteDistinguisherFourOctetASN, _impl_.admin_)>(
          reinterpret_cast<char*>(&_impl_.admin_),
          reinterpret_cast<char*>(&other->_impl_.admin_));
}

::google::protobuf::Metadata RouteDistinguisherFourOctetASN::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

EthernetSegmentIdentifier::EthernetSegmentIdentifier(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EthernetSegmentIdentifier_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EthernetSegmentIdentifier)
}
PROTOBUF_NDEBUG_INLINE EthernetSegmentIdentifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EthernetSegmentIdentifier& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        value_(arena, from.value_) {}

EthernetSegmentIdentifier::EthernetSegmentIdentifier(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EthernetSegmentIdentifier& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EthernetSegmentIdentifier_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EthernetSegmentIdentifier* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.EthernetSegmentIdentifier)
}
PROTOBUF_NDEBUG_INLINE EthernetSegmentIdentifier::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

inline void EthernetSegmentIdentifier::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.type_ = {};
}
EthernetSegmentIdentifier::~EthernetSegmentIdentifier() {
  // @@protoc_insertion_point(destructor:apipb.EthernetSegmentIdentifier)
  SharedDtor(*this);
}
inline void EthernetSegmentIdentifier::SharedDtor(MessageLite& self) {
  EthernetSegmentIdentifier& this_ = static_cast<EthernetSegmentIdentifier&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EthernetSegmentIdentifier_class_data_ =
        EthernetSegmentIdentifier::InternalGenerateClassData_(EthernetSegmentIdentifier_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EthernetSegmentIdentifier::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EthernetSegmentIdentifier_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EthernetSegmentIdentifier_class_data_.tc_table);
  return EthernetSegmentIdentifier_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EthernetSegmentIdentifier::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EthernetSegmentIdentifier_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EthernetSegmentIdentifier_globals_));
  return EthernetSegmentIdentifier_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EthernetSegmentIdentifier::ParseTableT_
    EthernetSegmentIdentifier::_table_ =
        EthernetSegmentIdentifier::InternalGenerateParseTable_(EthernetSegmentIdentifier_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EthernetSegmentIdentifier::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EthernetSegmentIdentifier)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // bytes value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EthernetSegmentIdentifier)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata EthernetSegmentIdentifier::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void EVPNEthernetAutoDiscoveryRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
EVPNEthernetAutoDiscoveryRoute::EVPNEthernetAutoDiscoveryRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNEthernetAutoDiscoveryRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EVPNEthernetAutoDiscoveryRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNEthernetAutoDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EVPNEthernetAutoDiscoveryRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

EVPNEthernetAutoDiscoveryRoute::EVPNEthernetAutoDiscoveryRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EVPNEthernetAutoDiscoveryRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNEthernetAutoDiscoveryRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EVPNEthernetAutoDiscoveryRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.esi_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, ethernet_tag_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, ethernet_tag_),
           offsetof(Impl_, label_) -
               offsetof(Impl_, ethernet_tag_) +
               sizeof(Impl_::label_));

  // @@protoc_insertion_point(copy_constructor:apipb.EVPNEthernetAutoDiscoveryRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNEthernetAutoDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void EVPNEthernetAutoDiscoveryRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, label_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::label_));
}
EVPNEthernetAutoDiscoveryRoute::~EVPNEthernetAutoDiscoveryRoute() {
  // @@protoc_insertion_point(destructor:apipb.EVPNEthernetAutoDiscoveryRoute)
  SharedDtor(*this);
}
inline void EVPNEthernetAutoDiscoveryRoute::SharedDtor(MessageLite& self) {
  EVPNEthernetAutoDiscoveryRoute& this_ = static_cast<EVPNEthernetAutoDiscoveryRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.rd_;
  delete this_._impl_.esi_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EVPNEthernetAutoDiscoveryRoute_class_data_ =
        EVPNEthernetAutoDiscoveryRoute::InternalGenerateClassData_(EVPNEthernetAutoDiscoveryRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNEthernetAutoDiscoveryRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNEthernetAutoDiscoveryRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EVPNEthernetAutoDiscoveryRoute_class_data_.tc_table);
  return EVPNEthernetAutoDiscoveryRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNEthernetAutoDiscoveryRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNEthernetAutoDiscoveryRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EVPNEthernetAutoDiscoveryRoute_globals_));
  return EVPNEthernetAutoDiscoveryRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EVPNEthernetAutoDiscoveryRoute::ParseTableT_
    EVPNEthernetAutoDiscoveryRoute::_table_ =
        EVPNEthernetAutoDiscoveryRoute::InternalGenerateParseTable_(EVPNEthernetAutoDiscoveryRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EVPNEthernetAutoDiscoveryRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EVPNEthernetAutoDiscoveryRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.esi_ != nullptr);
      _impl_.esi_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    ::memset(&_impl_.ethernet_tag_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.label_) -
        reinterpret_cast<char*>(&_impl_.ethernet_tag_)) + sizeof(_impl_.label_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // .apipb.EthernetSegmentIdentifier esi = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.esi_, this_._impl_.esi_->GetCachedSize(), target,
        stream);
  }

  // uint32 ethernet_tag = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_ethernet_tag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_ethernet_tag(), target);
    }
  }

  // uint32 label = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_label() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_label(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EVPNEthernetAutoDiscoveryRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // .apipb.EthernetSegmentIdentifier esi = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.esi_);
    }
    // uint32 ethernet_tag = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_ethernet_tag() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ethernet_tag());
      }
    }
    // uint32 label = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_label() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_label());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.esi_ != nullptr);
      if (_this->_impl_.esi_ == nullptr) {
        _this->_impl_.esi_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_);
      } else {
        _this->_impl_.esi_->MergeFrom(*from._impl_.esi_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_ethernet_tag() != 0) {
        _this->_impl_.ethernet_tag_ = from._impl_.ethernet_tag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_label() != 0) {
        _this->_impl_.label_ = from._impl_.label_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void EVPNEthernetAutoDiscoveryRoute::InternalSwap(EVPNEthernetAutoDiscoveryRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.label_)
      + sizeof(EVPNEthernetAutoDiscoveryRoute::_impl_.label_)
      - PROTOBUF_FIELD_OFFSET(EVPNEthernetAutoDiscoveryRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata EVPNEthernetAutoDiscoveryRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void EVPNMACIPAdvertisementRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
EVPNMACIPAdvertisementRoute::EVPNMACIPAdvertisementRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNMACIPAdvertisementRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EVPNMACIPAdvertisementRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNMACIPAdvertisementRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EVPNMACIPAdvertisementRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        labels_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::EVPNMACIPAdvertisementRoute,
              PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.labels_)>()
          , from.labels_
        }
        ,
        _labels_cached_byte_size_{0},
        mac_address_(arena, from.mac_address_),
        ip_address_(arena, from.ip_address_) {}

EVPNMACIPAdvertisementRoute::EVPNMACIPAdvertisementRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EVPNMACIPAdvertisementRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNMACIPAdvertisementRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EVPNMACIPAdvertisementRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.esi_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_)
                : nullptr;
  _impl_.ethernet_tag_ = from._impl_.ethernet_tag_;

  // @@protoc_insertion_point(copy_constructor:apipb.EVPNMACIPAdvertisementRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNMACIPAdvertisementRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        labels_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::EVPNMACIPAdvertisementRoute,
            PROTOBUF_FIELD_OFFSET(::apipb::EVPNMACIPAdvertisementRoute, _impl_.labels_)>()
         }
        ,
        _labels_cached_byte_size_{0},
        mac_address_(arena),
        ip_address_(arena) {}

inline void EVPNMACIPAdvertisementRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, ethernet_tag_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::ethernet_tag_));
}
EVPNMACIPAdvertisementRoute::~EVPNMACIPAdvertisementRoute() {
  // @@protoc_insertion_point(destructor:apipb.EVPNMACIPAdvertisementRoute)
  SharedDtor(*this);
}
inline void EVPNMACIPAdvertisementRoute::SharedDtor(MessageLite& self) {
  EVPNMACIPAdvertisementRoute& this_ = static_cast<EVPNMACIPAdvertisementRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.mac_address_.Destroy();
  this_._impl_.ip_address_.Destroy();
  delete this_._impl_.rd_;
  delete this_._impl_.esi_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EVPNMACIPAdvertisementRoute_class_data_ =
        EVPNMACIPAdvertisementRoute::InternalGenerateClassData_(EVPNMACIPAdvertisementRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNMACIPAdvertisementRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNMACIPAdvertisementRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EVPNMACIPAdvertisementRoute_class_data_.tc_table);
  return EVPNMACIPAdvertisementRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNMACIPAdvertisementRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNMACIPAdvertisementRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EVPNMACIPAdvertisementRoute_globals_));
  return EVPNMACIPAdvertisementRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EVPNMACIPAdvertisementRoute::ParseTableT_
    EVPNMACIPAdvertisementRoute::_table_ =
        EVPNMACIPAdvertisementRoute::InternalGenerateParseTable_(EVPNMACIPAdvertisementRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EVPNMACIPAdvertisementRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EVPNMACIPAdvertisementRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.labels_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.mac_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.ip_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.esi_ != nullptr);
      _impl_.esi_->Clear();
    }
  }
  _impl_.ethernet_tag_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // .apipb.EthernetSegmentIdentifier esi = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.esi_, this_._impl_.esi_->GetCachedSize(), target,
        stream);
  }

  // uint32 ethernet_tag = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_ethernet_tag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_ethernet_tag(), target);
    }
  }

  // string mac_address = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_mac_address().empty()) {
      const ::std::string& _s = this_._internal_mac_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EVPNMACIPAdvertisementRoute.mac_address");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // string ip_address = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_ip_address().empty()) {
      const ::std::string& _s = this_._internal_ip_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EVPNMACIPAdvertisementRoute.ip_address");
      target = stream->WriteStringMaybeAliased(5, _s, target);
    }
  }

  // repeated uint32 labels = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._labels_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt32Packed(
            6, this_._internal_labels(), byte_size, target);
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EVPNMACIPAdvertisementRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated uint32 labels = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt32SizeWithPackedTagSize(
              this_._internal_labels(), 1,
              this_._impl_._labels_cached_byte_size_);
    }
    // string mac_address = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_mac_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_mac_address());
      }
    }
    // string ip_address = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_ip_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_ip_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // .apipb.EthernetSegmentIdentifier esi = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.esi_);
    }
    // uint32 ethernet_tag = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_ethernet_tag() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ethernet_tag());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_labels()->MergeFrom(from._internal_labels());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_mac_address().empty()) {
        _this->_internal_set_mac_address(from._internal_mac_address());
      } else {
        if (_this->_impl_.mac_address_.IsDefault()) {
          _this->_internal_set_mac_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_ip_address().empty()) {
        _this->_internal_set_ip_address(from._internal_ip_address());
      } else {
        if (_this->_impl_.ip_address_.IsDefault()) {
          _this->_internal_set_ip_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.esi_ != nullptr);
      if (_this->_impl_.esi_ == nullptr) {
        _this->_impl_.esi_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_);
      } else {
        _this->_impl_.esi_->MergeFrom(*from._impl_.esi_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_ethernet_tag() != 0) {
        _this->_impl_.ethernet_tag_ = from._impl_.ethernet_tag_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void EVPNMACIPAdvertisementRoute::InternalSwap(EVPNMACIPAdvertisementRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.labels_.InternalSwap(&other->_impl_.labels_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mac_address_, &other->_impl_.mac_address_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ip_address_, &other->_impl_.ip_address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.ethernet_tag_)
      + sizeof(EVPNMACIPAdvertisementRoute::_impl_.ethernet_tag_)
      - PROTOBUF_FIELD_OFFSET(EVPNMACIPAdvertisementRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata EVPNMACIPAdvertisementRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void EVPNInclusiveMulticastEthernetTagRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
EVPNInclusiveMulticastEthernetTagRoute::EVPNInclusiveMulticastEthernetTagRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNInclusiveMulticastEthernetTagRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EVPNInclusiveMulticastEthernetTagRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNInclusiveMulticastEthernetTagRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EVPNInclusiveMulticastEthernetTagRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ip_address_(arena, from.ip_address_) {}

EVPNInclusiveMulticastEthernetTagRoute::EVPNInclusiveMulticastEthernetTagRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EVPNInclusiveMulticastEthernetTagRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNInclusiveMulticastEthernetTagRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EVPNInclusiveMulticastEthernetTagRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.ethernet_tag_ = from._impl_.ethernet_tag_;

  // @@protoc_insertion_point(copy_constructor:apipb.EVPNInclusiveMulticastEthernetTagRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNInclusiveMulticastEthernetTagRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ip_address_(arena) {}

inline void EVPNInclusiveMulticastEthernetTagRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, ethernet_tag_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::ethernet_tag_));
}
EVPNInclusiveMulticastEthernetTagRoute::~EVPNInclusiveMulticastEthernetTagRoute() {
  // @@protoc_insertion_point(destructor:apipb.EVPNInclusiveMulticastEthernetTagRoute)
  SharedDtor(*this);
}
inline void EVPNInclusiveMulticastEthernetTagRoute::SharedDtor(MessageLite& self) {
  EVPNInclusiveMulticastEthernetTagRoute& this_ = static_cast<EVPNInclusiveMulticastEthernetTagRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.ip_address_.Destroy();
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EVPNInclusiveMulticastEthernetTagRoute_class_data_ =
        EVPNInclusiveMulticastEthernetTagRoute::InternalGenerateClassData_(EVPNInclusiveMulticastEthernetTagRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNInclusiveMulticastEthernetTagRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNInclusiveMulticastEthernetTagRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EVPNInclusiveMulticastEthernetTagRoute_class_data_.tc_table);
  return EVPNInclusiveMulticastEthernetTagRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNInclusiveMulticastEthernetTagRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNInclusiveMulticastEthernetTagRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EVPNInclusiveMulticastEthernetTagRoute_globals_));
  return EVPNInclusiveMulticastEthernetTagRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EVPNInclusiveMulticastEthernetTagRoute::ParseTableT_
    EVPNInclusiveMulticastEthernetTagRoute::_table_ =
        EVPNInclusiveMulticastEthernetTagRoute::InternalGenerateParseTable_(EVPNInclusiveMulticastEthernetTagRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EVPNInclusiveMulticastEthernetTagRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EVPNInclusiveMulticastEthernetTagRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.ip_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  _impl_.ethernet_tag_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // uint32 ethernet_tag = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_ethernet_tag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_ethernet_tag(), target);
    }
  }

  // string ip_address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_ip_address().empty()) {
      const ::std::string& _s = this_._internal_ip_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EVPNInclusiveMulticastEthernetTagRoute.ip_address");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EVPNInclusiveMulticastEthernetTagRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // string ip_address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_ip_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_ip_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // uint32 ethernet_tag = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_ethernet_tag() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ethernet_tag());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_ip_address().empty()) {
        _this->_internal_set_ip_address(from._internal_ip_address());
      } else {
        if (_this->_impl_.ip_address_.IsDefault()) {
          _this->_internal_set_ip_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_ethernet_tag() != 0) {
        _this->_impl_.ethernet_tag_ = from._impl_.ethernet_tag_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void EVPNInclusiveMulticastEthernetTagRoute::InternalSwap(EVPNInclusiveMulticastEthernetTagRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ip_address_, &other->_impl_.ip_address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.ethernet_tag_)
      + sizeof(EVPNInclusiveMulticastEthernetTagRoute::_impl_.ethernet_tag_)
      - PROTOBUF_FIELD_OFFSET(EVPNInclusiveMulticastEthernetTagRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata EVPNInclusiveMulticastEthernetTagRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void EVPNEthernetSegmentRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
EVPNEthernetSegmentRoute::EVPNEthernetSegmentRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNEthernetSegmentRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EVPNEthernetSegmentRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNEthernetSegmentRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EVPNEthernetSegmentRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ip_address_(arena, from.ip_address_) {}

EVPNEthernetSegmentRoute::EVPNEthernetSegmentRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EVPNEthernetSegmentRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNEthernetSegmentRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EVPNEthernetSegmentRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.esi_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.EVPNEthernetSegmentRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNEthernetSegmentRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ip_address_(arena) {}

inline void EVPNEthernetSegmentRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, esi_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::esi_));
}
EVPNEthernetSegmentRoute::~EVPNEthernetSegmentRoute() {
  // @@protoc_insertion_point(destructor:apipb.EVPNEthernetSegmentRoute)
  SharedDtor(*this);
}
inline void EVPNEthernetSegmentRoute::SharedDtor(MessageLite& self) {
  EVPNEthernetSegmentRoute& this_ = static_cast<EVPNEthernetSegmentRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.ip_address_.Destroy();
  delete this_._impl_.rd_;
  delete this_._impl_.esi_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EVPNEthernetSegmentRoute_class_data_ =
        EVPNEthernetSegmentRoute::InternalGenerateClassData_(EVPNEthernetSegmentRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNEthernetSegmentRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNEthernetSegmentRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EVPNEthernetSegmentRoute_class_data_.tc_table);
  return EVPNEthernetSegmentRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNEthernetSegmentRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNEthernetSegmentRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EVPNEthernetSegmentRoute_globals_));
  return EVPNEthernetSegmentRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EVPNEthernetSegmentRoute::ParseTableT_
    EVPNEthernetSegmentRoute::_table_ =
        EVPNEthernetSegmentRoute::InternalGenerateParseTable_(EVPNEthernetSegmentRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EVPNEthernetSegmentRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EVPNEthernetSegmentRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.ip_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.esi_ != nullptr);
      _impl_.esi_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // .apipb.EthernetSegmentIdentifier esi = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.esi_, this_._impl_.esi_->GetCachedSize(), target,
        stream);
  }

  // string ip_address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_ip_address().empty()) {
      const ::std::string& _s = this_._internal_ip_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EVPNEthernetSegmentRoute.ip_address");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EVPNEthernetSegmentRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // string ip_address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_ip_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_ip_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // .apipb.EthernetSegmentIdentifier esi = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.esi_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_ip_address().empty()) {
        _this->_internal_set_ip_address(from._internal_ip_address());
      } else {
        if (_this->_impl_.ip_address_.IsDefault()) {
          _this->_internal_set_ip_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.esi_ != nullptr);
      if (_this->_impl_.esi_ == nullptr) {
        _this->_impl_.esi_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_);
      } else {
        _this->_impl_.esi_->MergeFrom(*from._impl_.esi_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void EVPNEthernetSegmentRoute::InternalSwap(EVPNEthernetSegmentRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ip_address_, &other->_impl_.ip_address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.esi_)
      + sizeof(EVPNEthernetSegmentRoute::_impl_.esi_)
      - PROTOBUF_FIELD_OFFSET(EVPNEthernetSegmentRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata EVPNEthernetSegmentRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void EVPNIPPrefixRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
EVPNIPPrefixRoute::EVPNIPPrefixRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNIPPrefixRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EVPNIPPrefixRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNIPPrefixRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EVPNIPPrefixRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ip_prefix_(arena, from.ip_prefix_),
        gw_address_(arena, from.gw_address_) {}

EVPNIPPrefixRoute::EVPNIPPrefixRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EVPNIPPrefixRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNIPPrefixRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EVPNIPPrefixRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.esi_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, ethernet_tag_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, ethernet_tag_),
           offsetof(Impl_, label_) -
               offsetof(Impl_, ethernet_tag_) +
               sizeof(Impl_::label_));

  // @@protoc_insertion_point(copy_constructor:apipb.EVPNIPPrefixRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNIPPrefixRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ip_prefix_(arena),
        gw_address_(arena) {}

inline void EVPNIPPrefixRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, label_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::label_));
}
EVPNIPPrefixRoute::~EVPNIPPrefixRoute() {
  // @@protoc_insertion_point(destructor:apipb.EVPNIPPrefixRoute)
  SharedDtor(*this);
}
inline void EVPNIPPrefixRoute::SharedDtor(MessageLite& self) {
  EVPNIPPrefixRoute& this_ = static_cast<EVPNIPPrefixRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.ip_prefix_.Destroy();
  this_._impl_.gw_address_.Destroy();
  delete this_._impl_.rd_;
  delete this_._impl_.esi_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EVPNIPPrefixRoute_class_data_ =
        EVPNIPPrefixRoute::InternalGenerateClassData_(EVPNIPPrefixRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNIPPrefixRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNIPPrefixRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EVPNIPPrefixRoute_class_data_.tc_table);
  return EVPNIPPrefixRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNIPPrefixRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNIPPrefixRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EVPNIPPrefixRoute_globals_));
  return EVPNIPPrefixRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EVPNIPPrefixRoute::ParseTableT_
    EVPNIPPrefixRoute::_table_ =
        EVPNIPPrefixRoute::InternalGenerateParseTable_(EVPNIPPrefixRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EVPNIPPrefixRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EVPNIPPrefixRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.ip_prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.gw_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.esi_ != nullptr);
      _impl_.esi_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000070U)) {
    ::memset(&_impl_.ethernet_tag_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.label_) -
        reinterpret_cast<char*>(&_impl_.ethernet_tag_)) + sizeof(_impl_.label_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // .apipb.EthernetSegmentIdentifier esi = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.esi_, this_._impl_.esi_->GetCachedSize(), target,
        stream);
  }

  // uint32 ethernet_tag = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_ethernet_tag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_ethernet_tag(), target);
    }
  }

  // string ip_prefix = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_ip_prefix().empty()) {
      const ::std::string& _s = this_._internal_ip_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EVPNIPPrefixRoute.ip_prefix");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // uint32 ip_prefix_len = 5;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_ip_prefix_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          5, this_._internal_ip_prefix_len(), target);
    }
  }

  // string gw_address = 6;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_gw_address().empty()) {
      const ::std::string& _s = this_._internal_gw_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.EVPNIPPrefixRoute.gw_address");
      target = stream->WriteStringMaybeAliased(6, _s, target);
    }
  }

  // uint32 label = 7;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_label() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          7, this_._internal_label(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EVPNIPPrefixRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // string ip_prefix = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_ip_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_ip_prefix());
      }
    }
    // string gw_address = 6;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_gw_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_gw_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // .apipb.EthernetSegmentIdentifier esi = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.esi_);
    }
    // uint32 ethernet_tag = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_ethernet_tag() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ethernet_tag());
      }
    }
    // uint32 ip_prefix_len = 5;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_ip_prefix_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ip_prefix_len());
      }
    }
    // uint32 label = 7;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_label() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_label());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_ip_prefix().empty()) {
        _this->_internal_set_ip_prefix(from._internal_ip_prefix());
      } else {
        if (_this->_impl_.ip_prefix_.IsDefault()) {
          _this->_internal_set_ip_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_gw_address().empty()) {
        _this->_internal_set_gw_address(from._internal_gw_address());
      } else {
        if (_this->_impl_.gw_address_.IsDefault()) {
          _this->_internal_set_gw_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.esi_ != nullptr);
      if (_this->_impl_.esi_ == nullptr) {
        _this->_impl_.esi_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.esi_);
      } else {
        _this->_impl_.esi_->MergeFrom(*from._impl_.esi_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_ethernet_tag() != 0) {
        _this->_impl_.ethernet_tag_ = from._impl_.ethernet_tag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_ip_prefix_len() != 0) {
        _this->_impl_.ip_prefix_len_ = from._impl_.ip_prefix_len_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_label() != 0) {
        _this->_impl_.label_ = from._impl_.label_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void EVPNIPPrefixRoute::InternalSwap(EVPNIPPrefixRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ip_prefix_, &other->_impl_.ip_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.gw_address_, &other->_impl_.gw_address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.label_)
      + sizeof(EVPNIPPrefixRoute::_impl_.label_)
      - PROTOBUF_FIELD_OFFSET(EVPNIPPrefixRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata EVPNIPPrefixRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void EVPNIPMSIRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
void EVPNIPMSIRoute::clear_rt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rt_ != nullptr) _impl_.rt_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
EVPNIPMSIRoute::EVPNIPMSIRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNIPMSIRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EVPNIPMSIRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNIPMSIRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::EVPNIPMSIRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

EVPNIPMSIRoute::EVPNIPMSIRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EVPNIPMSIRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EVPNIPMSIRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EVPNIPMSIRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.rt_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rt_)
                : nullptr;
  _impl_.ethernet_tag_ = from._impl_.ethernet_tag_;

  // @@protoc_insertion_point(copy_constructor:apipb.EVPNIPMSIRoute)
}
PROTOBUF_NDEBUG_INLINE EVPNIPMSIRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void EVPNIPMSIRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, ethernet_tag_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::ethernet_tag_));
}
EVPNIPMSIRoute::~EVPNIPMSIRoute() {
  // @@protoc_insertion_point(destructor:apipb.EVPNIPMSIRoute)
  SharedDtor(*this);
}
inline void EVPNIPMSIRoute::SharedDtor(MessageLite& self) {
  EVPNIPMSIRoute& this_ = static_cast<EVPNIPMSIRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.rd_;
  delete this_._impl_.rt_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EVPNIPMSIRoute_class_data_ =
        EVPNIPMSIRoute::InternalGenerateClassData_(EVPNIPMSIRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNIPMSIRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNIPMSIRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EVPNIPMSIRoute_class_data_.tc_table);
  return EVPNIPMSIRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EVPNIPMSIRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EVPNIPMSIRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EVPNIPMSIRoute_globals_));
  return EVPNIPMSIRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EVPNIPMSIRoute::ParseTableT_
    EVPNIPMSIRoute::_table_ =
        EVPNIPMSIRoute::InternalGenerateParseTable_(EVPNIPMSIRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EVPNIPMSIRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EVPNIPMSIRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rt_ != nullptr);
      _impl_.rt_->Clear();
    }
  }
  _impl_.ethernet_tag_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // uint32 ethernet_tag = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_ethernet_tag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_ethernet_tag(), target);
    }
  }

  // .google.protobuf.Any rt = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.rt_, this_._impl_.rt_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EVPNIPMSIRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // .google.protobuf.Any rt = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rt_);
    }
    // uint32 ethernet_tag = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_ethernet_tag() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ethernet_tag());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rt_ != nullptr);
      if (_this->_impl_.rt_ == nullptr) {
        _this->_impl_.rt_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rt_);
      } else {
        _this->_impl_.rt_->MergeFrom(*from._impl_.rt_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_ethernet_tag() != 0) {
        _this->_impl_.ethernet_tag_ = from._impl_.ethernet_tag_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void EVPNIPMSIRoute::InternalSwap(EVPNIPMSIRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.ethernet_tag_)
      + sizeof(EVPNIPMSIRoute::_impl_.ethernet_tag_)
      - PROTOBUF_FIELD_OFFSET(EVPNIPMSIRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata EVPNIPMSIRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRPolicyNLRI::SRPolicyNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRPolicyNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRPolicyNLRI)
}
PROTOBUF_NDEBUG_INLINE SRPolicyNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRPolicyNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        endpoint_(arena, from.endpoint_) {}

SRPolicyNLRI::SRPolicyNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRPolicyNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRPolicyNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRPolicyNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, length_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, length_),
           offsetof(Impl_, color_) -
               offsetof(Impl_, length_) +
               sizeof(Impl_::color_));

  // @@protoc_insertion_point(copy_constructor:apipb.SRPolicyNLRI)
}
PROTOBUF_NDEBUG_INLINE SRPolicyNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        endpoint_(arena) {}

inline void SRPolicyNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, length_),
           0,
           offsetof(Impl_, color_) -
               offsetof(Impl_, length_) +
               sizeof(Impl_::color_));
}
SRPolicyNLRI::~SRPolicyNLRI() {
  // @@protoc_insertion_point(destructor:apipb.SRPolicyNLRI)
  SharedDtor(*this);
}
inline void SRPolicyNLRI::SharedDtor(MessageLite& self) {
  SRPolicyNLRI& this_ = static_cast<SRPolicyNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.endpoint_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRPolicyNLRI_class_data_ =
        SRPolicyNLRI::InternalGenerateClassData_(SRPolicyNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRPolicyNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRPolicyNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRPolicyNLRI_class_data_.tc_table);
  return SRPolicyNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRPolicyNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRPolicyNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRPolicyNLRI_globals_));
  return SRPolicyNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRPolicyNLRI::ParseTableT_
    SRPolicyNLRI::_table_ =
        SRPolicyNLRI::InternalGenerateParseTable_(SRPolicyNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRPolicyNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRPolicyNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.endpoint_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.color_) -
        reinterpret_cast<char*>(&_impl_.length_)) + sizeof(_impl_.color_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 length = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_length(), target);
    }
  }

  // uint32 distinguisher = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_distinguisher() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_distinguisher(), target);
    }
  }

  // uint32 color = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_color() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_color(), target);
    }
  }

  // bytes endpoint = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_endpoint().empty()) {
      const ::std::string& _s = this_._internal_endpoint();
      target = stream->WriteBytesMaybeAliased(4, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRPolicyNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bytes endpoint = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_endpoint().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_endpoint());
      }
    }
    // uint32 length = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_length());
      }
    }
    // uint32 distinguisher = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_distinguisher() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_distinguisher());
      }
    }
    // uint32 color = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_color() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_color());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_endpoint().empty()) {
        _this->_internal_set_endpoint(from._internal_endpoint());
      } else {
        if (_this->_impl_.endpoint_.IsDefault()) {
          _this->_internal_set_endpoint("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_distinguisher() != 0) {
        _this->_impl_.distinguisher_ = from._impl_.distinguisher_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_color() != 0) {
        _this->_impl_.color_ = from._impl_.color_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRPolicyNLRI::InternalSwap(SRPolicyNLRI* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.endpoint_, &other->_impl_.endpoint_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.color_)
      + sizeof(SRPolicyNLRI::_impl_.color_)
      - PROTOBUF_FIELD_OFFSET(SRPolicyNLRI, _impl_.length_)>(
          reinterpret_cast<char*>(&_impl_.length_),
          reinterpret_cast<char*>(&other->_impl_.length_));
}

::google::protobuf::Metadata SRPolicyNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void LabeledVPNIPAddressPrefix::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
LabeledVPNIPAddressPrefix::LabeledVPNIPAddressPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LabeledVPNIPAddressPrefix_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LabeledVPNIPAddressPrefix)
}
PROTOBUF_NDEBUG_INLINE LabeledVPNIPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LabeledVPNIPAddressPrefix& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        labels_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LabeledVPNIPAddressPrefix,
              PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.labels_)>()
          , from.labels_
        }
        ,
        _labels_cached_byte_size_{0},
        prefix_(arena, from.prefix_) {}

LabeledVPNIPAddressPrefix::LabeledVPNIPAddressPrefix(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LabeledVPNIPAddressPrefix& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LabeledVPNIPAddressPrefix_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LabeledVPNIPAddressPrefix* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  _impl_.prefix_len_ = from._impl_.prefix_len_;

  // @@protoc_insertion_point(copy_constructor:apipb.LabeledVPNIPAddressPrefix)
}
PROTOBUF_NDEBUG_INLINE LabeledVPNIPAddressPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        labels_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LabeledVPNIPAddressPrefix,
            PROTOBUF_FIELD_OFFSET(::apipb::LabeledVPNIPAddressPrefix, _impl_.labels_)>()
         }
        ,
        _labels_cached_byte_size_{0},
        prefix_(arena) {}

inline void LabeledVPNIPAddressPrefix::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, prefix_len_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::prefix_len_));
}
LabeledVPNIPAddressPrefix::~LabeledVPNIPAddressPrefix() {
  // @@protoc_insertion_point(destructor:apipb.LabeledVPNIPAddressPrefix)
  SharedDtor(*this);
}
inline void LabeledVPNIPAddressPrefix::SharedDtor(MessageLite& self) {
  LabeledVPNIPAddressPrefix& this_ = static_cast<LabeledVPNIPAddressPrefix&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prefix_.Destroy();
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LabeledVPNIPAddressPrefix_class_data_ =
        LabeledVPNIPAddressPrefix::InternalGenerateClassData_(LabeledVPNIPAddressPrefix_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LabeledVPNIPAddressPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LabeledVPNIPAddressPrefix_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LabeledVPNIPAddressPrefix_class_data_.tc_table);
  return LabeledVPNIPAddressPrefix_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LabeledVPNIPAddressPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LabeledVPNIPAddressPrefix_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LabeledVPNIPAddressPrefix_globals_));
  return LabeledVPNIPAddressPrefix_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LabeledVPNIPAddressPrefix::ParseTableT_
    LabeledVPNIPAddressPrefix::_table_ =
        LabeledVPNIPAddressPrefix::InternalGenerateParseTable_(LabeledVPNIPAddressPrefix_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LabeledVPNIPAddressPrefix::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LabeledVPNIPAddressPrefix)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.labels_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  _impl_.prefix_len_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated uint32 labels = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._labels_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt32Packed(
            1, this_._internal_labels(), byte_size, target);
      }
    }
  }

  // .google.protobuf.Any rd = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // uint32 prefix_len = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_prefix_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_prefix_len(), target);
    }
  }

  // string prefix = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_prefix().empty()) {
      const ::std::string& _s = this_._internal_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LabeledVPNIPAddressPrefix.prefix");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LabeledVPNIPAddressPrefix)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated uint32 labels = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt32SizeWithPackedTagSize(
              this_._internal_labels(), 1,
              this_._impl_._labels_cached_byte_size_);
    }
    // string prefix = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prefix());
      }
    }
    // .google.protobuf.Any rd = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // uint32 prefix_len = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_prefix_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_prefix_len());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_labels()->MergeFrom(from._internal_labels());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_prefix().empty()) {
        _this->_internal_set_prefix(from._internal_prefix());
      } else {
        if (_this->_impl_.prefix_.IsDefault()) {
          _this->_internal_set_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_prefix_len() != 0) {
        _this->_impl_.prefix_len_ = from._impl_.prefix_len_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LabeledVPNIPAddressPrefix::InternalSwap(LabeledVPNIPAddressPrefix* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.labels_.InternalSwap(&other->_impl_.labels_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.prefix_, &other->_impl_.prefix_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.prefix_len_)
      + sizeof(LabeledVPNIPAddressPrefix::_impl_.prefix_len_)
      - PROTOBUF_FIELD_OFFSET(LabeledVPNIPAddressPrefix, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata LabeledVPNIPAddressPrefix::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void RouteTargetMembershipNLRI::clear_rt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rt_ != nullptr) _impl_.rt_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
RouteTargetMembershipNLRI::RouteTargetMembershipNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteTargetMembershipNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RouteTargetMembershipNLRI)
}
PROTOBUF_NDEBUG_INLINE RouteTargetMembershipNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::RouteTargetMembershipNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

RouteTargetMembershipNLRI::RouteTargetMembershipNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RouteTargetMembershipNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouteTargetMembershipNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RouteTargetMembershipNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rt_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rt_)
                : nullptr;
  _impl_.asn_ = from._impl_.asn_;

  // @@protoc_insertion_point(copy_constructor:apipb.RouteTargetMembershipNLRI)
}
PROTOBUF_NDEBUG_INLINE RouteTargetMembershipNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RouteTargetMembershipNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rt_),
           0,
           offsetof(Impl_, asn_) -
               offsetof(Impl_, rt_) +
               sizeof(Impl_::asn_));
}
RouteTargetMembershipNLRI::~RouteTargetMembershipNLRI() {
  // @@protoc_insertion_point(destructor:apipb.RouteTargetMembershipNLRI)
  SharedDtor(*this);
}
inline void RouteTargetMembershipNLRI::SharedDtor(MessageLite& self) {
  RouteTargetMembershipNLRI& this_ = static_cast<RouteTargetMembershipNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.rt_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RouteTargetMembershipNLRI_class_data_ =
        RouteTargetMembershipNLRI::InternalGenerateClassData_(RouteTargetMembershipNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteTargetMembershipNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteTargetMembershipNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RouteTargetMembershipNLRI_class_data_.tc_table);
  return RouteTargetMembershipNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouteTargetMembershipNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouteTargetMembershipNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RouteTargetMembershipNLRI_globals_));
  return RouteTargetMembershipNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RouteTargetMembershipNLRI::ParseTableT_
    RouteTargetMembershipNLRI::_table_ =
        RouteTargetMembershipNLRI::InternalGenerateParseTable_(RouteTargetMembershipNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RouteTargetMembershipNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RouteTargetMembershipNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.rt_ != nullptr);
    _impl_.rt_->Clear();
  }
  _impl_.asn_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // .google.protobuf.Any rt = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.rt_, this_._impl_.rt_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RouteTargetMembershipNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // .google.protobuf.Any rt = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rt_);
    }
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.rt_ != nullptr);
      if (_this->_impl_.rt_ == nullptr) {
        _this->_impl_.rt_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rt_);
      } else {
        _this->_impl_.rt_->MergeFrom(*from._impl_.rt_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RouteTargetMembershipNLRI::InternalSwap(RouteTargetMembershipNLRI* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_.asn_)
      + sizeof(RouteTargetMembershipNLRI::_impl_.asn_)
      - PROTOBUF_FIELD_OFFSET(RouteTargetMembershipNLRI, _impl_.rt_)>(
          reinterpret_cast<char*>(&_impl_.rt_),
          reinterpret_cast<char*>(&other->_impl_.rt_));
}

::google::protobuf::Metadata RouteTargetMembershipNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

FlowSpecIPPrefix::FlowSpecIPPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecIPPrefix_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.FlowSpecIPPrefix)
}
PROTOBUF_NDEBUG_INLINE FlowSpecIPPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::FlowSpecIPPrefix& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prefix_(arena, from.prefix_) {}

FlowSpecIPPrefix::FlowSpecIPPrefix(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FlowSpecIPPrefix& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecIPPrefix_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FlowSpecIPPrefix* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_),
           offsetof(Impl_, offset_) -
               offsetof(Impl_, type_) +
               sizeof(Impl_::offset_));

  // @@protoc_insertion_point(copy_constructor:apipb.FlowSpecIPPrefix)
}
PROTOBUF_NDEBUG_INLINE FlowSpecIPPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        prefix_(arena) {}

inline void FlowSpecIPPrefix::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_),
           0,
           offsetof(Impl_, offset_) -
               offsetof(Impl_, type_) +
               sizeof(Impl_::offset_));
}
FlowSpecIPPrefix::~FlowSpecIPPrefix() {
  // @@protoc_insertion_point(destructor:apipb.FlowSpecIPPrefix)
  SharedDtor(*this);
}
inline void FlowSpecIPPrefix::SharedDtor(MessageLite& self) {
  FlowSpecIPPrefix& this_ = static_cast<FlowSpecIPPrefix&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prefix_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FlowSpecIPPrefix_class_data_ =
        FlowSpecIPPrefix::InternalGenerateClassData_(FlowSpecIPPrefix_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecIPPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecIPPrefix_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FlowSpecIPPrefix_class_data_.tc_table);
  return FlowSpecIPPrefix_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecIPPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecIPPrefix_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FlowSpecIPPrefix_globals_));
  return FlowSpecIPPrefix_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FlowSpecIPPrefix::ParseTableT_
    FlowSpecIPPrefix::_table_ =
        FlowSpecIPPrefix::InternalGenerateParseTable_(FlowSpecIPPrefix_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FlowSpecIPPrefix::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.FlowSpecIPPrefix)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.prefix_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.offset_) -
        reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.offset_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // uint32 prefix_len = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_prefix_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_prefix_len(), target);
    }
  }

  // string prefix = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_prefix().empty()) {
      const ::std::string& _s = this_._internal_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.FlowSpecIPPrefix.prefix");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // uint32 offset = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_offset() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_offset(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.FlowSpecIPPrefix)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // string prefix = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prefix());
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
    // uint32 prefix_len = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_prefix_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_prefix_len());
      }
    }
    // uint32 offset = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_offset());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_prefix().empty()) {
        _this->_internal_set_prefix(from._internal_prefix());
      } else {
        if (_this->_impl_.prefix_.IsDefault()) {
          _this->_internal_set_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_prefix_len() != 0) {
        _this->_impl_.prefix_len_ = from._impl_.prefix_len_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_offset() != 0) {
        _this->_impl_.offset_ = from._impl_.offset_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void FlowSpecIPPrefix::InternalSwap(FlowSpecIPPrefix* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.prefix_, &other->_impl_.prefix_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.offset_)
      + sizeof(FlowSpecIPPrefix::_impl_.offset_)
      - PROTOBUF_FIELD_OFFSET(FlowSpecIPPrefix, _impl_.type_)>(
          reinterpret_cast<char*>(&_impl_.type_),
          reinterpret_cast<char*>(&other->_impl_.type_));
}

::google::protobuf::Metadata FlowSpecIPPrefix::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

FlowSpecMAC::FlowSpecMAC(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecMAC_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.FlowSpecMAC)
}
PROTOBUF_NDEBUG_INLINE FlowSpecMAC::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::FlowSpecMAC& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

FlowSpecMAC::FlowSpecMAC(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FlowSpecMAC& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecMAC_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FlowSpecMAC* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.FlowSpecMAC)
}
PROTOBUF_NDEBUG_INLINE FlowSpecMAC::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void FlowSpecMAC::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.type_ = {};
}
FlowSpecMAC::~FlowSpecMAC() {
  // @@protoc_insertion_point(destructor:apipb.FlowSpecMAC)
  SharedDtor(*this);
}
inline void FlowSpecMAC::SharedDtor(MessageLite& self) {
  FlowSpecMAC& this_ = static_cast<FlowSpecMAC&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FlowSpecMAC_class_data_ =
        FlowSpecMAC::InternalGenerateClassData_(FlowSpecMAC_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecMAC::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecMAC_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FlowSpecMAC_class_data_.tc_table);
  return FlowSpecMAC_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecMAC::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecMAC_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FlowSpecMAC_globals_));
  return FlowSpecMAC_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FlowSpecMAC::ParseTableT_
    FlowSpecMAC::_table_ =
        FlowSpecMAC::InternalGenerateParseTable_(FlowSpecMAC_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FlowSpecMAC::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.FlowSpecMAC)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // string address = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.FlowSpecMAC.address");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.FlowSpecMAC)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string address = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata FlowSpecMAC::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

FlowSpecComponentItem::FlowSpecComponentItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecComponentItem_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.FlowSpecComponentItem)
}
FlowSpecComponentItem::FlowSpecComponentItem(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FlowSpecComponentItem& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecComponentItem_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE FlowSpecComponentItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void FlowSpecComponentItem::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, value_),
           0,
           offsetof(Impl_, op_) -
               offsetof(Impl_, value_) +
               sizeof(Impl_::op_));
}
FlowSpecComponentItem::~FlowSpecComponentItem() {
  // @@protoc_insertion_point(destructor:apipb.FlowSpecComponentItem)
  SharedDtor(*this);
}
inline void FlowSpecComponentItem::SharedDtor(MessageLite& self) {
  FlowSpecComponentItem& this_ = static_cast<FlowSpecComponentItem&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FlowSpecComponentItem_class_data_ =
        FlowSpecComponentItem::InternalGenerateClassData_(FlowSpecComponentItem_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecComponentItem::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecComponentItem_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FlowSpecComponentItem_class_data_.tc_table);
  return FlowSpecComponentItem_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecComponentItem::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecComponentItem_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FlowSpecComponentItem_globals_));
  return FlowSpecComponentItem_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FlowSpecComponentItem::ParseTableT_
    FlowSpecComponentItem::_table_ =
        FlowSpecComponentItem::InternalGenerateParseTable_(FlowSpecComponentItem_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FlowSpecComponentItem::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.FlowSpecComponentItem)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.value_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.op_) -
        reinterpret_cast<char*>(&_impl_.value_)) + sizeof(_impl_.op_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 op = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_op() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_op(), target);
    }
  }

  // uint64 value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_value() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          2, this_._internal_value(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.FlowSpecComponentItem)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint64 value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_value() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_value());
      }
    }
    // uint32 op = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_op() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_op());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_value() != 0) {
        _this->_impl_.value_ = from._impl_.value_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_op() != 0) {
        _this->_impl_.op_ = from._impl_.op_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void FlowSpecComponentItem::InternalSwap(FlowSpecComponentItem* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_.op_)
      + sizeof(FlowSpecComponentItem::_impl_.op_)
      - PROTOBUF_FIELD_OFFSET(FlowSpecComponentItem, _impl_.value_)>(
          reinterpret_cast<char*>(&_impl_.value_),
          reinterpret_cast<char*>(&other->_impl_.value_));
}

::google::protobuf::Metadata FlowSpecComponentItem::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

FlowSpecComponent::FlowSpecComponent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecComponent_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.FlowSpecComponent)
}
PROTOBUF_NDEBUG_INLINE FlowSpecComponent::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::FlowSpecComponent& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        items_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::FlowSpecComponent,
              PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponent, _impl_.items_)>()
          , from.items_
        }
     {}

FlowSpecComponent::FlowSpecComponent(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FlowSpecComponent& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecComponent_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FlowSpecComponent* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.FlowSpecComponent)
}
PROTOBUF_NDEBUG_INLINE FlowSpecComponent::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        items_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::FlowSpecComponent,
            PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecComponent, _impl_.items_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FlowSpecComponent_class_data_ =
        FlowSpecComponent::InternalGenerateClassData_(FlowSpecComponent_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecComponent::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecComponent_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FlowSpecComponent_class_data_.tc_table);
  return FlowSpecComponent_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecComponent::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecComponent_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FlowSpecComponent_globals_));
  return FlowSpecComponent_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FlowSpecComponent::ParseTableT_
    FlowSpecComponent::_table_ =
        FlowSpecComponent::InternalGenerateParseTable_(FlowSpecComponent_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FlowSpecComponent::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.FlowSpecComponent)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.items_.Clear();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // repeated .apipb.FlowSpecComponentItem items = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_items_size());
         i < n; i++) {
      const auto& repfield = this_._internal_items().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.FlowSpecComponent)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .apipb.FlowSpecComponentItem items = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_items_size();
      for (const auto& msg : this_._internal_items()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_items()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_items());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata FlowSpecComponent::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void FlowSpecNLRI::clear_rules() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rules_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
FlowSpecNLRI::FlowSpecNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.FlowSpecNLRI)
}
PROTOBUF_NDEBUG_INLINE FlowSpecNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::FlowSpecNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        rules_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::FlowSpecNLRI,
              PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecNLRI, _impl_.rules_)>()
          , from.rules_
        }
     {}

FlowSpecNLRI::FlowSpecNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FlowSpecNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlowSpecNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FlowSpecNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.FlowSpecNLRI)
}
PROTOBUF_NDEBUG_INLINE FlowSpecNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        rules_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::FlowSpecNLRI,
            PROTOBUF_FIELD_OFFSET(::apipb::FlowSpecNLRI, _impl_.rules_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FlowSpecNLRI_class_data_ =
        FlowSpecNLRI::InternalGenerateClassData_(FlowSpecNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FlowSpecNLRI_class_data_.tc_table);
  return FlowSpecNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlowSpecNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlowSpecNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FlowSpecNLRI_globals_));
  return FlowSpecNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FlowSpecNLRI::ParseTableT_
    FlowSpecNLRI::_table_ =
        FlowSpecNLRI::InternalGenerateParseTable_(FlowSpecNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FlowSpecNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.FlowSpecNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.rules_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.FlowSpecNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .google.protobuf.Any rules = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_rules_size();
      for (const auto& msg : this_._internal_rules()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata FlowSpecNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void VPNFlowSpecNLRI::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void VPNFlowSpecNLRI::clear_rules() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.rules_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
VPNFlowSpecNLRI::VPNFlowSpecNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, VPNFlowSpecNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.VPNFlowSpecNLRI)
}
PROTOBUF_NDEBUG_INLINE VPNFlowSpecNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::VPNFlowSpecNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        rules_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::VPNFlowSpecNLRI,
              PROTOBUF_FIELD_OFFSET(::apipb::VPNFlowSpecNLRI, _impl_.rules_)>()
          , from.rules_
        }
     {}

VPNFlowSpecNLRI::VPNFlowSpecNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const VPNFlowSpecNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, VPNFlowSpecNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  VPNFlowSpecNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.VPNFlowSpecNLRI)
}
PROTOBUF_NDEBUG_INLINE VPNFlowSpecNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        rules_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::VPNFlowSpecNLRI,
            PROTOBUF_FIELD_OFFSET(::apipb::VPNFlowSpecNLRI, _impl_.rules_)>()
         }
     {}

inline void VPNFlowSpecNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.rd_ = {};
}
VPNFlowSpecNLRI::~VPNFlowSpecNLRI() {
  // @@protoc_insertion_point(destructor:apipb.VPNFlowSpecNLRI)
  SharedDtor(*this);
}
inline void VPNFlowSpecNLRI::SharedDtor(MessageLite& self) {
  VPNFlowSpecNLRI& this_ = static_cast<VPNFlowSpecNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull VPNFlowSpecNLRI_class_data_ =
        VPNFlowSpecNLRI::InternalGenerateClassData_(VPNFlowSpecNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
VPNFlowSpecNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&VPNFlowSpecNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(VPNFlowSpecNLRI_class_data_.tc_table);
  return VPNFlowSpecNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
VPNFlowSpecNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&VPNFlowSpecNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&VPNFlowSpecNLRI_globals_));
  return VPNFlowSpecNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const VPNFlowSpecNLRI::ParseTableT_
    VPNFlowSpecNLRI::_table_ =
        VPNFlowSpecNLRI::InternalGenerateParseTable_(VPNFlowSpecNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void VPNFlowSpecNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.VPNFlowSpecNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.rules_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // repeated .google.protobuf.Any rules = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_rules_size());
         i < n; i++) {
      const auto& repfield = this_._internal_rules().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.VPNFlowSpecNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .google.protobuf.Any rules = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_rules_size();
      for (const auto& msg : this_._internal_rules()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_rules()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_rules());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata VPNFlowSpecNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

OpaqueNLRI::OpaqueNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OpaqueNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.OpaqueNLRI)
}
PROTOBUF_NDEBUG_INLINE OpaqueNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::OpaqueNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        key_(arena, from.key_),
        value_(arena, from.value_) {}

OpaqueNLRI::OpaqueNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const OpaqueNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OpaqueNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  OpaqueNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.OpaqueNLRI)
}
PROTOBUF_NDEBUG_INLINE OpaqueNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        key_(arena),
        value_(arena) {}

inline void OpaqueNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
OpaqueNLRI::~OpaqueNLRI() {
  // @@protoc_insertion_point(destructor:apipb.OpaqueNLRI)
  SharedDtor(*this);
}
inline void OpaqueNLRI::SharedDtor(MessageLite& self) {
  OpaqueNLRI& this_ = static_cast<OpaqueNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.key_.Destroy();
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull OpaqueNLRI_class_data_ =
        OpaqueNLRI::InternalGenerateClassData_(OpaqueNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OpaqueNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OpaqueNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(OpaqueNLRI_class_data_.tc_table);
  return OpaqueNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OpaqueNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OpaqueNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&OpaqueNLRI_globals_));
  return OpaqueNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const OpaqueNLRI::ParseTableT_
    OpaqueNLRI::_table_ =
        OpaqueNLRI::InternalGenerateParseTable_(OpaqueNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void OpaqueNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.OpaqueNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.key_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.value_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bytes key = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_key().empty()) {
      const ::std::string& _s = this_._internal_key();
      target = stream->WriteBytesMaybeAliased(1, _s, target);
    }
  }

  // bytes value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.OpaqueNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_key().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_key());
      }
    }
    // bytes value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_key().empty()) {
        _this->_internal_set_key(from._internal_key());
      } else {
        if (_this->_impl_.key_.IsDefault()) {
          _this->_internal_set_key("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata OpaqueNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsNodeDescriptor::LsNodeDescriptor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsNodeDescriptor_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsNodeDescriptor)
}
PROTOBUF_NDEBUG_INLINE LsNodeDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsNodeDescriptor& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        igp_router_id_(arena, from.igp_router_id_),
        bgp_router_id_(arena, from.bgp_router_id_) {}

LsNodeDescriptor::LsNodeDescriptor(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsNodeDescriptor& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsNodeDescriptor_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsNodeDescriptor* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, asn_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, asn_),
           offsetof(Impl_, bgp_confederation_member_) -
               offsetof(Impl_, asn_) +
               sizeof(Impl_::bgp_confederation_member_));

  // @@protoc_insertion_point(copy_constructor:apipb.LsNodeDescriptor)
}
PROTOBUF_NDEBUG_INLINE LsNodeDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        igp_router_id_(arena),
        bgp_router_id_(arena) {}

inline void LsNodeDescriptor::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, asn_),
           0,
           offsetof(Impl_, bgp_confederation_member_) -
               offsetof(Impl_, asn_) +
               sizeof(Impl_::bgp_confederation_member_));
}
LsNodeDescriptor::~LsNodeDescriptor() {
  // @@protoc_insertion_point(destructor:apipb.LsNodeDescriptor)
  SharedDtor(*this);
}
inline void LsNodeDescriptor::SharedDtor(MessageLite& self) {
  LsNodeDescriptor& this_ = static_cast<LsNodeDescriptor&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.igp_router_id_.Destroy();
  this_._impl_.bgp_router_id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsNodeDescriptor_class_data_ =
        LsNodeDescriptor::InternalGenerateClassData_(LsNodeDescriptor_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsNodeDescriptor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsNodeDescriptor_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsNodeDescriptor_class_data_.tc_table);
  return LsNodeDescriptor_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsNodeDescriptor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsNodeDescriptor_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsNodeDescriptor_globals_));
  return LsNodeDescriptor_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsNodeDescriptor::ParseTableT_
    LsNodeDescriptor::_table_ =
        LsNodeDescriptor::InternalGenerateParseTable_(LsNodeDescriptor_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsNodeDescriptor::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsNodeDescriptor)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.igp_router_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.bgp_router_id_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000007cU)) {
    ::memset(&_impl_.asn_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.bgp_confederation_member_) -
        reinterpret_cast<char*>(&_impl_.asn_)) + sizeof(_impl_.bgp_confederation_member_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // uint32 bgp_ls_id = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_bgp_ls_id() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_bgp_ls_id(), target);
    }
  }

  // uint32 ospf_area_id = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_ospf_area_id() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_ospf_area_id(), target);
    }
  }

  // bool pseudonode = 4;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_pseudonode() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_pseudonode(), target);
    }
  }

  // string igp_router_id = 5;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_igp_router_id().empty()) {
      const ::std::string& _s = this_._internal_igp_router_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsNodeDescriptor.igp_router_id");
      target = stream->WriteStringMaybeAliased(5, _s, target);
    }
  }

  // string bgp_router_id = 6;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_bgp_router_id().empty()) {
      const ::std::string& _s = this_._internal_bgp_router_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsNodeDescriptor.bgp_router_id");
      target = stream->WriteStringMaybeAliased(6, _s, target);
    }
  }

  // uint32 bgp_confederation_member = 7;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_bgp_confederation_member() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          7, this_._internal_bgp_confederation_member(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsNodeDescriptor)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // string igp_router_id = 5;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_igp_router_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_igp_router_id());
      }
    }
    // string bgp_router_id = 6;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_bgp_router_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_bgp_router_id());
      }
    }
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // uint32 bgp_ls_id = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_bgp_ls_id() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_bgp_ls_id());
      }
    }
    // uint32 ospf_area_id = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_ospf_area_id() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_ospf_area_id());
      }
    }
    // bool pseudonode = 4;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_pseudonode() != 0) {
        total_size += 2;
      }
    }
    // uint32 bgp_confederation_member = 7;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_bgp_confederation_member() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_bgp_confederation_member());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_igp_router_id().empty()) {
        _this->_internal_set_igp_router_id(from._internal_igp_router_id());
      } else {
        if (_this->_impl_.igp_router_id_.IsDefault()) {
          _this->_internal_set_igp_router_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_bgp_router_id().empty()) {
        _this->_internal_set_bgp_router_id(from._internal_bgp_router_id());
      } else {
        if (_this->_impl_.bgp_router_id_.IsDefault()) {
          _this->_internal_set_bgp_router_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_bgp_ls_id() != 0) {
        _this->_impl_.bgp_ls_id_ = from._impl_.bgp_ls_id_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_ospf_area_id() != 0) {
        _this->_impl_.ospf_area_id_ = from._impl_.ospf_area_id_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_pseudonode() != 0) {
        _this->_impl_.pseudonode_ = from._impl_.pseudonode_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_bgp_confederation_member() != 0) {
        _this->_impl_.bgp_confederation_member_ = from._impl_.bgp_confederation_member_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsNodeDescriptor::InternalSwap(LsNodeDescriptor* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.igp_router_id_, &other->_impl_.igp_router_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.bgp_router_id_, &other->_impl_.bgp_router_id_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.bgp_confederation_member_)
      + sizeof(LsNodeDescriptor::_impl_.bgp_confederation_member_)
      - PROTOBUF_FIELD_OFFSET(LsNodeDescriptor, _impl_.asn_)>(
          reinterpret_cast<char*>(&_impl_.asn_),
          reinterpret_cast<char*>(&other->_impl_.asn_));
}

::google::protobuf::Metadata LsNodeDescriptor::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsLinkDescriptor::LsLinkDescriptor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsLinkDescriptor_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsLinkDescriptor)
}
PROTOBUF_NDEBUG_INLINE LsLinkDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsLinkDescriptor& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        interface_addr_ipv4_(arena, from.interface_addr_ipv4_),
        neighbor_addr_ipv4_(arena, from.neighbor_addr_ipv4_),
        interface_addr_ipv6_(arena, from.interface_addr_ipv6_),
        neighbor_addr_ipv6_(arena, from.neighbor_addr_ipv6_) {}

LsLinkDescriptor::LsLinkDescriptor(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsLinkDescriptor& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsLinkDescriptor_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsLinkDescriptor* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, link_local_id_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, link_local_id_),
           offsetof(Impl_, link_remote_id_) -
               offsetof(Impl_, link_local_id_) +
               sizeof(Impl_::link_remote_id_));

  // @@protoc_insertion_point(copy_constructor:apipb.LsLinkDescriptor)
}
PROTOBUF_NDEBUG_INLINE LsLinkDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        interface_addr_ipv4_(arena),
        neighbor_addr_ipv4_(arena),
        interface_addr_ipv6_(arena),
        neighbor_addr_ipv6_(arena) {}

inline void LsLinkDescriptor::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, link_local_id_),
           0,
           offsetof(Impl_, link_remote_id_) -
               offsetof(Impl_, link_local_id_) +
               sizeof(Impl_::link_remote_id_));
}
LsLinkDescriptor::~LsLinkDescriptor() {
  // @@protoc_insertion_point(destructor:apipb.LsLinkDescriptor)
  SharedDtor(*this);
}
inline void LsLinkDescriptor::SharedDtor(MessageLite& self) {
  LsLinkDescriptor& this_ = static_cast<LsLinkDescriptor&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.interface_addr_ipv4_.Destroy();
  this_._impl_.neighbor_addr_ipv4_.Destroy();
  this_._impl_.interface_addr_ipv6_.Destroy();
  this_._impl_.neighbor_addr_ipv6_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsLinkDescriptor_class_data_ =
        LsLinkDescriptor::InternalGenerateClassData_(LsLinkDescriptor_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsLinkDescriptor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsLinkDescriptor_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsLinkDescriptor_class_data_.tc_table);
  return LsLinkDescriptor_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsLinkDescriptor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsLinkDescriptor_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsLinkDescriptor_globals_));
  return LsLinkDescriptor_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsLinkDescriptor::ParseTableT_
    LsLinkDescriptor::_table_ =
        LsLinkDescriptor::InternalGenerateParseTable_(LsLinkDescriptor_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsLinkDescriptor::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsLinkDescriptor)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.interface_addr_ipv4_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.neighbor_addr_ipv4_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.interface_addr_ipv6_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.neighbor_addr_ipv6_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000030U)) {
    ::memset(&_impl_.link_local_id_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.link_remote_id_) -
        reinterpret_cast<char*>(&_impl_.link_local_id_)) + sizeof(_impl_.link_remote_id_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 link_local_id = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_link_local_id() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_link_local_id(), target);
    }
  }

  // uint32 link_remote_id = 2;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_link_remote_id() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_link_remote_id(), target);
    }
  }

  // string interface_addr_ipv4 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_interface_addr_ipv4().empty()) {
      const ::std::string& _s = this_._internal_interface_addr_ipv4();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsLinkDescriptor.interface_addr_ipv4");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // string neighbor_addr_ipv4 = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_neighbor_addr_ipv4().empty()) {
      const ::std::string& _s = this_._internal_neighbor_addr_ipv4();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsLinkDescriptor.neighbor_addr_ipv4");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // string interface_addr_ipv6 = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_interface_addr_ipv6().empty()) {
      const ::std::string& _s = this_._internal_interface_addr_ipv6();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsLinkDescriptor.interface_addr_ipv6");
      target = stream->WriteStringMaybeAliased(5, _s, target);
    }
  }

  // string neighbor_addr_ipv6 = 6;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (!this_._internal_neighbor_addr_ipv6().empty()) {
      const ::std::string& _s = this_._internal_neighbor_addr_ipv6();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsLinkDescriptor.neighbor_addr_ipv6");
      target = stream->WriteStringMaybeAliased(6, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsLinkDescriptor)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // string interface_addr_ipv4 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_interface_addr_ipv4().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_interface_addr_ipv4());
      }
    }
    // string neighbor_addr_ipv4 = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_neighbor_addr_ipv4().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_neighbor_addr_ipv4());
      }
    }
    // string interface_addr_ipv6 = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_interface_addr_ipv6().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_interface_addr_ipv6());
      }
    }
    // string neighbor_addr_ipv6 = 6;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!this_._internal_neighbor_addr_ipv6().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_neighbor_addr_ipv6());
      }
    }
    // uint32 link_local_id = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_link_local_id() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_link_local_id());
      }
    }
    // uint32 link_remote_id = 2;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_link_remote_id() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_link_remote_id());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_interface_addr_ipv4().empty()) {
        _this->_internal_set_interface_addr_ipv4(from._internal_interface_addr_ipv4());
      } else {
        if (_this->_impl_.interface_addr_ipv4_.IsDefault()) {
          _this->_internal_set_interface_addr_ipv4("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_neighbor_addr_ipv4().empty()) {
        _this->_internal_set_neighbor_addr_ipv4(from._internal_neighbor_addr_ipv4());
      } else {
        if (_this->_impl_.neighbor_addr_ipv4_.IsDefault()) {
          _this->_internal_set_neighbor_addr_ipv4("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_interface_addr_ipv6().empty()) {
        _this->_internal_set_interface_addr_ipv6(from._internal_interface_addr_ipv6());
      } else {
        if (_this->_impl_.interface_addr_ipv6_.IsDefault()) {
          _this->_internal_set_interface_addr_ipv6("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!from._internal_neighbor_addr_ipv6().empty()) {
        _this->_internal_set_neighbor_addr_ipv6(from._internal_neighbor_addr_ipv6());
      } else {
        if (_this->_impl_.neighbor_addr_ipv6_.IsDefault()) {
          _this->_internal_set_neighbor_addr_ipv6("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_link_local_id() != 0) {
        _this->_impl_.link_local_id_ = from._impl_.link_local_id_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_link_remote_id() != 0) {
        _this->_impl_.link_remote_id_ = from._impl_.link_remote_id_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsLinkDescriptor::InternalSwap(LsLinkDescriptor* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.interface_addr_ipv4_, &other->_impl_.interface_addr_ipv4_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.neighbor_addr_ipv4_, &other->_impl_.neighbor_addr_ipv4_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.interface_addr_ipv6_, &other->_impl_.interface_addr_ipv6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.neighbor_addr_ipv6_, &other->_impl_.neighbor_addr_ipv6_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.link_remote_id_)
      + sizeof(LsLinkDescriptor::_impl_.link_remote_id_)
      - PROTOBUF_FIELD_OFFSET(LsLinkDescriptor, _impl_.link_local_id_)>(
          reinterpret_cast<char*>(&_impl_.link_local_id_),
          reinterpret_cast<char*>(&other->_impl_.link_local_id_));
}

::google::protobuf::Metadata LsLinkDescriptor::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsPrefixDescriptor::LsPrefixDescriptor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsPrefixDescriptor_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsPrefixDescriptor)
}
PROTOBUF_NDEBUG_INLINE LsPrefixDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsPrefixDescriptor& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ip_reachability_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LsPrefixDescriptor,
              PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixDescriptor, _impl_.ip_reachability_)>()
          , from.ip_reachability_
        }
     {}

LsPrefixDescriptor::LsPrefixDescriptor(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsPrefixDescriptor& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsPrefixDescriptor_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsPrefixDescriptor* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.ospf_route_type_ = from._impl_.ospf_route_type_;

  // @@protoc_insertion_point(copy_constructor:apipb.LsPrefixDescriptor)
}
PROTOBUF_NDEBUG_INLINE LsPrefixDescriptor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ip_reachability_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsPrefixDescriptor,
            PROTOBUF_FIELD_OFFSET(::apipb::LsPrefixDescriptor, _impl_.ip_reachability_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsPrefixDescriptor_class_data_ =
        LsPrefixDescriptor::InternalGenerateClassData_(LsPrefixDescriptor_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsPrefixDescriptor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsPrefixDescriptor_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsPrefixDescriptor_class_data_.tc_table);
  return LsPrefixDescriptor_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsPrefixDescriptor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsPrefixDescriptor_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsPrefixDescriptor_globals_));
  return LsPrefixDescriptor_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsPrefixDescriptor::ParseTableT_
    LsPrefixDescriptor::_table_ =
        LsPrefixDescriptor::InternalGenerateParseTable_(LsPrefixDescriptor_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsPrefixDescriptor::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsPrefixDescriptor)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.ip_reachability_.Clear();
  }
  _impl_.ospf_route_type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated string ip_reachability = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_ip_reachability_size(); i < n; ++i) {
      const auto& s = this_._internal_ip_reachability().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsPrefixDescriptor.ip_reachability");
      target = stream->WriteString(1, s, target);
    }
  }

  // .apipb.LsOspfRouteType ospf_route_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_ospf_route_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_ospf_route_type(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsPrefixDescriptor)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated string ip_reachability = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_ip_reachability().size());
      for (int i = 0, n = this_._internal_ip_reachability().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_ip_reachability().Get(i));
      }
    }
    // .apipb.LsOspfRouteType ospf_route_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_ospf_route_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_ospf_route_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_ip_reachability()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_ip_reachability());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_ospf_route_type() != 0) {
        _this->_impl_.ospf_route_type_ = from._impl_.ospf_route_type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata LsPrefixDescriptor::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsNodeNLRI::LsNodeNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsNodeNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsNodeNLRI)
}
PROTOBUF_NDEBUG_INLINE LsNodeNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsNodeNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsNodeNLRI::LsNodeNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsNodeNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsNodeNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsNodeNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.local_node_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsNodeNLRI)
}
PROTOBUF_NDEBUG_INLINE LsNodeNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsNodeNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.local_node_ = {};
}
LsNodeNLRI::~LsNodeNLRI() {
  // @@protoc_insertion_point(destructor:apipb.LsNodeNLRI)
  SharedDtor(*this);
}
inline void LsNodeNLRI::SharedDtor(MessageLite& self) {
  LsNodeNLRI& this_ = static_cast<LsNodeNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.local_node_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsNodeNLRI_class_data_ =
        LsNodeNLRI::InternalGenerateClassData_(LsNodeNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsNodeNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsNodeNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsNodeNLRI_class_data_.tc_table);
  return LsNodeNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsNodeNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsNodeNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsNodeNLRI_globals_));
  return LsNodeNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsNodeNLRI::ParseTableT_
    LsNodeNLRI::_table_ =
        LsNodeNLRI::InternalGenerateParseTable_(LsNodeNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsNodeNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsNodeNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.local_node_ != nullptr);
    _impl_.local_node_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsNodeDescriptor local_node = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.local_node_, this_._impl_.local_node_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsNodeNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // .apipb.LsNodeDescriptor local_node = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_node_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.local_node_ != nullptr);
    if (_this->_impl_.local_node_ == nullptr) {
      _this->_impl_.local_node_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_);
    } else {
      _this->_impl_.local_node_->MergeFrom(*from._impl_.local_node_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata LsNodeNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsLinkNLRI::LsLinkNLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsLinkNLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsLinkNLRI)
}
PROTOBUF_NDEBUG_INLINE LsLinkNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsLinkNLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsLinkNLRI::LsLinkNLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsLinkNLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsLinkNLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsLinkNLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.local_node_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_)
                : nullptr;
  _impl_.remote_node_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.remote_node_)
                : nullptr;
  _impl_.link_descriptor_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.link_descriptor_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsLinkNLRI)
}
PROTOBUF_NDEBUG_INLINE LsLinkNLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsLinkNLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, local_node_),
           0,
           offsetof(Impl_, link_descriptor_) -
               offsetof(Impl_, local_node_) +
               sizeof(Impl_::link_descriptor_));
}
LsLinkNLRI::~LsLinkNLRI() {
  // @@protoc_insertion_point(destructor:apipb.LsLinkNLRI)
  SharedDtor(*this);
}
inline void LsLinkNLRI::SharedDtor(MessageLite& self) {
  LsLinkNLRI& this_ = static_cast<LsLinkNLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.local_node_;
  delete this_._impl_.remote_node_;
  delete this_._impl_.link_descriptor_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsLinkNLRI_class_data_ =
        LsLinkNLRI::InternalGenerateClassData_(LsLinkNLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsLinkNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsLinkNLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsLinkNLRI_class_data_.tc_table);
  return LsLinkNLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsLinkNLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsLinkNLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsLinkNLRI_globals_));
  return LsLinkNLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsLinkNLRI::ParseTableT_
    LsLinkNLRI::_table_ =
        LsLinkNLRI::InternalGenerateParseTable_(LsLinkNLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsLinkNLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsLinkNLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.local_node_ != nullptr);
      _impl_.local_node_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.remote_node_ != nullptr);
      _impl_.remote_node_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.link_descriptor_ != nullptr);
      _impl_.link_descriptor_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsNodeDescriptor local_node = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.local_node_, this_._impl_.local_node_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsNodeDescriptor remote_node = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.remote_node_, this_._impl_.remote_node_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsLinkDescriptor link_descriptor = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.link_descriptor_, this_._impl_.link_descriptor_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsLinkNLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // .apipb.LsNodeDescriptor local_node = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_node_);
    }
    // .apipb.LsNodeDescriptor remote_node = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.remote_node_);
    }
    // .apipb.LsLinkDescriptor link_descriptor = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.link_descriptor_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.local_node_ != nullptr);
      if (_this->_impl_.local_node_ == nullptr) {
        _this->_impl_.local_node_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_);
      } else {
        _this->_impl_.local_node_->MergeFrom(*from._impl_.local_node_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.remote_node_ != nullptr);
      if (_this->_impl_.remote_node_ == nullptr) {
        _this->_impl_.remote_node_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.remote_node_);
      } else {
        _this->_impl_.remote_node_->MergeFrom(*from._impl_.remote_node_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.link_descriptor_ != nullptr);
      if (_this->_impl_.link_descriptor_ == nullptr) {
        _this->_impl_.link_descriptor_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.link_descriptor_);
      } else {
        _this->_impl_.link_descriptor_->MergeFrom(*from._impl_.link_descriptor_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsLinkNLRI::InternalSwap(LsLinkNLRI* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.link_descriptor_)
      + sizeof(LsLinkNLRI::_impl_.link_descriptor_)
      - PROTOBUF_FIELD_OFFSET(LsLinkNLRI, _impl_.local_node_)>(
          reinterpret_cast<char*>(&_impl_.local_node_),
          reinterpret_cast<char*>(&other->_impl_.local_node_));
}

::google::protobuf::Metadata LsLinkNLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsPrefixV4NLRI::LsPrefixV4NLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsPrefixV4NLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsPrefixV4NLRI)
}
PROTOBUF_NDEBUG_INLINE LsPrefixV4NLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsPrefixV4NLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsPrefixV4NLRI::LsPrefixV4NLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsPrefixV4NLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsPrefixV4NLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsPrefixV4NLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.local_node_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_)
                : nullptr;
  _impl_.prefix_descriptor_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prefix_descriptor_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsPrefixV4NLRI)
}
PROTOBUF_NDEBUG_INLINE LsPrefixV4NLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsPrefixV4NLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, local_node_),
           0,
           offsetof(Impl_, prefix_descriptor_) -
               offsetof(Impl_, local_node_) +
               sizeof(Impl_::prefix_descriptor_));
}
LsPrefixV4NLRI::~LsPrefixV4NLRI() {
  // @@protoc_insertion_point(destructor:apipb.LsPrefixV4NLRI)
  SharedDtor(*this);
}
inline void LsPrefixV4NLRI::SharedDtor(MessageLite& self) {
  LsPrefixV4NLRI& this_ = static_cast<LsPrefixV4NLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.local_node_;
  delete this_._impl_.prefix_descriptor_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsPrefixV4NLRI_class_data_ =
        LsPrefixV4NLRI::InternalGenerateClassData_(LsPrefixV4NLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsPrefixV4NLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsPrefixV4NLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsPrefixV4NLRI_class_data_.tc_table);
  return LsPrefixV4NLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsPrefixV4NLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsPrefixV4NLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsPrefixV4NLRI_globals_));
  return LsPrefixV4NLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsPrefixV4NLRI::ParseTableT_
    LsPrefixV4NLRI::_table_ =
        LsPrefixV4NLRI::InternalGenerateParseTable_(LsPrefixV4NLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsPrefixV4NLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsPrefixV4NLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.local_node_ != nullptr);
      _impl_.local_node_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.prefix_descriptor_ != nullptr);
      _impl_.prefix_descriptor_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsNodeDescriptor local_node = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.local_node_, this_._impl_.local_node_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.prefix_descriptor_, this_._impl_.prefix_descriptor_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsPrefixV4NLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // .apipb.LsNodeDescriptor local_node = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_node_);
    }
    // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prefix_descriptor_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.local_node_ != nullptr);
      if (_this->_impl_.local_node_ == nullptr) {
        _this->_impl_.local_node_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_);
      } else {
        _this->_impl_.local_node_->MergeFrom(*from._impl_.local_node_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.prefix_descriptor_ != nullptr);
      if (_this->_impl_.prefix_descriptor_ == nullptr) {
        _this->_impl_.prefix_descriptor_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prefix_descriptor_);
      } else {
        _this->_impl_.prefix_descriptor_->MergeFrom(*from._impl_.prefix_descriptor_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsPrefixV4NLRI::InternalSwap(LsPrefixV4NLRI* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_.prefix_descriptor_)
      + sizeof(LsPrefixV4NLRI::_impl_.prefix_descriptor_)
      - PROTOBUF_FIELD_OFFSET(LsPrefixV4NLRI, _impl_.local_node_)>(
          reinterpret_cast<char*>(&_impl_.local_node_),
          reinterpret_cast<char*>(&other->_impl_.local_node_));
}

::google::protobuf::Metadata LsPrefixV4NLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsPrefixV6NLRI::LsPrefixV6NLRI(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsPrefixV6NLRI_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsPrefixV6NLRI)
}
PROTOBUF_NDEBUG_INLINE LsPrefixV6NLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsPrefixV6NLRI& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsPrefixV6NLRI::LsPrefixV6NLRI(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsPrefixV6NLRI& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsPrefixV6NLRI_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsPrefixV6NLRI* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.local_node_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_)
                : nullptr;
  _impl_.prefix_descriptor_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prefix_descriptor_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsPrefixV6NLRI)
}
PROTOBUF_NDEBUG_INLINE LsPrefixV6NLRI::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsPrefixV6NLRI::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, local_node_),
           0,
           offsetof(Impl_, prefix_descriptor_) -
               offsetof(Impl_, local_node_) +
               sizeof(Impl_::prefix_descriptor_));
}
LsPrefixV6NLRI::~LsPrefixV6NLRI() {
  // @@protoc_insertion_point(destructor:apipb.LsPrefixV6NLRI)
  SharedDtor(*this);
}
inline void LsPrefixV6NLRI::SharedDtor(MessageLite& self) {
  LsPrefixV6NLRI& this_ = static_cast<LsPrefixV6NLRI&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.local_node_;
  delete this_._impl_.prefix_descriptor_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsPrefixV6NLRI_class_data_ =
        LsPrefixV6NLRI::InternalGenerateClassData_(LsPrefixV6NLRI_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsPrefixV6NLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsPrefixV6NLRI_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsPrefixV6NLRI_class_data_.tc_table);
  return LsPrefixV6NLRI_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsPrefixV6NLRI::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsPrefixV6NLRI_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsPrefixV6NLRI_globals_));
  return LsPrefixV6NLRI_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsPrefixV6NLRI::ParseTableT_
    LsPrefixV6NLRI::_table_ =
        LsPrefixV6NLRI::InternalGenerateParseTable_(LsPrefixV6NLRI_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsPrefixV6NLRI::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsPrefixV6NLRI)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.local_node_ != nullptr);
      _impl_.local_node_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.prefix_descriptor_ != nullptr);
      _impl_.prefix_descriptor_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsNodeDescriptor local_node = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.local_node_, this_._impl_.local_node_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.prefix_descriptor_, this_._impl_.prefix_descriptor_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsPrefixV6NLRI)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // .apipb.LsNodeDescriptor local_node = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.local_node_);
    }
    // .apipb.LsPrefixDescriptor prefix_descriptor = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prefix_descriptor_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.local_node_ != nullptr);
      if (_this->_impl_.local_node_ == nullptr) {
        _this->_impl_.local_node_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.local_node_);
      } else {
        _this->_impl_.local_node_->MergeFrom(*from._impl_.local_node_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.prefix_descriptor_ != nullptr);
      if (_this->_impl_.prefix_descriptor_ == nullptr) {
        _this->_impl_.prefix_descriptor_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prefix_descriptor_);
      } else {
        _this->_impl_.prefix_descriptor_->MergeFrom(*from._impl_.prefix_descriptor_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsPrefixV6NLRI::InternalSwap(LsPrefixV6NLRI* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_.prefix_descriptor_)
      + sizeof(LsPrefixV6NLRI::_impl_.prefix_descriptor_)
      - PROTOBUF_FIELD_OFFSET(LsPrefixV6NLRI, _impl_.local_node_)>(
          reinterpret_cast<char*>(&_impl_.local_node_),
          reinterpret_cast<char*>(&other->_impl_.local_node_));
}

::google::protobuf::Metadata LsPrefixV6NLRI::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void LsAddrPrefix::clear_nlri() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.nlri_ != nullptr) _impl_.nlri_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
LsAddrPrefix::LsAddrPrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAddrPrefix_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsAddrPrefix)
}
PROTOBUF_NDEBUG_INLINE LsAddrPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsAddrPrefix& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsAddrPrefix::LsAddrPrefix(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsAddrPrefix& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAddrPrefix_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsAddrPrefix* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.nlri_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nlri_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_),
           offsetof(Impl_, protocol_id_) -
               offsetof(Impl_, type_) +
               sizeof(Impl_::protocol_id_));

  // @@protoc_insertion_point(copy_constructor:apipb.LsAddrPrefix)
}
PROTOBUF_NDEBUG_INLINE LsAddrPrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsAddrPrefix::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, nlri_),
           0,
           offsetof(Impl_, protocol_id_) -
               offsetof(Impl_, nlri_) +
               sizeof(Impl_::protocol_id_));
}
LsAddrPrefix::~LsAddrPrefix() {
  // @@protoc_insertion_point(destructor:apipb.LsAddrPrefix)
  SharedDtor(*this);
}
inline void LsAddrPrefix::SharedDtor(MessageLite& self) {
  LsAddrPrefix& this_ = static_cast<LsAddrPrefix&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.nlri_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsAddrPrefix_class_data_ =
        LsAddrPrefix::InternalGenerateClassData_(LsAddrPrefix_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAddrPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAddrPrefix_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsAddrPrefix_class_data_.tc_table);
  return LsAddrPrefix_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAddrPrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAddrPrefix_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsAddrPrefix_globals_));
  return LsAddrPrefix_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsAddrPrefix::ParseTableT_
    LsAddrPrefix::_table_ =
        LsAddrPrefix::InternalGenerateParseTable_(LsAddrPrefix_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsAddrPrefix::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsAddrPrefix)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.nlri_ != nullptr);
    _impl_.nlri_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000001eU)) {
    ::memset(&_impl_.type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.protocol_id_) -
        reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.protocol_id_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsNLRIType type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_type(), target);
    }
  }

  // .google.protobuf.Any nlri = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.nlri_, this_._impl_.nlri_->GetCachedSize(), target,
        stream);
  }

  // uint32 length = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_length(), target);
    }
  }

  // .apipb.LsProtocolID protocol_id = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_protocol_id() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          4, this_._internal_protocol_id(), target);
    }
  }

  // uint64 identifier = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_identifier() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          5, this_._internal_identifier(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsAddrPrefix)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // .google.protobuf.Any nlri = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.nlri_);
    }
    // .apipb.LsNLRIType type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
      }
    }
    // uint32 length = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_length());
      }
    }
    // uint64 identifier = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_identifier() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_identifier());
      }
    }
    // .apipb.LsProtocolID protocol_id = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_protocol_id() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_protocol_id());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.nlri_ != nullptr);
      if (_this->_impl_.nlri_ == nullptr) {
        _this->_impl_.nlri_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nlri_);
      } else {
        _this->_impl_.nlri_->MergeFrom(*from._impl_.nlri_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_length() != 0) {
        _this->_impl_.length_ = from._impl_.length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_identifier() != 0) {
        _this->_impl_.identifier_ = from._impl_.identifier_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_protocol_id() != 0) {
        _this->_impl_.protocol_id_ = from._impl_.protocol_id_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsAddrPrefix::InternalSwap(LsAddrPrefix* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.protocol_id_)
      + sizeof(LsAddrPrefix::_impl_.protocol_id_)
      - PROTOBUF_FIELD_OFFSET(LsAddrPrefix, _impl_.nlri_)>(
          reinterpret_cast<char*>(&_impl_.nlri_),
          reinterpret_cast<char*>(&other->_impl_.nlri_));
}

::google::protobuf::Metadata LsAddrPrefix::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void MUPInterworkSegmentDiscoveryRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
MUPInterworkSegmentDiscoveryRoute::MUPInterworkSegmentDiscoveryRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPInterworkSegmentDiscoveryRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MUPInterworkSegmentDiscoveryRoute)
}
PROTOBUF_NDEBUG_INLINE MUPInterworkSegmentDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::MUPInterworkSegmentDiscoveryRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prefix_(arena, from.prefix_) {}

MUPInterworkSegmentDiscoveryRoute::MUPInterworkSegmentDiscoveryRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MUPInterworkSegmentDiscoveryRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPInterworkSegmentDiscoveryRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MUPInterworkSegmentDiscoveryRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.MUPInterworkSegmentDiscoveryRoute)
}
PROTOBUF_NDEBUG_INLINE MUPInterworkSegmentDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        prefix_(arena) {}

inline void MUPInterworkSegmentDiscoveryRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.rd_ = {};
}
MUPInterworkSegmentDiscoveryRoute::~MUPInterworkSegmentDiscoveryRoute() {
  // @@protoc_insertion_point(destructor:apipb.MUPInterworkSegmentDiscoveryRoute)
  SharedDtor(*this);
}
inline void MUPInterworkSegmentDiscoveryRoute::SharedDtor(MessageLite& self) {
  MUPInterworkSegmentDiscoveryRoute& this_ = static_cast<MUPInterworkSegmentDiscoveryRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prefix_.Destroy();
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MUPInterworkSegmentDiscoveryRoute_class_data_ =
        MUPInterworkSegmentDiscoveryRoute::InternalGenerateClassData_(MUPInterworkSegmentDiscoveryRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPInterworkSegmentDiscoveryRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPInterworkSegmentDiscoveryRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MUPInterworkSegmentDiscoveryRoute_class_data_.tc_table);
  return MUPInterworkSegmentDiscoveryRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPInterworkSegmentDiscoveryRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPInterworkSegmentDiscoveryRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MUPInterworkSegmentDiscoveryRoute_globals_));
  return MUPInterworkSegmentDiscoveryRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MUPInterworkSegmentDiscoveryRoute::ParseTableT_
    MUPInterworkSegmentDiscoveryRoute::_table_ =
        MUPInterworkSegmentDiscoveryRoute::InternalGenerateParseTable_(MUPInterworkSegmentDiscoveryRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MUPInterworkSegmentDiscoveryRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MUPInterworkSegmentDiscoveryRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // string prefix = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_prefix().empty()) {
      const ::std::string& _s = this_._internal_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.MUPInterworkSegmentDiscoveryRoute.prefix");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MUPInterworkSegmentDiscoveryRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string prefix = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prefix());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_prefix().empty()) {
        _this->_internal_set_prefix(from._internal_prefix());
      } else {
        if (_this->_impl_.prefix_.IsDefault()) {
          _this->_internal_set_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata MUPInterworkSegmentDiscoveryRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void MUPDirectSegmentDiscoveryRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
MUPDirectSegmentDiscoveryRoute::MUPDirectSegmentDiscoveryRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPDirectSegmentDiscoveryRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MUPDirectSegmentDiscoveryRoute)
}
PROTOBUF_NDEBUG_INLINE MUPDirectSegmentDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::MUPDirectSegmentDiscoveryRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

MUPDirectSegmentDiscoveryRoute::MUPDirectSegmentDiscoveryRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MUPDirectSegmentDiscoveryRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPDirectSegmentDiscoveryRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MUPDirectSegmentDiscoveryRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.MUPDirectSegmentDiscoveryRoute)
}
PROTOBUF_NDEBUG_INLINE MUPDirectSegmentDiscoveryRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void MUPDirectSegmentDiscoveryRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.rd_ = {};
}
MUPDirectSegmentDiscoveryRoute::~MUPDirectSegmentDiscoveryRoute() {
  // @@protoc_insertion_point(destructor:apipb.MUPDirectSegmentDiscoveryRoute)
  SharedDtor(*this);
}
inline void MUPDirectSegmentDiscoveryRoute::SharedDtor(MessageLite& self) {
  MUPDirectSegmentDiscoveryRoute& this_ = static_cast<MUPDirectSegmentDiscoveryRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MUPDirectSegmentDiscoveryRoute_class_data_ =
        MUPDirectSegmentDiscoveryRoute::InternalGenerateClassData_(MUPDirectSegmentDiscoveryRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPDirectSegmentDiscoveryRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPDirectSegmentDiscoveryRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MUPDirectSegmentDiscoveryRoute_class_data_.tc_table);
  return MUPDirectSegmentDiscoveryRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPDirectSegmentDiscoveryRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPDirectSegmentDiscoveryRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MUPDirectSegmentDiscoveryRoute_globals_));
  return MUPDirectSegmentDiscoveryRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MUPDirectSegmentDiscoveryRoute::ParseTableT_
    MUPDirectSegmentDiscoveryRoute::_table_ =
        MUPDirectSegmentDiscoveryRoute::InternalGenerateParseTable_(MUPDirectSegmentDiscoveryRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MUPDirectSegmentDiscoveryRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MUPDirectSegmentDiscoveryRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // string address = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.MUPDirectSegmentDiscoveryRoute.address");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MUPDirectSegmentDiscoveryRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string address = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata MUPDirectSegmentDiscoveryRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void MUPType1SessionTransformedRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
MUPType1SessionTransformedRoute::MUPType1SessionTransformedRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPType1SessionTransformedRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MUPType1SessionTransformedRoute)
}
PROTOBUF_NDEBUG_INLINE MUPType1SessionTransformedRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::MUPType1SessionTransformedRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prefix_(arena, from.prefix_),
        endpoint_address_(arena, from.endpoint_address_) {}

MUPType1SessionTransformedRoute::MUPType1SessionTransformedRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MUPType1SessionTransformedRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPType1SessionTransformedRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MUPType1SessionTransformedRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, prefix_length_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, prefix_length_),
           offsetof(Impl_, endpoint_address_length_) -
               offsetof(Impl_, prefix_length_) +
               sizeof(Impl_::endpoint_address_length_));

  // @@protoc_insertion_point(copy_constructor:apipb.MUPType1SessionTransformedRoute)
}
PROTOBUF_NDEBUG_INLINE MUPType1SessionTransformedRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        prefix_(arena),
        endpoint_address_(arena) {}

inline void MUPType1SessionTransformedRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, endpoint_address_length_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::endpoint_address_length_));
}
MUPType1SessionTransformedRoute::~MUPType1SessionTransformedRoute() {
  // @@protoc_insertion_point(destructor:apipb.MUPType1SessionTransformedRoute)
  SharedDtor(*this);
}
inline void MUPType1SessionTransformedRoute::SharedDtor(MessageLite& self) {
  MUPType1SessionTransformedRoute& this_ = static_cast<MUPType1SessionTransformedRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.prefix_.Destroy();
  this_._impl_.endpoint_address_.Destroy();
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MUPType1SessionTransformedRoute_class_data_ =
        MUPType1SessionTransformedRoute::InternalGenerateClassData_(MUPType1SessionTransformedRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPType1SessionTransformedRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPType1SessionTransformedRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MUPType1SessionTransformedRoute_class_data_.tc_table);
  return MUPType1SessionTransformedRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPType1SessionTransformedRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPType1SessionTransformedRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MUPType1SessionTransformedRoute_globals_));
  return MUPType1SessionTransformedRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MUPType1SessionTransformedRoute::ParseTableT_
    MUPType1SessionTransformedRoute::_table_ =
        MUPType1SessionTransformedRoute::InternalGenerateParseTable_(MUPType1SessionTransformedRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MUPType1SessionTransformedRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MUPType1SessionTransformedRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.endpoint_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000078U)) {
    ::memset(&_impl_.prefix_length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.endpoint_address_length_) -
        reinterpret_cast<char*>(&_impl_.prefix_length_)) + sizeof(_impl_.endpoint_address_length_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // uint32 prefix_length = 2 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_prefix_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_prefix_length(), target);
    }
  }

  // string prefix = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_prefix().empty()) {
      const ::std::string& _s = this_._internal_prefix();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.MUPType1SessionTransformedRoute.prefix");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // uint32 teid = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_teid() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_teid(), target);
    }
  }

  // uint32 qfi = 5;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_qfi() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          5, this_._internal_qfi(), target);
    }
  }

  // uint32 endpoint_address_length = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_endpoint_address_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          6, this_._internal_endpoint_address_length(), target);
    }
  }

  // string endpoint_address = 7;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_endpoint_address().empty()) {
      const ::std::string& _s = this_._internal_endpoint_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.MUPType1SessionTransformedRoute.endpoint_address");
      target = stream->WriteStringMaybeAliased(7, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MUPType1SessionTransformedRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // string prefix = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_prefix().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_prefix());
      }
    }
    // string endpoint_address = 7;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_endpoint_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_endpoint_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // uint32 prefix_length = 2 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_prefix_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_prefix_length());
      }
    }
    // uint32 teid = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_teid() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_teid());
      }
    }
    // uint32 qfi = 5;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_qfi() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_qfi());
      }
    }
    // uint32 endpoint_address_length = 6;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_endpoint_address_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_endpoint_address_length());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_prefix().empty()) {
        _this->_internal_set_prefix(from._internal_prefix());
      } else {
        if (_this->_impl_.prefix_.IsDefault()) {
          _this->_internal_set_prefix("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_endpoint_address().empty()) {
        _this->_internal_set_endpoint_address(from._internal_endpoint_address());
      } else {
        if (_this->_impl_.endpoint_address_.IsDefault()) {
          _this->_internal_set_endpoint_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_prefix_length() != 0) {
        _this->_impl_.prefix_length_ = from._impl_.prefix_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_teid() != 0) {
        _this->_impl_.teid_ = from._impl_.teid_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_qfi() != 0) {
        _this->_impl_.qfi_ = from._impl_.qfi_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_endpoint_address_length() != 0) {
        _this->_impl_.endpoint_address_length_ = from._impl_.endpoint_address_length_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void MUPType1SessionTransformedRoute::InternalSwap(MUPType1SessionTransformedRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.prefix_, &other->_impl_.prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.endpoint_address_, &other->_impl_.endpoint_address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.endpoint_address_length_)
      + sizeof(MUPType1SessionTransformedRoute::_impl_.endpoint_address_length_)
      - PROTOBUF_FIELD_OFFSET(MUPType1SessionTransformedRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata MUPType1SessionTransformedRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void MUPType2SessionTransformedRoute::clear_rd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.rd_ != nullptr) _impl_.rd_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
MUPType2SessionTransformedRoute::MUPType2SessionTransformedRoute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPType2SessionTransformedRoute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MUPType2SessionTransformedRoute)
}
PROTOBUF_NDEBUG_INLINE MUPType2SessionTransformedRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::MUPType2SessionTransformedRoute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        endpoint_address_(arena, from.endpoint_address_) {}

MUPType2SessionTransformedRoute::MUPType2SessionTransformedRoute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MUPType2SessionTransformedRoute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPType2SessionTransformedRoute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MUPType2SessionTransformedRoute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.rd_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, endpoint_address_length_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, endpoint_address_length_),
           offsetof(Impl_, teid_) -
               offsetof(Impl_, endpoint_address_length_) +
               sizeof(Impl_::teid_));

  // @@protoc_insertion_point(copy_constructor:apipb.MUPType2SessionTransformedRoute)
}
PROTOBUF_NDEBUG_INLINE MUPType2SessionTransformedRoute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        endpoint_address_(arena) {}

inline void MUPType2SessionTransformedRoute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rd_),
           0,
           offsetof(Impl_, teid_) -
               offsetof(Impl_, rd_) +
               sizeof(Impl_::teid_));
}
MUPType2SessionTransformedRoute::~MUPType2SessionTransformedRoute() {
  // @@protoc_insertion_point(destructor:apipb.MUPType2SessionTransformedRoute)
  SharedDtor(*this);
}
inline void MUPType2SessionTransformedRoute::SharedDtor(MessageLite& self) {
  MUPType2SessionTransformedRoute& this_ = static_cast<MUPType2SessionTransformedRoute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.endpoint_address_.Destroy();
  delete this_._impl_.rd_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MUPType2SessionTransformedRoute_class_data_ =
        MUPType2SessionTransformedRoute::InternalGenerateClassData_(MUPType2SessionTransformedRoute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPType2SessionTransformedRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPType2SessionTransformedRoute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MUPType2SessionTransformedRoute_class_data_.tc_table);
  return MUPType2SessionTransformedRoute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPType2SessionTransformedRoute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPType2SessionTransformedRoute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MUPType2SessionTransformedRoute_globals_));
  return MUPType2SessionTransformedRoute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MUPType2SessionTransformedRoute::ParseTableT_
    MUPType2SessionTransformedRoute::_table_ =
        MUPType2SessionTransformedRoute::InternalGenerateParseTable_(MUPType2SessionTransformedRoute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MUPType2SessionTransformedRoute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MUPType2SessionTransformedRoute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.endpoint_address_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.rd_ != nullptr);
      _impl_.rd_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    ::memset(&_impl_.endpoint_address_length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.teid_) -
        reinterpret_cast<char*>(&_impl_.endpoint_address_length_)) + sizeof(_impl_.teid_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any rd = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.rd_, this_._impl_.rd_->GetCachedSize(), target,
        stream);
  }

  // uint32 endpoint_address_length = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_endpoint_address_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_endpoint_address_length(), target);
    }
  }

  // string endpoint_address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_endpoint_address().empty()) {
      const ::std::string& _s = this_._internal_endpoint_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.MUPType2SessionTransformedRoute.endpoint_address");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // uint32 teid = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_teid() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_teid(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MUPType2SessionTransformedRoute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // string endpoint_address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_endpoint_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_endpoint_address());
      }
    }
    // .google.protobuf.Any rd = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.rd_);
    }
    // uint32 endpoint_address_length = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_endpoint_address_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_endpoint_address_length());
      }
    }
    // uint32 teid = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_teid() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_teid());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_endpoint_address().empty()) {
        _this->_internal_set_endpoint_address(from._internal_endpoint_address());
      } else {
        if (_this->_impl_.endpoint_address_.IsDefault()) {
          _this->_internal_set_endpoint_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.rd_ != nullptr);
      if (_this->_impl_.rd_ == nullptr) {
        _this->_impl_.rd_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.rd_);
      } else {
        _this->_impl_.rd_->MergeFrom(*from._impl_.rd_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_endpoint_address_length() != 0) {
        _this->_impl_.endpoint_address_length_ = from._impl_.endpoint_address_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_teid() != 0) {
        _this->_impl_.teid_ = from._impl_.teid_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void MUPType2SessionTransformedRoute::InternalSwap(MUPType2SessionTransformedRoute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.endpoint_address_, &other->_impl_.endpoint_address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.teid_)
      + sizeof(MUPType2SessionTransformedRoute::_impl_.teid_)
      - PROTOBUF_FIELD_OFFSET(MUPType2SessionTransformedRoute, _impl_.rd_)>(
          reinterpret_cast<char*>(&_impl_.rd_),
          reinterpret_cast<char*>(&other->_impl_.rd_));
}

::google::protobuf::Metadata MUPType2SessionTransformedRoute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void MpReachNLRIAttribute::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
void MpReachNLRIAttribute::clear_nlris() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nlris_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
MpReachNLRIAttribute::MpReachNLRIAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MpReachNLRIAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MpReachNLRIAttribute)
}
PROTOBUF_NDEBUG_INLINE MpReachNLRIAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::MpReachNLRIAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        next_hops_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::MpReachNLRIAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.next_hops_)>()
          , from.next_hops_
        }
        ,
        nlris_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::MpReachNLRIAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.nlris_)>()
          , from.nlris_
        }
     {}

MpReachNLRIAttribute::MpReachNLRIAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MpReachNLRIAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MpReachNLRIAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MpReachNLRIAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.family_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.family_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.MpReachNLRIAttribute)
}
PROTOBUF_NDEBUG_INLINE MpReachNLRIAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        next_hops_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::MpReachNLRIAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.next_hops_)>()
         }
        ,
        nlris_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::MpReachNLRIAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::MpReachNLRIAttribute, _impl_.nlris_)>()
         }
     {}

inline void MpReachNLRIAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.family_ = {};
}
MpReachNLRIAttribute::~MpReachNLRIAttribute() {
  // @@protoc_insertion_point(destructor:apipb.MpReachNLRIAttribute)
  SharedDtor(*this);
}
inline void MpReachNLRIAttribute::SharedDtor(MessageLite& self) {
  MpReachNLRIAttribute& this_ = static_cast<MpReachNLRIAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.family_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MpReachNLRIAttribute_class_data_ =
        MpReachNLRIAttribute::InternalGenerateClassData_(MpReachNLRIAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MpReachNLRIAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MpReachNLRIAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MpReachNLRIAttribute_class_data_.tc_table);
  return MpReachNLRIAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MpReachNLRIAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MpReachNLRIAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MpReachNLRIAttribute_globals_));
  return MpReachNLRIAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MpReachNLRIAttribute::ParseTableT_
    MpReachNLRIAttribute::_table_ =
        MpReachNLRIAttribute::InternalGenerateParseTable_(MpReachNLRIAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MpReachNLRIAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MpReachNLRIAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.next_hops_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.nlris_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.family_ != nullptr);
      _impl_.family_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.Family family = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.family_, this_._impl_.family_->GetCachedSize(), target,
        stream);
  }

  // repeated string next_hops = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_next_hops_size(); i < n; ++i) {
      const auto& s = this_._internal_next_hops().Get(i);
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.MpReachNLRIAttribute.next_hops");
      target = stream->WriteString(2, s, target);
    }
  }

  // repeated .google.protobuf.Any nlris = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_nlris_size());
         i < n; i++) {
      const auto& repfield = this_._internal_nlris().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MpReachNLRIAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated string next_hops = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_next_hops().size());
      for (int i = 0, n = this_._internal_next_hops().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_next_hops().Get(i));
      }
    }
    // repeated .google.protobuf.Any nlris = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_nlris_size();
      for (const auto& msg : this_._internal_nlris()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .apipb.Family family = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.family_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_next_hops()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_next_hops());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_nlris()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_nlris());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.family_ != nullptr);
      if (_this->_impl_.family_ == nullptr) {
        _this->_impl_.family_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.family_);
      } else {
        _this->_impl_.family_->MergeFrom(*from._impl_.family_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata MpReachNLRIAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void MpUnreachNLRIAttribute::clear_family() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.family_ != nullptr) _impl_.family_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
void MpUnreachNLRIAttribute::clear_nlris() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nlris_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
MpUnreachNLRIAttribute::MpUnreachNLRIAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MpUnreachNLRIAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MpUnreachNLRIAttribute)
}
PROTOBUF_NDEBUG_INLINE MpUnreachNLRIAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::MpUnreachNLRIAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        nlris_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::MpUnreachNLRIAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::MpUnreachNLRIAttribute, _impl_.nlris_)>()
          , from.nlris_
        }
     {}

MpUnreachNLRIAttribute::MpUnreachNLRIAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MpUnreachNLRIAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MpUnreachNLRIAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MpUnreachNLRIAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.family_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.family_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.MpUnreachNLRIAttribute)
}
PROTOBUF_NDEBUG_INLINE MpUnreachNLRIAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        nlris_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::MpUnreachNLRIAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::MpUnreachNLRIAttribute, _impl_.nlris_)>()
         }
     {}

inline void MpUnreachNLRIAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.family_ = {};
}
MpUnreachNLRIAttribute::~MpUnreachNLRIAttribute() {
  // @@protoc_insertion_point(destructor:apipb.MpUnreachNLRIAttribute)
  SharedDtor(*this);
}
inline void MpUnreachNLRIAttribute::SharedDtor(MessageLite& self) {
  MpUnreachNLRIAttribute& this_ = static_cast<MpUnreachNLRIAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.family_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MpUnreachNLRIAttribute_class_data_ =
        MpUnreachNLRIAttribute::InternalGenerateClassData_(MpUnreachNLRIAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MpUnreachNLRIAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MpUnreachNLRIAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MpUnreachNLRIAttribute_class_data_.tc_table);
  return MpUnreachNLRIAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MpUnreachNLRIAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MpUnreachNLRIAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MpUnreachNLRIAttribute_globals_));
  return MpUnreachNLRIAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MpUnreachNLRIAttribute::ParseTableT_
    MpUnreachNLRIAttribute::_table_ =
        MpUnreachNLRIAttribute::InternalGenerateParseTable_(MpUnreachNLRIAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MpUnreachNLRIAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MpUnreachNLRIAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.nlris_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.family_ != nullptr);
      _impl_.family_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.Family family = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.family_, this_._impl_.family_->GetCachedSize(), target,
        stream);
  }

  // repeated .google.protobuf.Any nlris = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_nlris_size());
         i < n; i++) {
      const auto& repfield = this_._internal_nlris().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MpUnreachNLRIAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .google.protobuf.Any nlris = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_nlris_size();
      for (const auto& msg : this_._internal_nlris()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .apipb.Family family = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.family_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_nlris()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_nlris());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.family_ != nullptr);
      if (_this->_impl_.family_ == nullptr) {
        _this->_impl_.family_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.family_);
      } else {
        _this->_impl_.family_->MergeFrom(*from._impl_.family_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata MpUnreachNLRIAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TwoOctetAsSpecificExtended::TwoOctetAsSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TwoOctetAsSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TwoOctetAsSpecificExtended)
}
TwoOctetAsSpecificExtended::TwoOctetAsSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TwoOctetAsSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TwoOctetAsSpecificExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TwoOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TwoOctetAsSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_transitive_),
           0,
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, is_transitive_) +
               sizeof(Impl_::local_admin_));
}
TwoOctetAsSpecificExtended::~TwoOctetAsSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.TwoOctetAsSpecificExtended)
  SharedDtor(*this);
}
inline void TwoOctetAsSpecificExtended::SharedDtor(MessageLite& self) {
  TwoOctetAsSpecificExtended& this_ = static_cast<TwoOctetAsSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TwoOctetAsSpecificExtended_class_data_ =
        TwoOctetAsSpecificExtended::InternalGenerateClassData_(TwoOctetAsSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TwoOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TwoOctetAsSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TwoOctetAsSpecificExtended_class_data_.tc_table);
  return TwoOctetAsSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TwoOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TwoOctetAsSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TwoOctetAsSpecificExtended_globals_));
  return TwoOctetAsSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TwoOctetAsSpecificExtended::ParseTableT_
    TwoOctetAsSpecificExtended::_table_ =
        TwoOctetAsSpecificExtended::InternalGenerateParseTable_(TwoOctetAsSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TwoOctetAsSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TwoOctetAsSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    ::memset(&_impl_.is_transitive_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_admin_) -
        reinterpret_cast<char*>(&_impl_.is_transitive_)) + sizeof(_impl_.local_admin_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_transitive = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_is_transitive() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_transitive(), target);
    }
  }

  // uint32 sub_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_sub_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_sub_type(), target);
    }
  }

  // uint32 asn = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_asn(), target);
    }
  }

  // uint32 local_admin = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TwoOctetAsSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bool is_transitive = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_is_transitive() != 0) {
        total_size += 2;
      }
    }
    // uint32 sub_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_sub_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sub_type());
      }
    }
    // uint32 asn = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // uint32 local_admin = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_is_transitive() != 0) {
        _this->_impl_.is_transitive_ = from._impl_.is_transitive_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_sub_type() != 0) {
        _this->_impl_.sub_type_ = from._impl_.sub_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void TwoOctetAsSpecificExtended::InternalSwap(TwoOctetAsSpecificExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.local_admin_)
      + sizeof(TwoOctetAsSpecificExtended::_impl_.local_admin_)
      - PROTOBUF_FIELD_OFFSET(TwoOctetAsSpecificExtended, _impl_.is_transitive_)>(
          reinterpret_cast<char*>(&_impl_.is_transitive_),
          reinterpret_cast<char*>(&other->_impl_.is_transitive_));
}

::google::protobuf::Metadata TwoOctetAsSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

IPv4AddressSpecificExtended::IPv4AddressSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IPv4AddressSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.IPv4AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE IPv4AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::IPv4AddressSpecificExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

IPv4AddressSpecificExtended::IPv4AddressSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const IPv4AddressSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IPv4AddressSpecificExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  IPv4AddressSpecificExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_transitive_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, is_transitive_),
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, is_transitive_) +
               sizeof(Impl_::local_admin_));

  // @@protoc_insertion_point(copy_constructor:apipb.IPv4AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE IPv4AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void IPv4AddressSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_transitive_),
           0,
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, is_transitive_) +
               sizeof(Impl_::local_admin_));
}
IPv4AddressSpecificExtended::~IPv4AddressSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.IPv4AddressSpecificExtended)
  SharedDtor(*this);
}
inline void IPv4AddressSpecificExtended::SharedDtor(MessageLite& self) {
  IPv4AddressSpecificExtended& this_ = static_cast<IPv4AddressSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull IPv4AddressSpecificExtended_class_data_ =
        IPv4AddressSpecificExtended::InternalGenerateClassData_(IPv4AddressSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IPv4AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IPv4AddressSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(IPv4AddressSpecificExtended_class_data_.tc_table);
  return IPv4AddressSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IPv4AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IPv4AddressSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&IPv4AddressSpecificExtended_globals_));
  return IPv4AddressSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const IPv4AddressSpecificExtended::ParseTableT_
    IPv4AddressSpecificExtended::_table_ =
        IPv4AddressSpecificExtended::InternalGenerateParseTable_(IPv4AddressSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void IPv4AddressSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.IPv4AddressSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.is_transitive_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_admin_) -
        reinterpret_cast<char*>(&_impl_.is_transitive_)) + sizeof(_impl_.local_admin_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_transitive = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_is_transitive() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_transitive(), target);
    }
  }

  // uint32 sub_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_sub_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_sub_type(), target);
    }
  }

  // string address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.IPv4AddressSpecificExtended.address");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // uint32 local_admin = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.IPv4AddressSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // string address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // bool is_transitive = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_is_transitive() != 0) {
        total_size += 2;
      }
    }
    // uint32 sub_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_sub_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sub_type());
      }
    }
    // uint32 local_admin = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_is_transitive() != 0) {
        _this->_impl_.is_transitive_ = from._impl_.is_transitive_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_sub_type() != 0) {
        _this->_impl_.sub_type_ = from._impl_.sub_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void IPv4AddressSpecificExtended::InternalSwap(IPv4AddressSpecificExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.address_, &other->_impl_.address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.local_admin_)
      + sizeof(IPv4AddressSpecificExtended::_impl_.local_admin_)
      - PROTOBUF_FIELD_OFFSET(IPv4AddressSpecificExtended, _impl_.is_transitive_)>(
          reinterpret_cast<char*>(&_impl_.is_transitive_),
          reinterpret_cast<char*>(&other->_impl_.is_transitive_));
}

::google::protobuf::Metadata IPv4AddressSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

FourOctetAsSpecificExtended::FourOctetAsSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FourOctetAsSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.FourOctetAsSpecificExtended)
}
FourOctetAsSpecificExtended::FourOctetAsSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FourOctetAsSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FourOctetAsSpecificExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE FourOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void FourOctetAsSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_transitive_),
           0,
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, is_transitive_) +
               sizeof(Impl_::local_admin_));
}
FourOctetAsSpecificExtended::~FourOctetAsSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.FourOctetAsSpecificExtended)
  SharedDtor(*this);
}
inline void FourOctetAsSpecificExtended::SharedDtor(MessageLite& self) {
  FourOctetAsSpecificExtended& this_ = static_cast<FourOctetAsSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FourOctetAsSpecificExtended_class_data_ =
        FourOctetAsSpecificExtended::InternalGenerateClassData_(FourOctetAsSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FourOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FourOctetAsSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FourOctetAsSpecificExtended_class_data_.tc_table);
  return FourOctetAsSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FourOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FourOctetAsSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&FourOctetAsSpecificExtended_globals_));
  return FourOctetAsSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FourOctetAsSpecificExtended::ParseTableT_
    FourOctetAsSpecificExtended::_table_ =
        FourOctetAsSpecificExtended::InternalGenerateParseTable_(FourOctetAsSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FourOctetAsSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.FourOctetAsSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    ::memset(&_impl_.is_transitive_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_admin_) -
        reinterpret_cast<char*>(&_impl_.is_transitive_)) + sizeof(_impl_.local_admin_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_transitive = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_is_transitive() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_transitive(), target);
    }
  }

  // uint32 sub_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_sub_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_sub_type(), target);
    }
  }

  // uint32 asn = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_asn(), target);
    }
  }

  // uint32 local_admin = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.FourOctetAsSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bool is_transitive = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_is_transitive() != 0) {
        total_size += 2;
      }
    }
    // uint32 sub_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_sub_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sub_type());
      }
    }
    // uint32 asn = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // uint32 local_admin = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_is_transitive() != 0) {
        _this->_impl_.is_transitive_ = from._impl_.is_transitive_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_sub_type() != 0) {
        _this->_impl_.sub_type_ = from._impl_.sub_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void FourOctetAsSpecificExtended::InternalSwap(FourOctetAsSpecificExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.local_admin_)
      + sizeof(FourOctetAsSpecificExtended::_impl_.local_admin_)
      - PROTOBUF_FIELD_OFFSET(FourOctetAsSpecificExtended, _impl_.is_transitive_)>(
          reinterpret_cast<char*>(&_impl_.is_transitive_),
          reinterpret_cast<char*>(&other->_impl_.is_transitive_));
}

::google::protobuf::Metadata FourOctetAsSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LinkBandwidthExtended::LinkBandwidthExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LinkBandwidthExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LinkBandwidthExtended)
}
LinkBandwidthExtended::LinkBandwidthExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LinkBandwidthExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LinkBandwidthExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LinkBandwidthExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LinkBandwidthExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, asn_),
           0,
           offsetof(Impl_, bandwidth_) -
               offsetof(Impl_, asn_) +
               sizeof(Impl_::bandwidth_));
}
LinkBandwidthExtended::~LinkBandwidthExtended() {
  // @@protoc_insertion_point(destructor:apipb.LinkBandwidthExtended)
  SharedDtor(*this);
}
inline void LinkBandwidthExtended::SharedDtor(MessageLite& self) {
  LinkBandwidthExtended& this_ = static_cast<LinkBandwidthExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LinkBandwidthExtended_class_data_ =
        LinkBandwidthExtended::InternalGenerateClassData_(LinkBandwidthExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LinkBandwidthExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LinkBandwidthExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LinkBandwidthExtended_class_data_.tc_table);
  return LinkBandwidthExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LinkBandwidthExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LinkBandwidthExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LinkBandwidthExtended_globals_));
  return LinkBandwidthExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LinkBandwidthExtended::ParseTableT_
    LinkBandwidthExtended::_table_ =
        LinkBandwidthExtended::InternalGenerateParseTable_(LinkBandwidthExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LinkBandwidthExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LinkBandwidthExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.asn_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.bandwidth_) -
        reinterpret_cast<char*>(&_impl_.asn_)) + sizeof(_impl_.bandwidth_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // float bandwidth = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_bandwidth()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          2, this_._internal_bandwidth(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LinkBandwidthExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // float bandwidth = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_bandwidth()) != 0) {
        total_size += 5;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_bandwidth()) != 0) {
        _this->_impl_.bandwidth_ = from._impl_.bandwidth_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LinkBandwidthExtended::InternalSwap(LinkBandwidthExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_.bandwidth_)
      + sizeof(LinkBandwidthExtended::_impl_.bandwidth_)
      - PROTOBUF_FIELD_OFFSET(LinkBandwidthExtended, _impl_.asn_)>(
          reinterpret_cast<char*>(&_impl_.asn_),
          reinterpret_cast<char*>(&other->_impl_.asn_));
}

::google::protobuf::Metadata LinkBandwidthExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ValidationExtended::ValidationExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ValidationExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.ValidationExtended)
}
ValidationExtended::ValidationExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ValidationExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ValidationExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ValidationExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ValidationExtended_class_data_ =
        ValidationExtended::InternalGenerateClassData_(ValidationExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ValidationExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ValidationExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ValidationExtended_class_data_.tc_table);
  return ValidationExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ValidationExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ValidationExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ValidationExtended_globals_));
  return ValidationExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ValidationExtended::ParseTableT_
    ValidationExtended::_table_ =
        ValidationExtended::InternalGenerateParseTable_(ValidationExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ValidationExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.ValidationExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.state_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 state = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_state() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_state(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.ValidationExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 state = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_state() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_state());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_state() != 0) {
      _this->_impl_.state_ = from._impl_.state_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata ValidationExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ColorExtended::ColorExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ColorExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.ColorExtended)
}
ColorExtended::ColorExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ColorExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ColorExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ColorExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ColorExtended_class_data_ =
        ColorExtended::InternalGenerateClassData_(ColorExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ColorExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ColorExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ColorExtended_class_data_.tc_table);
  return ColorExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ColorExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ColorExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ColorExtended_globals_));
  return ColorExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ColorExtended::ParseTableT_
    ColorExtended::_table_ =
        ColorExtended::InternalGenerateParseTable_(ColorExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ColorExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.ColorExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.color_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 color = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_color() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_color(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.ColorExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 color = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_color() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_color());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_color() != 0) {
      _this->_impl_.color_ = from._impl_.color_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata ColorExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

EncapExtended::EncapExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EncapExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.EncapExtended)
}
EncapExtended::EncapExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const EncapExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EncapExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE EncapExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EncapExtended_class_data_ =
        EncapExtended::InternalGenerateClassData_(EncapExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EncapExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EncapExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EncapExtended_class_data_.tc_table);
  return EncapExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EncapExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EncapExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&EncapExtended_globals_));
  return EncapExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const EncapExtended::ParseTableT_
    EncapExtended::_table_ =
        EncapExtended::InternalGenerateParseTable_(EncapExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void EncapExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.EncapExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.tunnel_type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 tunnel_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_tunnel_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_tunnel_type(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.EncapExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 tunnel_type = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_tunnel_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_tunnel_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_tunnel_type() != 0) {
      _this->_impl_.tunnel_type_ = from._impl_.tunnel_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata EncapExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

DefaultGatewayExtended::DefaultGatewayExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, DefaultGatewayExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(arena_constructor:apipb.DefaultGatewayExtended)
}
DefaultGatewayExtended::DefaultGatewayExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const DefaultGatewayExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::internal::ZeroFieldsBase(arena, DefaultGatewayExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::internal::ZeroFieldsBase(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DefaultGatewayExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);

  // @@protoc_insertion_point(copy_constructor:apipb.DefaultGatewayExtended)
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull DefaultGatewayExtended_class_data_ =
        DefaultGatewayExtended::InternalGenerateClassData_(DefaultGatewayExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DefaultGatewayExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DefaultGatewayExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(DefaultGatewayExtended_class_data_.tc_table);
  return DefaultGatewayExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DefaultGatewayExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DefaultGatewayExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&DefaultGatewayExtended_globals_));
  return DefaultGatewayExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const DefaultGatewayExtended::ParseTableT_
    DefaultGatewayExtended::_table_ =
        DefaultGatewayExtended::InternalGenerateParseTable_(DefaultGatewayExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS







::google::protobuf::Metadata DefaultGatewayExtended::GetMetadata() const {
  return ::google::protobuf::internal::ZeroFieldsBase::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

OpaqueExtended::OpaqueExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OpaqueExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.OpaqueExtended)
}
PROTOBUF_NDEBUG_INLINE OpaqueExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::OpaqueExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        value_(arena, from.value_) {}

OpaqueExtended::OpaqueExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const OpaqueExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, OpaqueExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  OpaqueExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.is_transitive_ = from._impl_.is_transitive_;

  // @@protoc_insertion_point(copy_constructor:apipb.OpaqueExtended)
}
PROTOBUF_NDEBUG_INLINE OpaqueExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

inline void OpaqueExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.is_transitive_ = {};
}
OpaqueExtended::~OpaqueExtended() {
  // @@protoc_insertion_point(destructor:apipb.OpaqueExtended)
  SharedDtor(*this);
}
inline void OpaqueExtended::SharedDtor(MessageLite& self) {
  OpaqueExtended& this_ = static_cast<OpaqueExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull OpaqueExtended_class_data_ =
        OpaqueExtended::InternalGenerateClassData_(OpaqueExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OpaqueExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OpaqueExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(OpaqueExtended_class_data_.tc_table);
  return OpaqueExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OpaqueExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&OpaqueExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&OpaqueExtended_globals_));
  return OpaqueExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const OpaqueExtended::ParseTableT_
    OpaqueExtended::_table_ =
        OpaqueExtended::InternalGenerateParseTable_(OpaqueExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void OpaqueExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.OpaqueExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  _impl_.is_transitive_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_transitive = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_is_transitive() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_transitive(), target);
    }
  }

  // bytes value = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.OpaqueExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes value = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // bool is_transitive = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_is_transitive() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_is_transitive() != 0) {
        _this->_impl_.is_transitive_ = from._impl_.is_transitive_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata OpaqueExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ESILabelExtended::ESILabelExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ESILabelExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.ESILabelExtended)
}
ESILabelExtended::ESILabelExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ESILabelExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ESILabelExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ESILabelExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ESILabelExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_single_active_),
           0,
           offsetof(Impl_, label_) -
               offsetof(Impl_, is_single_active_) +
               sizeof(Impl_::label_));
}
ESILabelExtended::~ESILabelExtended() {
  // @@protoc_insertion_point(destructor:apipb.ESILabelExtended)
  SharedDtor(*this);
}
inline void ESILabelExtended::SharedDtor(MessageLite& self) {
  ESILabelExtended& this_ = static_cast<ESILabelExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ESILabelExtended_class_data_ =
        ESILabelExtended::InternalGenerateClassData_(ESILabelExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ESILabelExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ESILabelExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ESILabelExtended_class_data_.tc_table);
  return ESILabelExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ESILabelExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ESILabelExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ESILabelExtended_globals_));
  return ESILabelExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ESILabelExtended::ParseTableT_
    ESILabelExtended::_table_ =
        ESILabelExtended::InternalGenerateParseTable_(ESILabelExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ESILabelExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.ESILabelExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.is_single_active_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.label_) -
        reinterpret_cast<char*>(&_impl_.is_single_active_)) + sizeof(_impl_.label_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_single_active = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_is_single_active() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_single_active(), target);
    }
  }

  // uint32 label = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_label() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_label(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.ESILabelExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bool is_single_active = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_is_single_active() != 0) {
        total_size += 2;
      }
    }
    // uint32 label = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_label() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_label());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_is_single_active() != 0) {
        _this->_impl_.is_single_active_ = from._impl_.is_single_active_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_label() != 0) {
        _this->_impl_.label_ = from._impl_.label_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void ESILabelExtended::InternalSwap(ESILabelExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_.label_)
      + sizeof(ESILabelExtended::_impl_.label_)
      - PROTOBUF_FIELD_OFFSET(ESILabelExtended, _impl_.is_single_active_)>(
          reinterpret_cast<char*>(&_impl_.is_single_active_),
          reinterpret_cast<char*>(&other->_impl_.is_single_active_));
}

::google::protobuf::Metadata ESILabelExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ESImportRouteTarget::ESImportRouteTarget(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ESImportRouteTarget_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.ESImportRouteTarget)
}
PROTOBUF_NDEBUG_INLINE ESImportRouteTarget::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::ESImportRouteTarget& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        es_import_(arena, from.es_import_) {}

ESImportRouteTarget::ESImportRouteTarget(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ESImportRouteTarget& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ESImportRouteTarget_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ESImportRouteTarget* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.ESImportRouteTarget)
}
PROTOBUF_NDEBUG_INLINE ESImportRouteTarget::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        es_import_(arena) {}

inline void ESImportRouteTarget::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ESImportRouteTarget::~ESImportRouteTarget() {
  // @@protoc_insertion_point(destructor:apipb.ESImportRouteTarget)
  SharedDtor(*this);
}
inline void ESImportRouteTarget::SharedDtor(MessageLite& self) {
  ESImportRouteTarget& this_ = static_cast<ESImportRouteTarget&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.es_import_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ESImportRouteTarget_class_data_ =
        ESImportRouteTarget::InternalGenerateClassData_(ESImportRouteTarget_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ESImportRouteTarget::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ESImportRouteTarget_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ESImportRouteTarget_class_data_.tc_table);
  return ESImportRouteTarget_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ESImportRouteTarget::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ESImportRouteTarget_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ESImportRouteTarget_globals_));
  return ESImportRouteTarget_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ESImportRouteTarget::ParseTableT_
    ESImportRouteTarget::_table_ =
        ESImportRouteTarget::InternalGenerateParseTable_(ESImportRouteTarget_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ESImportRouteTarget::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.ESImportRouteTarget)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.es_import_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string es_import = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_es_import().empty()) {
      const ::std::string& _s = this_._internal_es_import();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.ESImportRouteTarget.es_import");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.ESImportRouteTarget)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string es_import = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_es_import().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_es_import());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_es_import().empty()) {
      _this->_internal_set_es_import(from._internal_es_import());
    } else {
      if (_this->_impl_.es_import_.IsDefault()) {
        _this->_internal_set_es_import("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata ESImportRouteTarget::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

MacMobilityExtended::MacMobilityExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MacMobilityExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MacMobilityExtended)
}
MacMobilityExtended::MacMobilityExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MacMobilityExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MacMobilityExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE MacMobilityExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void MacMobilityExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_sticky_),
           0,
           offsetof(Impl_, sequence_num_) -
               offsetof(Impl_, is_sticky_) +
               sizeof(Impl_::sequence_num_));
}
MacMobilityExtended::~MacMobilityExtended() {
  // @@protoc_insertion_point(destructor:apipb.MacMobilityExtended)
  SharedDtor(*this);
}
inline void MacMobilityExtended::SharedDtor(MessageLite& self) {
  MacMobilityExtended& this_ = static_cast<MacMobilityExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MacMobilityExtended_class_data_ =
        MacMobilityExtended::InternalGenerateClassData_(MacMobilityExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MacMobilityExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MacMobilityExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MacMobilityExtended_class_data_.tc_table);
  return MacMobilityExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MacMobilityExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MacMobilityExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MacMobilityExtended_globals_));
  return MacMobilityExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MacMobilityExtended::ParseTableT_
    MacMobilityExtended::_table_ =
        MacMobilityExtended::InternalGenerateParseTable_(MacMobilityExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MacMobilityExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MacMobilityExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.is_sticky_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.sequence_num_) -
        reinterpret_cast<char*>(&_impl_.is_sticky_)) + sizeof(_impl_.sequence_num_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_sticky = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_is_sticky() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_sticky(), target);
    }
  }

  // uint32 sequence_num = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_sequence_num() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_sequence_num(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MacMobilityExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bool is_sticky = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_is_sticky() != 0) {
        total_size += 2;
      }
    }
    // uint32 sequence_num = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_sequence_num() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sequence_num());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_is_sticky() != 0) {
        _this->_impl_.is_sticky_ = from._impl_.is_sticky_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_sequence_num() != 0) {
        _this->_impl_.sequence_num_ = from._impl_.sequence_num_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void MacMobilityExtended::InternalSwap(MacMobilityExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_.sequence_num_)
      + sizeof(MacMobilityExtended::_impl_.sequence_num_)
      - PROTOBUF_FIELD_OFFSET(MacMobilityExtended, _impl_.is_sticky_)>(
          reinterpret_cast<char*>(&_impl_.is_sticky_),
          reinterpret_cast<char*>(&other->_impl_.is_sticky_));
}

::google::protobuf::Metadata MacMobilityExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RouterMacExtended::RouterMacExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouterMacExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RouterMacExtended)
}
PROTOBUF_NDEBUG_INLINE RouterMacExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::RouterMacExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        mac_(arena, from.mac_) {}

RouterMacExtended::RouterMacExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RouterMacExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RouterMacExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RouterMacExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.RouterMacExtended)
}
PROTOBUF_NDEBUG_INLINE RouterMacExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        mac_(arena) {}

inline void RouterMacExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
RouterMacExtended::~RouterMacExtended() {
  // @@protoc_insertion_point(destructor:apipb.RouterMacExtended)
  SharedDtor(*this);
}
inline void RouterMacExtended::SharedDtor(MessageLite& self) {
  RouterMacExtended& this_ = static_cast<RouterMacExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.mac_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RouterMacExtended_class_data_ =
        RouterMacExtended::InternalGenerateClassData_(RouterMacExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouterMacExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouterMacExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RouterMacExtended_class_data_.tc_table);
  return RouterMacExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RouterMacExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RouterMacExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RouterMacExtended_globals_));
  return RouterMacExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RouterMacExtended::ParseTableT_
    RouterMacExtended::_table_ =
        RouterMacExtended::InternalGenerateParseTable_(RouterMacExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RouterMacExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RouterMacExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.mac_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string mac = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_mac().empty()) {
      const ::std::string& _s = this_._internal_mac();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.RouterMacExtended.mac");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RouterMacExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string mac = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_mac().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_mac());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_mac().empty()) {
      _this->_internal_set_mac(from._internal_mac());
    } else {
      if (_this->_impl_.mac_.IsDefault()) {
        _this->_internal_set_mac("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata RouterMacExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TrafficRateExtended::TrafficRateExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TrafficRateExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TrafficRateExtended)
}
TrafficRateExtended::TrafficRateExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TrafficRateExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TrafficRateExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TrafficRateExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TrafficRateExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, asn_),
           0,
           offsetof(Impl_, rate_) -
               offsetof(Impl_, asn_) +
               sizeof(Impl_::rate_));
}
TrafficRateExtended::~TrafficRateExtended() {
  // @@protoc_insertion_point(destructor:apipb.TrafficRateExtended)
  SharedDtor(*this);
}
inline void TrafficRateExtended::SharedDtor(MessageLite& self) {
  TrafficRateExtended& this_ = static_cast<TrafficRateExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TrafficRateExtended_class_data_ =
        TrafficRateExtended::InternalGenerateClassData_(TrafficRateExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TrafficRateExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TrafficRateExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TrafficRateExtended_class_data_.tc_table);
  return TrafficRateExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TrafficRateExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TrafficRateExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TrafficRateExtended_globals_));
  return TrafficRateExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TrafficRateExtended::ParseTableT_
    TrafficRateExtended::_table_ =
        TrafficRateExtended::InternalGenerateParseTable_(TrafficRateExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TrafficRateExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TrafficRateExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.asn_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.rate_) -
        reinterpret_cast<char*>(&_impl_.asn_)) + sizeof(_impl_.rate_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // float rate = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_rate()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          2, this_._internal_rate(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TrafficRateExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // float rate = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_rate()) != 0) {
        total_size += 5;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_rate()) != 0) {
        _this->_impl_.rate_ = from._impl_.rate_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void TrafficRateExtended::InternalSwap(TrafficRateExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_.rate_)
      + sizeof(TrafficRateExtended::_impl_.rate_)
      - PROTOBUF_FIELD_OFFSET(TrafficRateExtended, _impl_.asn_)>(
          reinterpret_cast<char*>(&_impl_.asn_),
          reinterpret_cast<char*>(&other->_impl_.asn_));
}

::google::protobuf::Metadata TrafficRateExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TrafficActionExtended::TrafficActionExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TrafficActionExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TrafficActionExtended)
}
TrafficActionExtended::TrafficActionExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TrafficActionExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TrafficActionExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TrafficActionExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TrafficActionExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, terminal_),
           0,
           offsetof(Impl_, sample_) -
               offsetof(Impl_, terminal_) +
               sizeof(Impl_::sample_));
}
TrafficActionExtended::~TrafficActionExtended() {
  // @@protoc_insertion_point(destructor:apipb.TrafficActionExtended)
  SharedDtor(*this);
}
inline void TrafficActionExtended::SharedDtor(MessageLite& self) {
  TrafficActionExtended& this_ = static_cast<TrafficActionExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TrafficActionExtended_class_data_ =
        TrafficActionExtended::InternalGenerateClassData_(TrafficActionExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TrafficActionExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TrafficActionExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TrafficActionExtended_class_data_.tc_table);
  return TrafficActionExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TrafficActionExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TrafficActionExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TrafficActionExtended_globals_));
  return TrafficActionExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TrafficActionExtended::ParseTableT_
    TrafficActionExtended::_table_ =
        TrafficActionExtended::InternalGenerateParseTable_(TrafficActionExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TrafficActionExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TrafficActionExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.terminal_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.sample_) -
      reinterpret_cast<char*>(&_impl_.terminal_)) + sizeof(_impl_.sample_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool terminal = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_terminal() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_terminal(), target);
    }
  }

  // bool sample = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_sample() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_sample(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TrafficActionExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bool terminal = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_terminal() != 0) {
        total_size += 2;
      }
    }
    // bool sample = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_sample() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_terminal() != 0) {
        _this->_impl_.terminal_ = from._impl_.terminal_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_sample() != 0) {
        _this->_impl_.sample_ = from._impl_.sample_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void TrafficActionExtended::InternalSwap(TrafficActionExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_.sample_)
      + sizeof(TrafficActionExtended::_impl_.sample_)
      - PROTOBUF_FIELD_OFFSET(TrafficActionExtended, _impl_.terminal_)>(
          reinterpret_cast<char*>(&_impl_.terminal_),
          reinterpret_cast<char*>(&other->_impl_.terminal_));
}

::google::protobuf::Metadata TrafficActionExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RedirectTwoOctetAsSpecificExtended::RedirectTwoOctetAsSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectTwoOctetAsSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RedirectTwoOctetAsSpecificExtended)
}
RedirectTwoOctetAsSpecificExtended::RedirectTwoOctetAsSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RedirectTwoOctetAsSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectTwoOctetAsSpecificExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE RedirectTwoOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RedirectTwoOctetAsSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, asn_),
           0,
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, asn_) +
               sizeof(Impl_::local_admin_));
}
RedirectTwoOctetAsSpecificExtended::~RedirectTwoOctetAsSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.RedirectTwoOctetAsSpecificExtended)
  SharedDtor(*this);
}
inline void RedirectTwoOctetAsSpecificExtended::SharedDtor(MessageLite& self) {
  RedirectTwoOctetAsSpecificExtended& this_ = static_cast<RedirectTwoOctetAsSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RedirectTwoOctetAsSpecificExtended_class_data_ =
        RedirectTwoOctetAsSpecificExtended::InternalGenerateClassData_(RedirectTwoOctetAsSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectTwoOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectTwoOctetAsSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RedirectTwoOctetAsSpecificExtended_class_data_.tc_table);
  return RedirectTwoOctetAsSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectTwoOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectTwoOctetAsSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RedirectTwoOctetAsSpecificExtended_globals_));
  return RedirectTwoOctetAsSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RedirectTwoOctetAsSpecificExtended::ParseTableT_
    RedirectTwoOctetAsSpecificExtended::_table_ =
        RedirectTwoOctetAsSpecificExtended::InternalGenerateParseTable_(RedirectTwoOctetAsSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RedirectTwoOctetAsSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RedirectTwoOctetAsSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.asn_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_admin_) -
        reinterpret_cast<char*>(&_impl_.asn_)) + sizeof(_impl_.local_admin_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // uint32 local_admin = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RedirectTwoOctetAsSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // uint32 local_admin = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RedirectTwoOctetAsSpecificExtended::InternalSwap(RedirectTwoOctetAsSpecificExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_.local_admin_)
      + sizeof(RedirectTwoOctetAsSpecificExtended::_impl_.local_admin_)
      - PROTOBUF_FIELD_OFFSET(RedirectTwoOctetAsSpecificExtended, _impl_.asn_)>(
          reinterpret_cast<char*>(&_impl_.asn_),
          reinterpret_cast<char*>(&other->_impl_.asn_));
}

::google::protobuf::Metadata RedirectTwoOctetAsSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RedirectIPv4AddressSpecificExtended::RedirectIPv4AddressSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectIPv4AddressSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RedirectIPv4AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE RedirectIPv4AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::RedirectIPv4AddressSpecificExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

RedirectIPv4AddressSpecificExtended::RedirectIPv4AddressSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RedirectIPv4AddressSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectIPv4AddressSpecificExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RedirectIPv4AddressSpecificExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.local_admin_ = from._impl_.local_admin_;

  // @@protoc_insertion_point(copy_constructor:apipb.RedirectIPv4AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE RedirectIPv4AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void RedirectIPv4AddressSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.local_admin_ = {};
}
RedirectIPv4AddressSpecificExtended::~RedirectIPv4AddressSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.RedirectIPv4AddressSpecificExtended)
  SharedDtor(*this);
}
inline void RedirectIPv4AddressSpecificExtended::SharedDtor(MessageLite& self) {
  RedirectIPv4AddressSpecificExtended& this_ = static_cast<RedirectIPv4AddressSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RedirectIPv4AddressSpecificExtended_class_data_ =
        RedirectIPv4AddressSpecificExtended::InternalGenerateClassData_(RedirectIPv4AddressSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectIPv4AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectIPv4AddressSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RedirectIPv4AddressSpecificExtended_class_data_.tc_table);
  return RedirectIPv4AddressSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectIPv4AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectIPv4AddressSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RedirectIPv4AddressSpecificExtended_globals_));
  return RedirectIPv4AddressSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RedirectIPv4AddressSpecificExtended::ParseTableT_
    RedirectIPv4AddressSpecificExtended::_table_ =
        RedirectIPv4AddressSpecificExtended::InternalGenerateParseTable_(RedirectIPv4AddressSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RedirectIPv4AddressSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RedirectIPv4AddressSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_.local_admin_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string address = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.RedirectIPv4AddressSpecificExtended.address");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // uint32 local_admin = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RedirectIPv4AddressSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string address = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // uint32 local_admin = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata RedirectIPv4AddressSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RedirectFourOctetAsSpecificExtended::RedirectFourOctetAsSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectFourOctetAsSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RedirectFourOctetAsSpecificExtended)
}
RedirectFourOctetAsSpecificExtended::RedirectFourOctetAsSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RedirectFourOctetAsSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectFourOctetAsSpecificExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE RedirectFourOctetAsSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RedirectFourOctetAsSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, asn_),
           0,
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, asn_) +
               sizeof(Impl_::local_admin_));
}
RedirectFourOctetAsSpecificExtended::~RedirectFourOctetAsSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.RedirectFourOctetAsSpecificExtended)
  SharedDtor(*this);
}
inline void RedirectFourOctetAsSpecificExtended::SharedDtor(MessageLite& self) {
  RedirectFourOctetAsSpecificExtended& this_ = static_cast<RedirectFourOctetAsSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RedirectFourOctetAsSpecificExtended_class_data_ =
        RedirectFourOctetAsSpecificExtended::InternalGenerateClassData_(RedirectFourOctetAsSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectFourOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectFourOctetAsSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RedirectFourOctetAsSpecificExtended_class_data_.tc_table);
  return RedirectFourOctetAsSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectFourOctetAsSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectFourOctetAsSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RedirectFourOctetAsSpecificExtended_globals_));
  return RedirectFourOctetAsSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RedirectFourOctetAsSpecificExtended::ParseTableT_
    RedirectFourOctetAsSpecificExtended::_table_ =
        RedirectFourOctetAsSpecificExtended::InternalGenerateParseTable_(RedirectFourOctetAsSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RedirectFourOctetAsSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RedirectFourOctetAsSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.asn_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_admin_) -
        reinterpret_cast<char*>(&_impl_.asn_)) + sizeof(_impl_.local_admin_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_asn(), target);
    }
  }

  // uint32 local_admin = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RedirectFourOctetAsSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 asn = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
    // uint32 local_admin = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void RedirectFourOctetAsSpecificExtended::InternalSwap(RedirectFourOctetAsSpecificExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_.local_admin_)
      + sizeof(RedirectFourOctetAsSpecificExtended::_impl_.local_admin_)
      - PROTOBUF_FIELD_OFFSET(RedirectFourOctetAsSpecificExtended, _impl_.asn_)>(
          reinterpret_cast<char*>(&_impl_.asn_),
          reinterpret_cast<char*>(&other->_impl_.asn_));
}

::google::protobuf::Metadata RedirectFourOctetAsSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TrafficRemarkExtended::TrafficRemarkExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TrafficRemarkExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TrafficRemarkExtended)
}
TrafficRemarkExtended::TrafficRemarkExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TrafficRemarkExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TrafficRemarkExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TrafficRemarkExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TrafficRemarkExtended_class_data_ =
        TrafficRemarkExtended::InternalGenerateClassData_(TrafficRemarkExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TrafficRemarkExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TrafficRemarkExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TrafficRemarkExtended_class_data_.tc_table);
  return TrafficRemarkExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TrafficRemarkExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TrafficRemarkExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TrafficRemarkExtended_globals_));
  return TrafficRemarkExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TrafficRemarkExtended::ParseTableT_
    TrafficRemarkExtended::_table_ =
        TrafficRemarkExtended::InternalGenerateParseTable_(TrafficRemarkExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TrafficRemarkExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TrafficRemarkExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.dscp_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 dscp = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_dscp() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_dscp(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TrafficRemarkExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 dscp = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_dscp() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_dscp());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_dscp() != 0) {
      _this->_impl_.dscp_ = from._impl_.dscp_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TrafficRemarkExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

MUPExtended::MUPExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.MUPExtended)
}
MUPExtended::MUPExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MUPExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MUPExtended_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE MUPExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void MUPExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, sub_type_),
           0,
           offsetof(Impl_, segment_id4_) -
               offsetof(Impl_, sub_type_) +
               sizeof(Impl_::segment_id4_));
}
MUPExtended::~MUPExtended() {
  // @@protoc_insertion_point(destructor:apipb.MUPExtended)
  SharedDtor(*this);
}
inline void MUPExtended::SharedDtor(MessageLite& self) {
  MUPExtended& this_ = static_cast<MUPExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MUPExtended_class_data_ =
        MUPExtended::InternalGenerateClassData_(MUPExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MUPExtended_class_data_.tc_table);
  return MUPExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MUPExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MUPExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MUPExtended_globals_));
  return MUPExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MUPExtended::ParseTableT_
    MUPExtended::_table_ =
        MUPExtended::InternalGenerateParseTable_(MUPExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MUPExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.MUPExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.sub_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.segment_id4_) -
        reinterpret_cast<char*>(&_impl_.sub_type_)) + sizeof(_impl_.segment_id4_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 sub_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_sub_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_sub_type(), target);
    }
  }

  // uint32 segment_id2 = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_segment_id2() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_segment_id2(), target);
    }
  }

  // uint32 segment_id4 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_segment_id4() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_segment_id4(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.MUPExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // uint32 sub_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_sub_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sub_type());
      }
    }
    // uint32 segment_id2 = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_segment_id2() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_segment_id2());
      }
    }
    // uint32 segment_id4 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_segment_id4() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_segment_id4());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_sub_type() != 0) {
        _this->_impl_.sub_type_ = from._impl_.sub_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_segment_id2() != 0) {
        _this->_impl_.segment_id2_ = from._impl_.segment_id2_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_segment_id4() != 0) {
        _this->_impl_.segment_id4_ = from._impl_.segment_id4_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void MUPExtended::InternalSwap(MUPExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.segment_id4_)
      + sizeof(MUPExtended::_impl_.segment_id4_)
      - PROTOBUF_FIELD_OFFSET(MUPExtended, _impl_.sub_type_)>(
          reinterpret_cast<char*>(&_impl_.sub_type_),
          reinterpret_cast<char*>(&other->_impl_.sub_type_));
}

::google::protobuf::Metadata MUPExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

UnknownExtended::UnknownExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, UnknownExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.UnknownExtended)
}
PROTOBUF_NDEBUG_INLINE UnknownExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::UnknownExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        value_(arena, from.value_) {}

UnknownExtended::UnknownExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const UnknownExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, UnknownExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  UnknownExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.UnknownExtended)
}
PROTOBUF_NDEBUG_INLINE UnknownExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

inline void UnknownExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.type_ = {};
}
UnknownExtended::~UnknownExtended() {
  // @@protoc_insertion_point(destructor:apipb.UnknownExtended)
  SharedDtor(*this);
}
inline void UnknownExtended::SharedDtor(MessageLite& self) {
  UnknownExtended& this_ = static_cast<UnknownExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull UnknownExtended_class_data_ =
        UnknownExtended::InternalGenerateClassData_(UnknownExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
UnknownExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&UnknownExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(UnknownExtended_class_data_.tc_table);
  return UnknownExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
UnknownExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&UnknownExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&UnknownExtended_globals_));
  return UnknownExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const UnknownExtended::ParseTableT_
    UnknownExtended::_table_ =
        UnknownExtended::InternalGenerateParseTable_(UnknownExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void UnknownExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.UnknownExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // bytes value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.UnknownExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata UnknownExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void ExtendedCommunitiesAttribute::clear_communities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communities_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
ExtendedCommunitiesAttribute::ExtendedCommunitiesAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExtendedCommunitiesAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.ExtendedCommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE ExtendedCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::ExtendedCommunitiesAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        communities_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::ExtendedCommunitiesAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::ExtendedCommunitiesAttribute, _impl_.communities_)>()
          , from.communities_
        }
     {}

ExtendedCommunitiesAttribute::ExtendedCommunitiesAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ExtendedCommunitiesAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExtendedCommunitiesAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExtendedCommunitiesAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.ExtendedCommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE ExtendedCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::ExtendedCommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::ExtendedCommunitiesAttribute, _impl_.communities_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExtendedCommunitiesAttribute_class_data_ =
        ExtendedCommunitiesAttribute::InternalGenerateClassData_(ExtendedCommunitiesAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtendedCommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtendedCommunitiesAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExtendedCommunitiesAttribute_class_data_.tc_table);
  return ExtendedCommunitiesAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExtendedCommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExtendedCommunitiesAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExtendedCommunitiesAttribute_globals_));
  return ExtendedCommunitiesAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExtendedCommunitiesAttribute::ParseTableT_
    ExtendedCommunitiesAttribute::_table_ =
        ExtendedCommunitiesAttribute::InternalGenerateParseTable_(ExtendedCommunitiesAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExtendedCommunitiesAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.ExtendedCommunitiesAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.communities_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.ExtendedCommunitiesAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .google.protobuf.Any communities = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_communities_size();
      for (const auto& msg : this_._internal_communities()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata ExtendedCommunitiesAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

As4PathAttribute::As4PathAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, As4PathAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.As4PathAttribute)
}
PROTOBUF_NDEBUG_INLINE As4PathAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::As4PathAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        segments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::As4PathAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::As4PathAttribute, _impl_.segments_)>()
          , from.segments_
        }
     {}

As4PathAttribute::As4PathAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const As4PathAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, As4PathAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  As4PathAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.As4PathAttribute)
}
PROTOBUF_NDEBUG_INLINE As4PathAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        segments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::As4PathAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::As4PathAttribute, _impl_.segments_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull As4PathAttribute_class_data_ =
        As4PathAttribute::InternalGenerateClassData_(As4PathAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
As4PathAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&As4PathAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(As4PathAttribute_class_data_.tc_table);
  return As4PathAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
As4PathAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&As4PathAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&As4PathAttribute_globals_));
  return As4PathAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const As4PathAttribute::ParseTableT_
    As4PathAttribute::_table_ =
        As4PathAttribute::InternalGenerateParseTable_(As4PathAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void As4PathAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.As4PathAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.segments_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .apipb.AsSegment segments = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_segments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_segments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.As4PathAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .apipb.AsSegment segments = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_segments_size();
      for (const auto& msg : this_._internal_segments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata As4PathAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

As4AggregatorAttribute::As4AggregatorAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, As4AggregatorAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.As4AggregatorAttribute)
}
PROTOBUF_NDEBUG_INLINE As4AggregatorAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::As4AggregatorAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

As4AggregatorAttribute::As4AggregatorAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const As4AggregatorAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, As4AggregatorAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  As4AggregatorAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.asn_ = from._impl_.asn_;

  // @@protoc_insertion_point(copy_constructor:apipb.As4AggregatorAttribute)
}
PROTOBUF_NDEBUG_INLINE As4AggregatorAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void As4AggregatorAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.asn_ = {};
}
As4AggregatorAttribute::~As4AggregatorAttribute() {
  // @@protoc_insertion_point(destructor:apipb.As4AggregatorAttribute)
  SharedDtor(*this);
}
inline void As4AggregatorAttribute::SharedDtor(MessageLite& self) {
  As4AggregatorAttribute& this_ = static_cast<As4AggregatorAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull As4AggregatorAttribute_class_data_ =
        As4AggregatorAttribute::InternalGenerateClassData_(As4AggregatorAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
As4AggregatorAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&As4AggregatorAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(As4AggregatorAttribute_class_data_.tc_table);
  return As4AggregatorAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
As4AggregatorAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&As4AggregatorAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&As4AggregatorAttribute_globals_));
  return As4AggregatorAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const As4AggregatorAttribute::ParseTableT_
    As4AggregatorAttribute::_table_ =
        As4AggregatorAttribute::InternalGenerateParseTable_(As4AggregatorAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void As4AggregatorAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.As4AggregatorAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_.asn_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 asn = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_asn() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_asn(), target);
    }
  }

  // string address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.As4AggregatorAttribute.address");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.As4AggregatorAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // uint32 asn = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_asn() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_asn());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_asn() != 0) {
        _this->_impl_.asn_ = from._impl_.asn_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata As4AggregatorAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

PmsiTunnelAttribute::PmsiTunnelAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PmsiTunnelAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.PmsiTunnelAttribute)
}
PROTOBUF_NDEBUG_INLINE PmsiTunnelAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::PmsiTunnelAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        id_(arena, from.id_) {}

PmsiTunnelAttribute::PmsiTunnelAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PmsiTunnelAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PmsiTunnelAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PmsiTunnelAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, flags_),
           offsetof(Impl_, label_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::label_));

  // @@protoc_insertion_point(copy_constructor:apipb.PmsiTunnelAttribute)
}
PROTOBUF_NDEBUG_INLINE PmsiTunnelAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        id_(arena) {}

inline void PmsiTunnelAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, label_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::label_));
}
PmsiTunnelAttribute::~PmsiTunnelAttribute() {
  // @@protoc_insertion_point(destructor:apipb.PmsiTunnelAttribute)
  SharedDtor(*this);
}
inline void PmsiTunnelAttribute::SharedDtor(MessageLite& self) {
  PmsiTunnelAttribute& this_ = static_cast<PmsiTunnelAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PmsiTunnelAttribute_class_data_ =
        PmsiTunnelAttribute::InternalGenerateClassData_(PmsiTunnelAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PmsiTunnelAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PmsiTunnelAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PmsiTunnelAttribute_class_data_.tc_table);
  return PmsiTunnelAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PmsiTunnelAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PmsiTunnelAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&PmsiTunnelAttribute_globals_));
  return PmsiTunnelAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PmsiTunnelAttribute::ParseTableT_
    PmsiTunnelAttribute::_table_ =
        PmsiTunnelAttribute::InternalGenerateParseTable_(PmsiTunnelAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PmsiTunnelAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.PmsiTunnelAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.id_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.flags_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.label_) -
        reinterpret_cast<char*>(&_impl_.flags_)) + sizeof(_impl_.label_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_flags(), target);
    }
  }

  // uint32 type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type(), target);
    }
  }

  // uint32 label = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_label() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_label(), target);
    }
  }

  // bytes id = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_id().empty()) {
      const ::std::string& _s = this_._internal_id();
      target = stream->WriteBytesMaybeAliased(4, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.PmsiTunnelAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bytes id = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_id());
      }
    }
    // uint32 flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
    // uint32 type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
    // uint32 label = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_label() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_label());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_id().empty()) {
        _this->_internal_set_id(from._internal_id());
      } else {
        if (_this->_impl_.id_.IsDefault()) {
          _this->_internal_set_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_label() != 0) {
        _this->_impl_.label_ = from._impl_.label_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void PmsiTunnelAttribute::InternalSwap(PmsiTunnelAttribute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, &other->_impl_.id_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.label_)
      + sizeof(PmsiTunnelAttribute::_impl_.label_)
      - PROTOBUF_FIELD_OFFSET(PmsiTunnelAttribute, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata PmsiTunnelAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVEncapsulation::TunnelEncapSubTLVEncapsulation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVEncapsulation_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVEncapsulation)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVEncapsulation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapSubTLVEncapsulation& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        cookie_(arena, from.cookie_) {}

TunnelEncapSubTLVEncapsulation::TunnelEncapSubTLVEncapsulation(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapSubTLVEncapsulation& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVEncapsulation_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapSubTLVEncapsulation* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.key_ = from._impl_.key_;

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapSubTLVEncapsulation)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVEncapsulation::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        cookie_(arena) {}

inline void TunnelEncapSubTLVEncapsulation::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.key_ = {};
}
TunnelEncapSubTLVEncapsulation::~TunnelEncapSubTLVEncapsulation() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVEncapsulation)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVEncapsulation::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVEncapsulation& this_ = static_cast<TunnelEncapSubTLVEncapsulation&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.cookie_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVEncapsulation_class_data_ =
        TunnelEncapSubTLVEncapsulation::InternalGenerateClassData_(TunnelEncapSubTLVEncapsulation_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVEncapsulation::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVEncapsulation_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVEncapsulation_class_data_.tc_table);
  return TunnelEncapSubTLVEncapsulation_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVEncapsulation::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVEncapsulation_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVEncapsulation_globals_));
  return TunnelEncapSubTLVEncapsulation_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVEncapsulation::ParseTableT_
    TunnelEncapSubTLVEncapsulation::_table_ =
        TunnelEncapSubTLVEncapsulation::InternalGenerateParseTable_(TunnelEncapSubTLVEncapsulation_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVEncapsulation::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVEncapsulation)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.cookie_.ClearNonDefaultToEmpty();
  }
  _impl_.key_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 key = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_key() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_key(), target);
    }
  }

  // bytes cookie = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_cookie().empty()) {
      const ::std::string& _s = this_._internal_cookie();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVEncapsulation)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes cookie = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_cookie().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_cookie());
      }
    }
    // uint32 key = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_key() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_key());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_cookie().empty()) {
        _this->_internal_set_cookie(from._internal_cookie());
      } else {
        if (_this->_impl_.cookie_.IsDefault()) {
          _this->_internal_set_cookie("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_key() != 0) {
        _this->_impl_.key_ = from._impl_.key_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVEncapsulation::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVProtocol::TunnelEncapSubTLVProtocol(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVProtocol_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVProtocol)
}
TunnelEncapSubTLVProtocol::TunnelEncapSubTLVProtocol(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TunnelEncapSubTLVProtocol& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVProtocol_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVProtocol::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVProtocol_class_data_ =
        TunnelEncapSubTLVProtocol::InternalGenerateClassData_(TunnelEncapSubTLVProtocol_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVProtocol::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVProtocol_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVProtocol_class_data_.tc_table);
  return TunnelEncapSubTLVProtocol_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVProtocol::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVProtocol_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVProtocol_globals_));
  return TunnelEncapSubTLVProtocol_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVProtocol::ParseTableT_
    TunnelEncapSubTLVProtocol::_table_ =
        TunnelEncapSubTLVProtocol::InternalGenerateParseTable_(TunnelEncapSubTLVProtocol_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVProtocol::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVProtocol)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.protocol_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 protocol = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_protocol() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_protocol(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVProtocol)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 protocol = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_protocol() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_protocol());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_protocol() != 0) {
      _this->_impl_.protocol_ = from._impl_.protocol_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVProtocol::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVColor::TunnelEncapSubTLVColor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVColor_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVColor)
}
TunnelEncapSubTLVColor::TunnelEncapSubTLVColor(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TunnelEncapSubTLVColor& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVColor_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVColor::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVColor_class_data_ =
        TunnelEncapSubTLVColor::InternalGenerateClassData_(TunnelEncapSubTLVColor_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVColor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVColor_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVColor_class_data_.tc_table);
  return TunnelEncapSubTLVColor_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVColor::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVColor_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVColor_globals_));
  return TunnelEncapSubTLVColor_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVColor::ParseTableT_
    TunnelEncapSubTLVColor::_table_ =
        TunnelEncapSubTLVColor::InternalGenerateParseTable_(TunnelEncapSubTLVColor_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVColor::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVColor)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.color_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 color = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_color() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_color(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVColor)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 color = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_color() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_color());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_color() != 0) {
      _this->_impl_.color_ = from._impl_.color_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVColor::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVSRPreference::TunnelEncapSubTLVSRPreference(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRPreference_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVSRPreference)
}
TunnelEncapSubTLVSRPreference::TunnelEncapSubTLVSRPreference(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TunnelEncapSubTLVSRPreference& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRPreference_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRPreference::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TunnelEncapSubTLVSRPreference::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, preference_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::preference_));
}
TunnelEncapSubTLVSRPreference::~TunnelEncapSubTLVSRPreference() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVSRPreference)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVSRPreference::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVSRPreference& this_ = static_cast<TunnelEncapSubTLVSRPreference&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVSRPreference_class_data_ =
        TunnelEncapSubTLVSRPreference::InternalGenerateClassData_(TunnelEncapSubTLVSRPreference_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRPreference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRPreference_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVSRPreference_class_data_.tc_table);
  return TunnelEncapSubTLVSRPreference_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRPreference::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRPreference_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVSRPreference_globals_));
  return TunnelEncapSubTLVSRPreference_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVSRPreference::ParseTableT_
    TunnelEncapSubTLVSRPreference::_table_ =
        TunnelEncapSubTLVSRPreference::InternalGenerateParseTable_(TunnelEncapSubTLVSRPreference_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVSRPreference::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVSRPreference)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.flags_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.preference_) -
        reinterpret_cast<char*>(&_impl_.flags_)) + sizeof(_impl_.preference_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_flags(), target);
    }
  }

  // uint32 preference = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_preference() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_preference(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVSRPreference)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
    // uint32 preference = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_preference() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_preference());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_preference() != 0) {
        _this->_impl_.preference_ = from._impl_.preference_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void TunnelEncapSubTLVSRPreference::InternalSwap(TunnelEncapSubTLVSRPreference* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_.preference_)
      + sizeof(TunnelEncapSubTLVSRPreference::_impl_.preference_)
      - PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRPreference, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata TunnelEncapSubTLVSRPreference::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVSRCandidatePathName::TunnelEncapSubTLVSRCandidatePathName(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRCandidatePathName_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVSRCandidatePathName)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRCandidatePathName::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapSubTLVSRCandidatePathName& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        candidate_path_name_(arena, from.candidate_path_name_) {}

TunnelEncapSubTLVSRCandidatePathName::TunnelEncapSubTLVSRCandidatePathName(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapSubTLVSRCandidatePathName& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRCandidatePathName_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapSubTLVSRCandidatePathName* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapSubTLVSRCandidatePathName)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRCandidatePathName::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        candidate_path_name_(arena) {}

inline void TunnelEncapSubTLVSRCandidatePathName::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
TunnelEncapSubTLVSRCandidatePathName::~TunnelEncapSubTLVSRCandidatePathName() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVSRCandidatePathName)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVSRCandidatePathName::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVSRCandidatePathName& this_ = static_cast<TunnelEncapSubTLVSRCandidatePathName&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.candidate_path_name_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVSRCandidatePathName_class_data_ =
        TunnelEncapSubTLVSRCandidatePathName::InternalGenerateClassData_(TunnelEncapSubTLVSRCandidatePathName_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRCandidatePathName::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRCandidatePathName_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVSRCandidatePathName_class_data_.tc_table);
  return TunnelEncapSubTLVSRCandidatePathName_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRCandidatePathName::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRCandidatePathName_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVSRCandidatePathName_globals_));
  return TunnelEncapSubTLVSRCandidatePathName_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVSRCandidatePathName::ParseTableT_
    TunnelEncapSubTLVSRCandidatePathName::_table_ =
        TunnelEncapSubTLVSRCandidatePathName::InternalGenerateParseTable_(TunnelEncapSubTLVSRCandidatePathName_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVSRCandidatePathName::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVSRCandidatePathName)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.candidate_path_name_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string candidate_path_name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_candidate_path_name().empty()) {
      const ::std::string& _s = this_._internal_candidate_path_name();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.TunnelEncapSubTLVSRCandidatePathName.candidate_path_name");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVSRCandidatePathName)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string candidate_path_name = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_candidate_path_name().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_candidate_path_name());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_candidate_path_name().empty()) {
      _this->_internal_set_candidate_path_name(from._internal_candidate_path_name());
    } else {
      if (_this->_impl_.candidate_path_name_.IsDefault()) {
        _this->_internal_set_candidate_path_name("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVSRCandidatePathName::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVSRPriority::TunnelEncapSubTLVSRPriority(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRPriority_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVSRPriority)
}
TunnelEncapSubTLVSRPriority::TunnelEncapSubTLVSRPriority(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TunnelEncapSubTLVSRPriority& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRPriority_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRPriority::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVSRPriority_class_data_ =
        TunnelEncapSubTLVSRPriority::InternalGenerateClassData_(TunnelEncapSubTLVSRPriority_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRPriority::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRPriority_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVSRPriority_class_data_.tc_table);
  return TunnelEncapSubTLVSRPriority_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRPriority::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRPriority_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVSRPriority_globals_));
  return TunnelEncapSubTLVSRPriority_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVSRPriority::ParseTableT_
    TunnelEncapSubTLVSRPriority::_table_ =
        TunnelEncapSubTLVSRPriority::InternalGenerateParseTable_(TunnelEncapSubTLVSRPriority_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVSRPriority::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVSRPriority)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.priority_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 priority = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_priority() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_priority(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVSRPriority)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 priority = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_priority() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_priority());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_priority() != 0) {
      _this->_impl_.priority_ = from._impl_.priority_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVSRPriority::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void TunnelEncapSubTLVSRBindingSID::clear_bsid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bsid_ != nullptr) _impl_.bsid_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
TunnelEncapSubTLVSRBindingSID::TunnelEncapSubTLVSRBindingSID(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRBindingSID_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVSRBindingSID)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRBindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapSubTLVSRBindingSID& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

TunnelEncapSubTLVSRBindingSID::TunnelEncapSubTLVSRBindingSID(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapSubTLVSRBindingSID& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRBindingSID_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapSubTLVSRBindingSID* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.bsid_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bsid_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapSubTLVSRBindingSID)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRBindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TunnelEncapSubTLVSRBindingSID::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.bsid_ = {};
}
TunnelEncapSubTLVSRBindingSID::~TunnelEncapSubTLVSRBindingSID() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVSRBindingSID)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVSRBindingSID::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVSRBindingSID& this_ = static_cast<TunnelEncapSubTLVSRBindingSID&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.bsid_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVSRBindingSID_class_data_ =
        TunnelEncapSubTLVSRBindingSID::InternalGenerateClassData_(TunnelEncapSubTLVSRBindingSID_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRBindingSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRBindingSID_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVSRBindingSID_class_data_.tc_table);
  return TunnelEncapSubTLVSRBindingSID_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRBindingSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRBindingSID_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVSRBindingSID_globals_));
  return TunnelEncapSubTLVSRBindingSID_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVSRBindingSID::ParseTableT_
    TunnelEncapSubTLVSRBindingSID::_table_ =
        TunnelEncapSubTLVSRBindingSID::InternalGenerateParseTable_(TunnelEncapSubTLVSRBindingSID_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVSRBindingSID::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVSRBindingSID)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.bsid_ != nullptr);
    _impl_.bsid_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .google.protobuf.Any bsid = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.bsid_, this_._impl_.bsid_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVSRBindingSID)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // .google.protobuf.Any bsid = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bsid_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.bsid_ != nullptr);
    if (_this->_impl_.bsid_ == nullptr) {
      _this->_impl_.bsid_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bsid_);
    } else {
      _this->_impl_.bsid_->MergeFrom(*from._impl_.bsid_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVSRBindingSID::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRBindingSID::SRBindingSID(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRBindingSID_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRBindingSID)
}
PROTOBUF_NDEBUG_INLINE SRBindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRBindingSID& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sid_(arena, from.sid_) {}

SRBindingSID::SRBindingSID(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRBindingSID& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRBindingSID_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRBindingSID* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, s_flag_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, s_flag_),
           offsetof(Impl_, i_flag_) -
               offsetof(Impl_, s_flag_) +
               sizeof(Impl_::i_flag_));

  // @@protoc_insertion_point(copy_constructor:apipb.SRBindingSID)
}
PROTOBUF_NDEBUG_INLINE SRBindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sid_(arena) {}

inline void SRBindingSID::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, s_flag_),
           0,
           offsetof(Impl_, i_flag_) -
               offsetof(Impl_, s_flag_) +
               sizeof(Impl_::i_flag_));
}
SRBindingSID::~SRBindingSID() {
  // @@protoc_insertion_point(destructor:apipb.SRBindingSID)
  SharedDtor(*this);
}
inline void SRBindingSID::SharedDtor(MessageLite& self) {
  SRBindingSID& this_ = static_cast<SRBindingSID&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sid_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRBindingSID_class_data_ =
        SRBindingSID::InternalGenerateClassData_(SRBindingSID_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRBindingSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRBindingSID_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRBindingSID_class_data_.tc_table);
  return SRBindingSID_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRBindingSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRBindingSID_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRBindingSID_globals_));
  return SRBindingSID_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRBindingSID::ParseTableT_
    SRBindingSID::_table_ =
        SRBindingSID::InternalGenerateParseTable_(SRBindingSID_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRBindingSID::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRBindingSID)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.sid_.ClearNonDefaultToEmpty();
  }
  ::memset(&_impl_.s_flag_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.i_flag_) -
      reinterpret_cast<char*>(&_impl_.s_flag_)) + sizeof(_impl_.i_flag_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool s_flag = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_s_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_s_flag(), target);
    }
  }

  // bool i_flag = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_i_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_i_flag(), target);
    }
  }

  // bytes sid = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_sid().empty()) {
      const ::std::string& _s = this_._internal_sid();
      target = stream->WriteBytesMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRBindingSID)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // bytes sid = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_sid().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_sid());
      }
    }
    // bool s_flag = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_s_flag() != 0) {
        total_size += 2;
      }
    }
    // bool i_flag = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_i_flag() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_sid().empty()) {
        _this->_internal_set_sid(from._internal_sid());
      } else {
        if (_this->_impl_.sid_.IsDefault()) {
          _this->_internal_set_sid("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_s_flag() != 0) {
        _this->_impl_.s_flag_ = from._impl_.s_flag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_i_flag() != 0) {
        _this->_impl_.i_flag_ = from._impl_.i_flag_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRBindingSID::InternalSwap(SRBindingSID* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sid_, &other->_impl_.sid_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.i_flag_)
      + sizeof(SRBindingSID::_impl_.i_flag_)
      - PROTOBUF_FIELD_OFFSET(SRBindingSID, _impl_.s_flag_)>(
          reinterpret_cast<char*>(&_impl_.s_flag_),
          reinterpret_cast<char*>(&other->_impl_.s_flag_));
}

::google::protobuf::Metadata SRBindingSID::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRv6EndPointBehavior::SRv6EndPointBehavior(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6EndPointBehavior_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6EndPointBehavior)
}
SRv6EndPointBehavior::SRv6EndPointBehavior(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SRv6EndPointBehavior& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6EndPointBehavior_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SRv6EndPointBehavior::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SRv6EndPointBehavior::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, behavior_),
           0,
           offsetof(Impl_, arg_len_) -
               offsetof(Impl_, behavior_) +
               sizeof(Impl_::arg_len_));
}
SRv6EndPointBehavior::~SRv6EndPointBehavior() {
  // @@protoc_insertion_point(destructor:apipb.SRv6EndPointBehavior)
  SharedDtor(*this);
}
inline void SRv6EndPointBehavior::SharedDtor(MessageLite& self) {
  SRv6EndPointBehavior& this_ = static_cast<SRv6EndPointBehavior&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6EndPointBehavior_class_data_ =
        SRv6EndPointBehavior::InternalGenerateClassData_(SRv6EndPointBehavior_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6EndPointBehavior::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6EndPointBehavior_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6EndPointBehavior_class_data_.tc_table);
  return SRv6EndPointBehavior_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6EndPointBehavior::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6EndPointBehavior_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6EndPointBehavior_globals_));
  return SRv6EndPointBehavior_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6EndPointBehavior::ParseTableT_
    SRv6EndPointBehavior::_table_ =
        SRv6EndPointBehavior::InternalGenerateParseTable_(SRv6EndPointBehavior_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6EndPointBehavior::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6EndPointBehavior)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    ::memset(&_impl_.behavior_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.arg_len_) -
        reinterpret_cast<char*>(&_impl_.behavior_)) + sizeof(_impl_.arg_len_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.SRv6Behavior behavior = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_behavior() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          1, this_._internal_behavior(), target);
    }
  }

  // uint32 block_len = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_block_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_block_len(), target);
    }
  }

  // uint32 node_len = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_node_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_node_len(), target);
    }
  }

  // uint32 func_len = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_func_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_func_len(), target);
    }
  }

  // uint32 arg_len = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_arg_len() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          5, this_._internal_arg_len(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6EndPointBehavior)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // .apipb.SRv6Behavior behavior = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_behavior() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_behavior());
      }
    }
    // uint32 block_len = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_block_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_block_len());
      }
    }
    // uint32 node_len = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_node_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_node_len());
      }
    }
    // uint32 func_len = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_func_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_func_len());
      }
    }
    // uint32 arg_len = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_arg_len() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_arg_len());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_behavior() != 0) {
        _this->_impl_.behavior_ = from._impl_.behavior_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_block_len() != 0) {
        _this->_impl_.block_len_ = from._impl_.block_len_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_node_len() != 0) {
        _this->_impl_.node_len_ = from._impl_.node_len_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_func_len() != 0) {
        _this->_impl_.func_len_ = from._impl_.func_len_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_arg_len() != 0) {
        _this->_impl_.arg_len_ = from._impl_.arg_len_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRv6EndPointBehavior::InternalSwap(SRv6EndPointBehavior* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.arg_len_)
      + sizeof(SRv6EndPointBehavior::_impl_.arg_len_)
      - PROTOBUF_FIELD_OFFSET(SRv6EndPointBehavior, _impl_.behavior_)>(
          reinterpret_cast<char*>(&_impl_.behavior_),
          reinterpret_cast<char*>(&other->_impl_.behavior_));
}

::google::protobuf::Metadata SRv6EndPointBehavior::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRv6BindingSID::SRv6BindingSID(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6BindingSID_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6BindingSID)
}
PROTOBUF_NDEBUG_INLINE SRv6BindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRv6BindingSID& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sid_(arena, from.sid_) {}

SRv6BindingSID::SRv6BindingSID(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRv6BindingSID& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6BindingSID_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRv6BindingSID* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.endpoint_behavior_structure_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.endpoint_behavior_structure_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, s_flag_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, s_flag_),
           offsetof(Impl_, b_flag_) -
               offsetof(Impl_, s_flag_) +
               sizeof(Impl_::b_flag_));

  // @@protoc_insertion_point(copy_constructor:apipb.SRv6BindingSID)
}
PROTOBUF_NDEBUG_INLINE SRv6BindingSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sid_(arena) {}

inline void SRv6BindingSID::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, endpoint_behavior_structure_),
           0,
           offsetof(Impl_, b_flag_) -
               offsetof(Impl_, endpoint_behavior_structure_) +
               sizeof(Impl_::b_flag_));
}
SRv6BindingSID::~SRv6BindingSID() {
  // @@protoc_insertion_point(destructor:apipb.SRv6BindingSID)
  SharedDtor(*this);
}
inline void SRv6BindingSID::SharedDtor(MessageLite& self) {
  SRv6BindingSID& this_ = static_cast<SRv6BindingSID&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sid_.Destroy();
  delete this_._impl_.endpoint_behavior_structure_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6BindingSID_class_data_ =
        SRv6BindingSID::InternalGenerateClassData_(SRv6BindingSID_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6BindingSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6BindingSID_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6BindingSID_class_data_.tc_table);
  return SRv6BindingSID_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6BindingSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6BindingSID_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6BindingSID_globals_));
  return SRv6BindingSID_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6BindingSID::ParseTableT_
    SRv6BindingSID::_table_ =
        SRv6BindingSID::InternalGenerateParseTable_(SRv6BindingSID_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6BindingSID::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6BindingSID)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.sid_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.endpoint_behavior_structure_ != nullptr);
      _impl_.endpoint_behavior_structure_->Clear();
    }
  }
  ::memset(&_impl_.s_flag_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.b_flag_) -
      reinterpret_cast<char*>(&_impl_.s_flag_)) + sizeof(_impl_.b_flag_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool s_flag = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_s_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_s_flag(), target);
    }
  }

  // bool i_flag = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_i_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_i_flag(), target);
    }
  }

  // bool b_flag = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_b_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_b_flag(), target);
    }
  }

  // bytes sid = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_sid().empty()) {
      const ::std::string& _s = this_._internal_sid();
      target = stream->WriteBytesMaybeAliased(4, _s, target);
    }
  }

  // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 5;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.endpoint_behavior_structure_, this_._impl_.endpoint_behavior_structure_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6BindingSID)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // bytes sid = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_sid().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_sid());
      }
    }
    // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 5;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.endpoint_behavior_structure_);
    }
    // bool s_flag = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_s_flag() != 0) {
        total_size += 2;
      }
    }
    // bool i_flag = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_i_flag() != 0) {
        total_size += 2;
      }
    }
    // bool b_flag = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_b_flag() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_sid().empty()) {
        _this->_internal_set_sid(from._internal_sid());
      } else {
        if (_this->_impl_.sid_.IsDefault()) {
          _this->_internal_set_sid("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.endpoint_behavior_structure_ != nullptr);
      if (_this->_impl_.endpoint_behavior_structure_ == nullptr) {
        _this->_impl_.endpoint_behavior_structure_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.endpoint_behavior_structure_);
      } else {
        _this->_impl_.endpoint_behavior_structure_->MergeFrom(*from._impl_.endpoint_behavior_structure_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_s_flag() != 0) {
        _this->_impl_.s_flag_ = from._impl_.s_flag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_i_flag() != 0) {
        _this->_impl_.i_flag_ = from._impl_.i_flag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_b_flag() != 0) {
        _this->_impl_.b_flag_ = from._impl_.b_flag_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRv6BindingSID::InternalSwap(SRv6BindingSID* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sid_, &other->_impl_.sid_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.b_flag_)
      + sizeof(SRv6BindingSID::_impl_.b_flag_)
      - PROTOBUF_FIELD_OFFSET(SRv6BindingSID, _impl_.endpoint_behavior_structure_)>(
          reinterpret_cast<char*>(&_impl_.endpoint_behavior_structure_),
          reinterpret_cast<char*>(&other->_impl_.endpoint_behavior_structure_));
}

::google::protobuf::Metadata SRv6BindingSID::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVSRENLP::TunnelEncapSubTLVSRENLP(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRENLP_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVSRENLP)
}
TunnelEncapSubTLVSRENLP::TunnelEncapSubTLVSRENLP(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TunnelEncapSubTLVSRENLP& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRENLP_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRENLP::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TunnelEncapSubTLVSRENLP::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, enlp_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::enlp_));
}
TunnelEncapSubTLVSRENLP::~TunnelEncapSubTLVSRENLP() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVSRENLP)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVSRENLP::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVSRENLP& this_ = static_cast<TunnelEncapSubTLVSRENLP&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVSRENLP_class_data_ =
        TunnelEncapSubTLVSRENLP::InternalGenerateClassData_(TunnelEncapSubTLVSRENLP_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRENLP::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRENLP_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVSRENLP_class_data_.tc_table);
  return TunnelEncapSubTLVSRENLP_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRENLP::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRENLP_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVSRENLP_globals_));
  return TunnelEncapSubTLVSRENLP_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVSRENLP::ParseTableT_
    TunnelEncapSubTLVSRENLP::_table_ =
        TunnelEncapSubTLVSRENLP::InternalGenerateParseTable_(TunnelEncapSubTLVSRENLP_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVSRENLP::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVSRENLP)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.flags_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.enlp_) -
        reinterpret_cast<char*>(&_impl_.flags_)) + sizeof(_impl_.enlp_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_flags(), target);
    }
  }

  // .apipb.ENLPType enlp = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_enlp() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_enlp(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVSRENLP)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
    // .apipb.ENLPType enlp = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_enlp() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_enlp());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_enlp() != 0) {
        _this->_impl_.enlp_ = from._impl_.enlp_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void TunnelEncapSubTLVSRENLP::InternalSwap(TunnelEncapSubTLVSRENLP* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_.enlp_)
      + sizeof(TunnelEncapSubTLVSRENLP::_impl_.enlp_)
      - PROTOBUF_FIELD_OFFSET(TunnelEncapSubTLVSRENLP, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata TunnelEncapSubTLVSRENLP::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRWeight::SRWeight(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRWeight_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRWeight)
}
SRWeight::SRWeight(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SRWeight& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRWeight_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SRWeight::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SRWeight::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, weight_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::weight_));
}
SRWeight::~SRWeight() {
  // @@protoc_insertion_point(destructor:apipb.SRWeight)
  SharedDtor(*this);
}
inline void SRWeight::SharedDtor(MessageLite& self) {
  SRWeight& this_ = static_cast<SRWeight&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRWeight_class_data_ =
        SRWeight::InternalGenerateClassData_(SRWeight_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRWeight::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRWeight_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRWeight_class_data_.tc_table);
  return SRWeight_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRWeight::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRWeight_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRWeight_globals_));
  return SRWeight_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRWeight::ParseTableT_
    SRWeight::_table_ =
        SRWeight::InternalGenerateParseTable_(SRWeight_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRWeight::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRWeight)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.flags_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.weight_) -
        reinterpret_cast<char*>(&_impl_.flags_)) + sizeof(_impl_.weight_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_flags(), target);
    }
  }

  // uint32 weight = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_weight() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_weight(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRWeight)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
    // uint32 weight = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_weight() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_weight());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_weight() != 0) {
        _this->_impl_.weight_ = from._impl_.weight_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRWeight::InternalSwap(SRWeight* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRWeight, _impl_.weight_)
      + sizeof(SRWeight::_impl_.weight_)
      - PROTOBUF_FIELD_OFFSET(SRWeight, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata SRWeight::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SegmentFlags::SegmentFlags(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SegmentFlags_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SegmentFlags)
}
SegmentFlags::SegmentFlags(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SegmentFlags& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SegmentFlags_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SegmentFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SegmentFlags::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, v_flag_),
           0,
           offsetof(Impl_, b_flag_) -
               offsetof(Impl_, v_flag_) +
               sizeof(Impl_::b_flag_));
}
SegmentFlags::~SegmentFlags() {
  // @@protoc_insertion_point(destructor:apipb.SegmentFlags)
  SharedDtor(*this);
}
inline void SegmentFlags::SharedDtor(MessageLite& self) {
  SegmentFlags& this_ = static_cast<SegmentFlags&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SegmentFlags_class_data_ =
        SegmentFlags::InternalGenerateClassData_(SegmentFlags_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SegmentFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SegmentFlags_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SegmentFlags_class_data_.tc_table);
  return SegmentFlags_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SegmentFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SegmentFlags_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SegmentFlags_globals_));
  return SegmentFlags_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SegmentFlags::ParseTableT_
    SegmentFlags::_table_ =
        SegmentFlags::InternalGenerateParseTable_(SegmentFlags_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SegmentFlags::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SegmentFlags)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.v_flag_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.b_flag_) -
      reinterpret_cast<char*>(&_impl_.v_flag_)) + sizeof(_impl_.b_flag_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool v_flag = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_v_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_v_flag(), target);
    }
  }

  // bool a_flag = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_a_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_a_flag(), target);
    }
  }

  // bool s_flag = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_s_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_s_flag(), target);
    }
  }

  // bool b_flag = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_b_flag() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_b_flag(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SegmentFlags)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bool v_flag = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_v_flag() != 0) {
        total_size += 2;
      }
    }
    // bool a_flag = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_a_flag() != 0) {
        total_size += 2;
      }
    }
    // bool s_flag = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_s_flag() != 0) {
        total_size += 2;
      }
    }
    // bool b_flag = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_b_flag() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_v_flag() != 0) {
        _this->_impl_.v_flag_ = from._impl_.v_flag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_a_flag() != 0) {
        _this->_impl_.a_flag_ = from._impl_.a_flag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_s_flag() != 0) {
        _this->_impl_.s_flag_ = from._impl_.s_flag_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_b_flag() != 0) {
        _this->_impl_.b_flag_ = from._impl_.b_flag_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SegmentFlags::InternalSwap(SegmentFlags* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.b_flag_)
      + sizeof(SegmentFlags::_impl_.b_flag_)
      - PROTOBUF_FIELD_OFFSET(SegmentFlags, _impl_.v_flag_)>(
          reinterpret_cast<char*>(&_impl_.v_flag_),
          reinterpret_cast<char*>(&other->_impl_.v_flag_));
}

::google::protobuf::Metadata SegmentFlags::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SegmentTypeA::SegmentTypeA(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SegmentTypeA_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SegmentTypeA)
}
PROTOBUF_NDEBUG_INLINE SegmentTypeA::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SegmentTypeA& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

SegmentTypeA::SegmentTypeA(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SegmentTypeA& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SegmentTypeA_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SegmentTypeA* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.flags_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_)
                : nullptr;
  _impl_.label_ = from._impl_.label_;

  // @@protoc_insertion_point(copy_constructor:apipb.SegmentTypeA)
}
PROTOBUF_NDEBUG_INLINE SegmentTypeA::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SegmentTypeA::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, label_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::label_));
}
SegmentTypeA::~SegmentTypeA() {
  // @@protoc_insertion_point(destructor:apipb.SegmentTypeA)
  SharedDtor(*this);
}
inline void SegmentTypeA::SharedDtor(MessageLite& self) {
  SegmentTypeA& this_ = static_cast<SegmentTypeA&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.flags_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SegmentTypeA_class_data_ =
        SegmentTypeA::InternalGenerateClassData_(SegmentTypeA_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SegmentTypeA::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SegmentTypeA_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SegmentTypeA_class_data_.tc_table);
  return SegmentTypeA_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SegmentTypeA::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SegmentTypeA_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SegmentTypeA_globals_));
  return SegmentTypeA_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SegmentTypeA::ParseTableT_
    SegmentTypeA::_table_ =
        SegmentTypeA::InternalGenerateParseTable_(SegmentTypeA_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SegmentTypeA::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SegmentTypeA)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.flags_ != nullptr);
    _impl_.flags_->Clear();
  }
  _impl_.label_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.SegmentFlags flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.flags_, this_._impl_.flags_->GetCachedSize(), target,
        stream);
  }

  // uint32 label = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_label() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_label(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SegmentTypeA)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // .apipb.SegmentFlags flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.flags_);
    }
    // uint32 label = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_label() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_label());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.flags_ != nullptr);
      if (_this->_impl_.flags_ == nullptr) {
        _this->_impl_.flags_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_);
      } else {
        _this->_impl_.flags_->MergeFrom(*from._impl_.flags_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_label() != 0) {
        _this->_impl_.label_ = from._impl_.label_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SegmentTypeA::InternalSwap(SegmentTypeA* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_.label_)
      + sizeof(SegmentTypeA::_impl_.label_)
      - PROTOBUF_FIELD_OFFSET(SegmentTypeA, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata SegmentTypeA::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SegmentTypeB::SegmentTypeB(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SegmentTypeB_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SegmentTypeB)
}
PROTOBUF_NDEBUG_INLINE SegmentTypeB::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SegmentTypeB& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sid_(arena, from.sid_) {}

SegmentTypeB::SegmentTypeB(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SegmentTypeB& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SegmentTypeB_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SegmentTypeB* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.flags_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_)
                : nullptr;
  _impl_.endpoint_behavior_structure_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.endpoint_behavior_structure_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.SegmentTypeB)
}
PROTOBUF_NDEBUG_INLINE SegmentTypeB::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sid_(arena) {}

inline void SegmentTypeB::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, endpoint_behavior_structure_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::endpoint_behavior_structure_));
}
SegmentTypeB::~SegmentTypeB() {
  // @@protoc_insertion_point(destructor:apipb.SegmentTypeB)
  SharedDtor(*this);
}
inline void SegmentTypeB::SharedDtor(MessageLite& self) {
  SegmentTypeB& this_ = static_cast<SegmentTypeB&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sid_.Destroy();
  delete this_._impl_.flags_;
  delete this_._impl_.endpoint_behavior_structure_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SegmentTypeB_class_data_ =
        SegmentTypeB::InternalGenerateClassData_(SegmentTypeB_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SegmentTypeB::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SegmentTypeB_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SegmentTypeB_class_data_.tc_table);
  return SegmentTypeB_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SegmentTypeB::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SegmentTypeB_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SegmentTypeB_globals_));
  return SegmentTypeB_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SegmentTypeB::ParseTableT_
    SegmentTypeB::_table_ =
        SegmentTypeB::InternalGenerateParseTable_(SegmentTypeB_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SegmentTypeB::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SegmentTypeB)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.sid_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.flags_ != nullptr);
      _impl_.flags_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.endpoint_behavior_structure_ != nullptr);
      _impl_.endpoint_behavior_structure_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.SegmentFlags flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.flags_, this_._impl_.flags_->GetCachedSize(), target,
        stream);
  }

  // bytes sid = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_sid().empty()) {
      const ::std::string& _s = this_._internal_sid();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.endpoint_behavior_structure_, this_._impl_.endpoint_behavior_structure_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SegmentTypeB)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // bytes sid = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_sid().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_sid());
      }
    }
    // .apipb.SegmentFlags flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.flags_);
    }
    // .apipb.SRv6EndPointBehavior endpoint_behavior_structure = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.endpoint_behavior_structure_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_sid().empty()) {
        _this->_internal_set_sid(from._internal_sid());
      } else {
        if (_this->_impl_.sid_.IsDefault()) {
          _this->_internal_set_sid("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.flags_ != nullptr);
      if (_this->_impl_.flags_ == nullptr) {
        _this->_impl_.flags_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_);
      } else {
        _this->_impl_.flags_->MergeFrom(*from._impl_.flags_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.endpoint_behavior_structure_ != nullptr);
      if (_this->_impl_.endpoint_behavior_structure_ == nullptr) {
        _this->_impl_.endpoint_behavior_structure_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.endpoint_behavior_structure_);
      } else {
        _this->_impl_.endpoint_behavior_structure_->MergeFrom(*from._impl_.endpoint_behavior_structure_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SegmentTypeB::InternalSwap(SegmentTypeB* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sid_, &other->_impl_.sid_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.endpoint_behavior_structure_)
      + sizeof(SegmentTypeB::_impl_.endpoint_behavior_structure_)
      - PROTOBUF_FIELD_OFFSET(SegmentTypeB, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata SegmentTypeB::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void TunnelEncapSubTLVSRSegmentList::clear_segments() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.segments_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
TunnelEncapSubTLVSRSegmentList::TunnelEncapSubTLVSRSegmentList(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRSegmentList_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVSRSegmentList)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRSegmentList::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapSubTLVSRSegmentList& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        segments_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::TunnelEncapSubTLVSRSegmentList,
              PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRSegmentList, _impl_.segments_)>()
          , from.segments_
        }
     {}

TunnelEncapSubTLVSRSegmentList::TunnelEncapSubTLVSRSegmentList(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapSubTLVSRSegmentList& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVSRSegmentList_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapSubTLVSRSegmentList* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.weight_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapSubTLVSRSegmentList)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVSRSegmentList::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        segments_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::TunnelEncapSubTLVSRSegmentList,
            PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapSubTLVSRSegmentList, _impl_.segments_)>()
         }
     {}

inline void TunnelEncapSubTLVSRSegmentList::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.weight_ = {};
}
TunnelEncapSubTLVSRSegmentList::~TunnelEncapSubTLVSRSegmentList() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVSRSegmentList)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVSRSegmentList::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVSRSegmentList& this_ = static_cast<TunnelEncapSubTLVSRSegmentList&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.weight_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVSRSegmentList_class_data_ =
        TunnelEncapSubTLVSRSegmentList::InternalGenerateClassData_(TunnelEncapSubTLVSRSegmentList_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRSegmentList::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRSegmentList_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVSRSegmentList_class_data_.tc_table);
  return TunnelEncapSubTLVSRSegmentList_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVSRSegmentList::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVSRSegmentList_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVSRSegmentList_globals_));
  return TunnelEncapSubTLVSRSegmentList_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVSRSegmentList::ParseTableT_
    TunnelEncapSubTLVSRSegmentList::_table_ =
        TunnelEncapSubTLVSRSegmentList::InternalGenerateParseTable_(TunnelEncapSubTLVSRSegmentList_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVSRSegmentList::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVSRSegmentList)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.segments_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.weight_ != nullptr);
      _impl_.weight_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.SRWeight weight = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.weight_, this_._impl_.weight_->GetCachedSize(), target,
        stream);
  }

  // repeated .google.protobuf.Any segments = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_segments_size());
         i < n; i++) {
      const auto& repfield = this_._internal_segments().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVSRSegmentList)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .google.protobuf.Any segments = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_segments_size();
      for (const auto& msg : this_._internal_segments()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .apipb.SRWeight weight = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.weight_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_segments()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_segments());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.weight_ != nullptr);
      if (_this->_impl_.weight_ == nullptr) {
        _this->_impl_.weight_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_);
      } else {
        _this->_impl_.weight_->MergeFrom(*from._impl_.weight_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVSRSegmentList::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVEgressEndpoint::TunnelEncapSubTLVEgressEndpoint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVEgressEndpoint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVEgressEndpoint)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVEgressEndpoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapSubTLVEgressEndpoint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

TunnelEncapSubTLVEgressEndpoint::TunnelEncapSubTLVEgressEndpoint(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapSubTLVEgressEndpoint& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVEgressEndpoint_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapSubTLVEgressEndpoint* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapSubTLVEgressEndpoint)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVEgressEndpoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void TunnelEncapSubTLVEgressEndpoint::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
TunnelEncapSubTLVEgressEndpoint::~TunnelEncapSubTLVEgressEndpoint() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVEgressEndpoint)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVEgressEndpoint::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVEgressEndpoint& this_ = static_cast<TunnelEncapSubTLVEgressEndpoint&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVEgressEndpoint_class_data_ =
        TunnelEncapSubTLVEgressEndpoint::InternalGenerateClassData_(TunnelEncapSubTLVEgressEndpoint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVEgressEndpoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVEgressEndpoint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVEgressEndpoint_class_data_.tc_table);
  return TunnelEncapSubTLVEgressEndpoint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVEgressEndpoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVEgressEndpoint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVEgressEndpoint_globals_));
  return TunnelEncapSubTLVEgressEndpoint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVEgressEndpoint::ParseTableT_
    TunnelEncapSubTLVEgressEndpoint::_table_ =
        TunnelEncapSubTLVEgressEndpoint::InternalGenerateParseTable_(TunnelEncapSubTLVEgressEndpoint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVEgressEndpoint::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVEgressEndpoint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string address = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.TunnelEncapSubTLVEgressEndpoint.address");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVEgressEndpoint)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // string address = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!from._internal_address().empty()) {
      _this->_internal_set_address(from._internal_address());
    } else {
      if (_this->_impl_.address_.IsDefault()) {
        _this->_internal_set_address("");
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVEgressEndpoint::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVUDPDestPort::TunnelEncapSubTLVUDPDestPort(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVUDPDestPort_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVUDPDestPort)
}
TunnelEncapSubTLVUDPDestPort::TunnelEncapSubTLVUDPDestPort(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TunnelEncapSubTLVUDPDestPort& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVUDPDestPort_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVUDPDestPort::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVUDPDestPort_class_data_ =
        TunnelEncapSubTLVUDPDestPort::InternalGenerateClassData_(TunnelEncapSubTLVUDPDestPort_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVUDPDestPort::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVUDPDestPort_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVUDPDestPort_class_data_.tc_table);
  return TunnelEncapSubTLVUDPDestPort_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVUDPDestPort::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVUDPDestPort_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVUDPDestPort_globals_));
  return TunnelEncapSubTLVUDPDestPort_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVUDPDestPort::ParseTableT_
    TunnelEncapSubTLVUDPDestPort::_table_ =
        TunnelEncapSubTLVUDPDestPort::InternalGenerateParseTable_(TunnelEncapSubTLVUDPDestPort_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVUDPDestPort::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVUDPDestPort)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.port_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 port = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_port() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_port(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVUDPDestPort)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint32 port = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_port() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_port());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_port() != 0) {
      _this->_impl_.port_ = from._impl_.port_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVUDPDestPort::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapSubTLVUnknown::TunnelEncapSubTLVUnknown(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVUnknown_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapSubTLVUnknown)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVUnknown::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapSubTLVUnknown& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        value_(arena, from.value_) {}

TunnelEncapSubTLVUnknown::TunnelEncapSubTLVUnknown(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapSubTLVUnknown& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapSubTLVUnknown_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapSubTLVUnknown* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapSubTLVUnknown)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapSubTLVUnknown::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

inline void TunnelEncapSubTLVUnknown::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.type_ = {};
}
TunnelEncapSubTLVUnknown::~TunnelEncapSubTLVUnknown() {
  // @@protoc_insertion_point(destructor:apipb.TunnelEncapSubTLVUnknown)
  SharedDtor(*this);
}
inline void TunnelEncapSubTLVUnknown::SharedDtor(MessageLite& self) {
  TunnelEncapSubTLVUnknown& this_ = static_cast<TunnelEncapSubTLVUnknown&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapSubTLVUnknown_class_data_ =
        TunnelEncapSubTLVUnknown::InternalGenerateClassData_(TunnelEncapSubTLVUnknown_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVUnknown::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVUnknown_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapSubTLVUnknown_class_data_.tc_table);
  return TunnelEncapSubTLVUnknown_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapSubTLVUnknown::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapSubTLVUnknown_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapSubTLVUnknown_globals_));
  return TunnelEncapSubTLVUnknown_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapSubTLVUnknown::ParseTableT_
    TunnelEncapSubTLVUnknown::_table_ =
        TunnelEncapSubTLVUnknown::InternalGenerateParseTable_(TunnelEncapSubTLVUnknown_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapSubTLVUnknown::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapSubTLVUnknown)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // bytes value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapSubTLVUnknown)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapSubTLVUnknown::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void TunnelEncapTLV::clear_tlvs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tlvs_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
TunnelEncapTLV::TunnelEncapTLV(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapTLV_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapTLV)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapTLV& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::TunnelEncapTLV,
              PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapTLV, _impl_.tlvs_)>()
          , from.tlvs_
        }
     {}

TunnelEncapTLV::TunnelEncapTLV(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapTLV& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapTLV_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapTLV* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapTLV)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::TunnelEncapTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapTLV, _impl_.tlvs_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapTLV_class_data_ =
        TunnelEncapTLV::InternalGenerateClassData_(TunnelEncapTLV_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapTLV_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapTLV_class_data_.tc_table);
  return TunnelEncapTLV_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapTLV_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapTLV_globals_));
  return TunnelEncapTLV_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapTLV::ParseTableT_
    TunnelEncapTLV::_table_ =
        TunnelEncapTLV::InternalGenerateParseTable_(TunnelEncapTLV_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapTLV::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapTLV)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.tlvs_.Clear();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // repeated .google.protobuf.Any tlvs = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_tlvs_size());
         i < n; i++) {
      const auto& repfield = this_._internal_tlvs().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapTLV)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .google.protobuf.Any tlvs = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_tlvs_size();
      for (const auto& msg : this_._internal_tlvs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_tlvs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_tlvs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata TunnelEncapTLV::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

TunnelEncapAttribute::TunnelEncapAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.TunnelEncapAttribute)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::TunnelEncapAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::TunnelEncapAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapAttribute, _impl_.tlvs_)>()
          , from.tlvs_
        }
     {}

TunnelEncapAttribute::TunnelEncapAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TunnelEncapAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TunnelEncapAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TunnelEncapAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.TunnelEncapAttribute)
}
PROTOBUF_NDEBUG_INLINE TunnelEncapAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::TunnelEncapAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::TunnelEncapAttribute, _impl_.tlvs_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TunnelEncapAttribute_class_data_ =
        TunnelEncapAttribute::InternalGenerateClassData_(TunnelEncapAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TunnelEncapAttribute_class_data_.tc_table);
  return TunnelEncapAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TunnelEncapAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TunnelEncapAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&TunnelEncapAttribute_globals_));
  return TunnelEncapAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const TunnelEncapAttribute::ParseTableT_
    TunnelEncapAttribute::_table_ =
        TunnelEncapAttribute::InternalGenerateParseTable_(TunnelEncapAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void TunnelEncapAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.TunnelEncapAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.tlvs_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .apipb.TunnelEncapTLV tlvs = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_tlvs_size());
         i < n; i++) {
      const auto& repfield = this_._internal_tlvs().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.TunnelEncapAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .apipb.TunnelEncapTLV tlvs = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_tlvs_size();
      for (const auto& msg : this_._internal_tlvs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata TunnelEncapAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

IPv6AddressSpecificExtended::IPv6AddressSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IPv6AddressSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.IPv6AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE IPv6AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::IPv6AddressSpecificExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

IPv6AddressSpecificExtended::IPv6AddressSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const IPv6AddressSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IPv6AddressSpecificExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  IPv6AddressSpecificExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_transitive_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, is_transitive_),
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, is_transitive_) +
               sizeof(Impl_::local_admin_));

  // @@protoc_insertion_point(copy_constructor:apipb.IPv6AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE IPv6AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void IPv6AddressSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_transitive_),
           0,
           offsetof(Impl_, local_admin_) -
               offsetof(Impl_, is_transitive_) +
               sizeof(Impl_::local_admin_));
}
IPv6AddressSpecificExtended::~IPv6AddressSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.IPv6AddressSpecificExtended)
  SharedDtor(*this);
}
inline void IPv6AddressSpecificExtended::SharedDtor(MessageLite& self) {
  IPv6AddressSpecificExtended& this_ = static_cast<IPv6AddressSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull IPv6AddressSpecificExtended_class_data_ =
        IPv6AddressSpecificExtended::InternalGenerateClassData_(IPv6AddressSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IPv6AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IPv6AddressSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(IPv6AddressSpecificExtended_class_data_.tc_table);
  return IPv6AddressSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IPv6AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IPv6AddressSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&IPv6AddressSpecificExtended_globals_));
  return IPv6AddressSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const IPv6AddressSpecificExtended::ParseTableT_
    IPv6AddressSpecificExtended::_table_ =
        IPv6AddressSpecificExtended::InternalGenerateParseTable_(IPv6AddressSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void IPv6AddressSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.IPv6AddressSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&_impl_.is_transitive_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_admin_) -
        reinterpret_cast<char*>(&_impl_.is_transitive_)) + sizeof(_impl_.local_admin_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool is_transitive = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_is_transitive() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_is_transitive(), target);
    }
  }

  // uint32 sub_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_sub_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_sub_type(), target);
    }
  }

  // string address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.IPv6AddressSpecificExtended.address");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // uint32 local_admin = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.IPv6AddressSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // string address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // bool is_transitive = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_is_transitive() != 0) {
        total_size += 2;
      }
    }
    // uint32 sub_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_sub_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sub_type());
      }
    }
    // uint32 local_admin = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_is_transitive() != 0) {
        _this->_impl_.is_transitive_ = from._impl_.is_transitive_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_sub_type() != 0) {
        _this->_impl_.sub_type_ = from._impl_.sub_type_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void IPv6AddressSpecificExtended::InternalSwap(IPv6AddressSpecificExtended* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.address_, &other->_impl_.address_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.local_admin_)
      + sizeof(IPv6AddressSpecificExtended::_impl_.local_admin_)
      - PROTOBUF_FIELD_OFFSET(IPv6AddressSpecificExtended, _impl_.is_transitive_)>(
          reinterpret_cast<char*>(&_impl_.is_transitive_),
          reinterpret_cast<char*>(&other->_impl_.is_transitive_));
}

::google::protobuf::Metadata IPv6AddressSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

RedirectIPv6AddressSpecificExtended::RedirectIPv6AddressSpecificExtended(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectIPv6AddressSpecificExtended_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.RedirectIPv6AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE RedirectIPv6AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::RedirectIPv6AddressSpecificExtended& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        address_(arena, from.address_) {}

RedirectIPv6AddressSpecificExtended::RedirectIPv6AddressSpecificExtended(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RedirectIPv6AddressSpecificExtended& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RedirectIPv6AddressSpecificExtended_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RedirectIPv6AddressSpecificExtended* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.local_admin_ = from._impl_.local_admin_;

  // @@protoc_insertion_point(copy_constructor:apipb.RedirectIPv6AddressSpecificExtended)
}
PROTOBUF_NDEBUG_INLINE RedirectIPv6AddressSpecificExtended::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        address_(arena) {}

inline void RedirectIPv6AddressSpecificExtended::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.local_admin_ = {};
}
RedirectIPv6AddressSpecificExtended::~RedirectIPv6AddressSpecificExtended() {
  // @@protoc_insertion_point(destructor:apipb.RedirectIPv6AddressSpecificExtended)
  SharedDtor(*this);
}
inline void RedirectIPv6AddressSpecificExtended::SharedDtor(MessageLite& self) {
  RedirectIPv6AddressSpecificExtended& this_ = static_cast<RedirectIPv6AddressSpecificExtended&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.address_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RedirectIPv6AddressSpecificExtended_class_data_ =
        RedirectIPv6AddressSpecificExtended::InternalGenerateClassData_(RedirectIPv6AddressSpecificExtended_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectIPv6AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectIPv6AddressSpecificExtended_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RedirectIPv6AddressSpecificExtended_class_data_.tc_table);
  return RedirectIPv6AddressSpecificExtended_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RedirectIPv6AddressSpecificExtended::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RedirectIPv6AddressSpecificExtended_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&RedirectIPv6AddressSpecificExtended_globals_));
  return RedirectIPv6AddressSpecificExtended_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RedirectIPv6AddressSpecificExtended::ParseTableT_
    RedirectIPv6AddressSpecificExtended::_table_ =
        RedirectIPv6AddressSpecificExtended::InternalGenerateParseTable_(RedirectIPv6AddressSpecificExtended_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RedirectIPv6AddressSpecificExtended::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.RedirectIPv6AddressSpecificExtended)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.address_.ClearNonDefaultToEmpty();
  }
  _impl_.local_admin_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string address = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_address().empty()) {
      const ::std::string& _s = this_._internal_address();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.RedirectIPv6AddressSpecificExtended.address");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // uint32 local_admin = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_local_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_local_admin(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.RedirectIPv6AddressSpecificExtended)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // string address = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_address().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_address());
      }
    }
    // uint32 local_admin = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_local_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_admin());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_address().empty()) {
        _this->_internal_set_address(from._internal_address());
      } else {
        if (_this->_impl_.address_.IsDefault()) {
          _this->_internal_set_address("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_local_admin() != 0) {
        _this->_impl_.local_admin_ = from._impl_.local_admin_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata RedirectIPv6AddressSpecificExtended::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void IP6ExtendedCommunitiesAttribute::clear_communities() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.communities_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
IP6ExtendedCommunitiesAttribute::IP6ExtendedCommunitiesAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IP6ExtendedCommunitiesAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.IP6ExtendedCommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE IP6ExtendedCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::IP6ExtendedCommunitiesAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        communities_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::IP6ExtendedCommunitiesAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::IP6ExtendedCommunitiesAttribute, _impl_.communities_)>()
          , from.communities_
        }
     {}

IP6ExtendedCommunitiesAttribute::IP6ExtendedCommunitiesAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const IP6ExtendedCommunitiesAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IP6ExtendedCommunitiesAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  IP6ExtendedCommunitiesAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.IP6ExtendedCommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE IP6ExtendedCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::IP6ExtendedCommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::IP6ExtendedCommunitiesAttribute, _impl_.communities_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull IP6ExtendedCommunitiesAttribute_class_data_ =
        IP6ExtendedCommunitiesAttribute::InternalGenerateClassData_(IP6ExtendedCommunitiesAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IP6ExtendedCommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IP6ExtendedCommunitiesAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(IP6ExtendedCommunitiesAttribute_class_data_.tc_table);
  return IP6ExtendedCommunitiesAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IP6ExtendedCommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IP6ExtendedCommunitiesAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&IP6ExtendedCommunitiesAttribute_globals_));
  return IP6ExtendedCommunitiesAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const IP6ExtendedCommunitiesAttribute::ParseTableT_
    IP6ExtendedCommunitiesAttribute::_table_ =
        IP6ExtendedCommunitiesAttribute::InternalGenerateParseTable_(IP6ExtendedCommunitiesAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void IP6ExtendedCommunitiesAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.IP6ExtendedCommunitiesAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.communities_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.IP6ExtendedCommunitiesAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .google.protobuf.Any communities = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_communities_size();
      for (const auto& msg : this_._internal_communities()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata IP6ExtendedCommunitiesAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

AigpTLVIGPMetric::AigpTLVIGPMetric(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AigpTLVIGPMetric_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.AigpTLVIGPMetric)
}
AigpTLVIGPMetric::AigpTLVIGPMetric(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AigpTLVIGPMetric& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AigpTLVIGPMetric_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE AigpTLVIGPMetric::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AigpTLVIGPMetric_class_data_ =
        AigpTLVIGPMetric::InternalGenerateClassData_(AigpTLVIGPMetric_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AigpTLVIGPMetric::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AigpTLVIGPMetric_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AigpTLVIGPMetric_class_data_.tc_table);
  return AigpTLVIGPMetric_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AigpTLVIGPMetric::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AigpTLVIGPMetric_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AigpTLVIGPMetric_globals_));
  return AigpTLVIGPMetric_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AigpTLVIGPMetric::ParseTableT_
    AigpTLVIGPMetric::_table_ =
        AigpTLVIGPMetric::InternalGenerateParseTable_(AigpTLVIGPMetric_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AigpTLVIGPMetric::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.AigpTLVIGPMetric)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.metric_ = ::uint64_t{0u};
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint64 metric = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_metric() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          1, this_._internal_metric(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.AigpTLVIGPMetric)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // uint64 metric = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_metric() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_metric());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_metric() != 0) {
      _this->_impl_.metric_ = from._impl_.metric_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata AigpTLVIGPMetric::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

AigpTLVUnknown::AigpTLVUnknown(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AigpTLVUnknown_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.AigpTLVUnknown)
}
PROTOBUF_NDEBUG_INLINE AigpTLVUnknown::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::AigpTLVUnknown& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        value_(arena, from.value_) {}

AigpTLVUnknown::AigpTLVUnknown(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AigpTLVUnknown& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AigpTLVUnknown_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AigpTLVUnknown* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:apipb.AigpTLVUnknown)
}
PROTOBUF_NDEBUG_INLINE AigpTLVUnknown::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

inline void AigpTLVUnknown::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.type_ = {};
}
AigpTLVUnknown::~AigpTLVUnknown() {
  // @@protoc_insertion_point(destructor:apipb.AigpTLVUnknown)
  SharedDtor(*this);
}
inline void AigpTLVUnknown::SharedDtor(MessageLite& self) {
  AigpTLVUnknown& this_ = static_cast<AigpTLVUnknown&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AigpTLVUnknown_class_data_ =
        AigpTLVUnknown::InternalGenerateClassData_(AigpTLVUnknown_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AigpTLVUnknown::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AigpTLVUnknown_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AigpTLVUnknown_class_data_.tc_table);
  return AigpTLVUnknown_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AigpTLVUnknown::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AigpTLVUnknown_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AigpTLVUnknown_globals_));
  return AigpTLVUnknown_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AigpTLVUnknown::ParseTableT_
    AigpTLVUnknown::_table_ =
        AigpTLVUnknown::InternalGenerateParseTable_(AigpTLVUnknown_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AigpTLVUnknown::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.AigpTLVUnknown)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  _impl_.type_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_type(), target);
    }
  }

  // bytes value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.AigpTLVUnknown)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // bytes value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata AigpTLVUnknown::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void AigpAttribute::clear_tlvs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tlvs_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
AigpAttribute::AigpAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AigpAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.AigpAttribute)
}
PROTOBUF_NDEBUG_INLINE AigpAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::AigpAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::AigpAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::AigpAttribute, _impl_.tlvs_)>()
          , from.tlvs_
        }
     {}

AigpAttribute::AigpAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const AigpAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AigpAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  AigpAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.AigpAttribute)
}
PROTOBUF_NDEBUG_INLINE AigpAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::AigpAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::AigpAttribute, _impl_.tlvs_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AigpAttribute_class_data_ =
        AigpAttribute::InternalGenerateClassData_(AigpAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AigpAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AigpAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AigpAttribute_class_data_.tc_table);
  return AigpAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AigpAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AigpAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&AigpAttribute_globals_));
  return AigpAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const AigpAttribute::ParseTableT_
    AigpAttribute::_table_ =
        AigpAttribute::InternalGenerateParseTable_(AigpAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void AigpAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.AigpAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.tlvs_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.AigpAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .google.protobuf.Any tlvs = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_tlvs_size();
      for (const auto& msg : this_._internal_tlvs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata AigpAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LargeCommunity::LargeCommunity(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LargeCommunity_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LargeCommunity)
}
LargeCommunity::LargeCommunity(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LargeCommunity& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LargeCommunity_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LargeCommunity::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LargeCommunity::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, global_admin_),
           0,
           offsetof(Impl_, local_data2_) -
               offsetof(Impl_, global_admin_) +
               sizeof(Impl_::local_data2_));
}
LargeCommunity::~LargeCommunity() {
  // @@protoc_insertion_point(destructor:apipb.LargeCommunity)
  SharedDtor(*this);
}
inline void LargeCommunity::SharedDtor(MessageLite& self) {
  LargeCommunity& this_ = static_cast<LargeCommunity&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LargeCommunity_class_data_ =
        LargeCommunity::InternalGenerateClassData_(LargeCommunity_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LargeCommunity::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LargeCommunity_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LargeCommunity_class_data_.tc_table);
  return LargeCommunity_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LargeCommunity::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LargeCommunity_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LargeCommunity_globals_));
  return LargeCommunity_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LargeCommunity::ParseTableT_
    LargeCommunity::_table_ =
        LargeCommunity::InternalGenerateParseTable_(LargeCommunity_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LargeCommunity::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LargeCommunity)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    ::memset(&_impl_.global_admin_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.local_data2_) -
        reinterpret_cast<char*>(&_impl_.global_admin_)) + sizeof(_impl_.local_data2_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 global_admin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_global_admin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_global_admin(), target);
    }
  }

  // uint32 local_data1 = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_local_data1() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_local_data1(), target);
    }
  }

  // uint32 local_data2 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_local_data2() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_local_data2(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LargeCommunity)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // uint32 global_admin = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_global_admin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_global_admin());
      }
    }
    // uint32 local_data1 = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_local_data1() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_data1());
      }
    }
    // uint32 local_data2 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_local_data2() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_local_data2());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_global_admin() != 0) {
        _this->_impl_.global_admin_ = from._impl_.global_admin_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_local_data1() != 0) {
        _this->_impl_.local_data1_ = from._impl_.local_data1_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_local_data2() != 0) {
        _this->_impl_.local_data2_ = from._impl_.local_data2_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LargeCommunity::InternalSwap(LargeCommunity* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.local_data2_)
      + sizeof(LargeCommunity::_impl_.local_data2_)
      - PROTOBUF_FIELD_OFFSET(LargeCommunity, _impl_.global_admin_)>(
          reinterpret_cast<char*>(&_impl_.global_admin_),
          reinterpret_cast<char*>(&other->_impl_.global_admin_));
}

::google::protobuf::Metadata LargeCommunity::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LargeCommunitiesAttribute::LargeCommunitiesAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LargeCommunitiesAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LargeCommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE LargeCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LargeCommunitiesAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        communities_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LargeCommunitiesAttribute,
              PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunitiesAttribute, _impl_.communities_)>()
          , from.communities_
        }
     {}

LargeCommunitiesAttribute::LargeCommunitiesAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LargeCommunitiesAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LargeCommunitiesAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LargeCommunitiesAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.LargeCommunitiesAttribute)
}
PROTOBUF_NDEBUG_INLINE LargeCommunitiesAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        communities_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LargeCommunitiesAttribute,
            PROTOBUF_FIELD_OFFSET(::apipb::LargeCommunitiesAttribute, _impl_.communities_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LargeCommunitiesAttribute_class_data_ =
        LargeCommunitiesAttribute::InternalGenerateClassData_(LargeCommunitiesAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LargeCommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LargeCommunitiesAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LargeCommunitiesAttribute_class_data_.tc_table);
  return LargeCommunitiesAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LargeCommunitiesAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LargeCommunitiesAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LargeCommunitiesAttribute_globals_));
  return LargeCommunitiesAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LargeCommunitiesAttribute::ParseTableT_
    LargeCommunitiesAttribute::_table_ =
        LargeCommunitiesAttribute::InternalGenerateParseTable_(LargeCommunitiesAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LargeCommunitiesAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LargeCommunitiesAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.communities_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .apipb.LargeCommunity communities = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_communities_size());
         i < n; i++) {
      const auto& repfield = this_._internal_communities().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LargeCommunitiesAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .apipb.LargeCommunity communities = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_communities_size();
      for (const auto& msg : this_._internal_communities()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata LargeCommunitiesAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsNodeFlags::LsNodeFlags(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsNodeFlags_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsNodeFlags)
}
LsNodeFlags::LsNodeFlags(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LsNodeFlags& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsNodeFlags_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LsNodeFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsNodeFlags::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, overload_),
           0,
           offsetof(Impl_, v6_) -
               offsetof(Impl_, overload_) +
               sizeof(Impl_::v6_));
}
LsNodeFlags::~LsNodeFlags() {
  // @@protoc_insertion_point(destructor:apipb.LsNodeFlags)
  SharedDtor(*this);
}
inline void LsNodeFlags::SharedDtor(MessageLite& self) {
  LsNodeFlags& this_ = static_cast<LsNodeFlags&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsNodeFlags_class_data_ =
        LsNodeFlags::InternalGenerateClassData_(LsNodeFlags_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsNodeFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsNodeFlags_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsNodeFlags_class_data_.tc_table);
  return LsNodeFlags_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsNodeFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsNodeFlags_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsNodeFlags_globals_));
  return LsNodeFlags_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsNodeFlags::ParseTableT_
    LsNodeFlags::_table_ =
        LsNodeFlags::InternalGenerateParseTable_(LsNodeFlags_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsNodeFlags::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsNodeFlags)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    ::memset(&_impl_.overload_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.v6_) -
        reinterpret_cast<char*>(&_impl_.overload_)) + sizeof(_impl_.v6_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool overload = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_overload() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_overload(), target);
    }
  }

  // bool attached = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_attached() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_attached(), target);
    }
  }

  // bool external = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_external() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_external(), target);
    }
  }

  // bool abr = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_abr() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_abr(), target);
    }
  }

  // bool router = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_router() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          5, this_._internal_router(), target);
    }
  }

  // bool v6 = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_v6() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          6, this_._internal_v6(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsNodeFlags)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // bool overload = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_overload() != 0) {
        total_size += 2;
      }
    }
    // bool attached = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_attached() != 0) {
        total_size += 2;
      }
    }
    // bool external = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_external() != 0) {
        total_size += 2;
      }
    }
    // bool abr = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_abr() != 0) {
        total_size += 2;
      }
    }
    // bool router = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_router() != 0) {
        total_size += 2;
      }
    }
    // bool v6 = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_v6() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_overload() != 0) {
        _this->_impl_.overload_ = from._impl_.overload_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_attached() != 0) {
        _this->_impl_.attached_ = from._impl_.attached_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_external() != 0) {
        _this->_impl_.external_ = from._impl_.external_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_abr() != 0) {
        _this->_impl_.abr_ = from._impl_.abr_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_router() != 0) {
        _this->_impl_.router_ = from._impl_.router_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_v6() != 0) {
        _this->_impl_.v6_ = from._impl_.v6_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsNodeFlags::InternalSwap(LsNodeFlags* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.v6_)
      + sizeof(LsNodeFlags::_impl_.v6_)
      - PROTOBUF_FIELD_OFFSET(LsNodeFlags, _impl_.overload_)>(
          reinterpret_cast<char*>(&_impl_.overload_),
          reinterpret_cast<char*>(&other->_impl_.overload_));
}

::google::protobuf::Metadata LsNodeFlags::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsIGPFlags::LsIGPFlags(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsIGPFlags_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsIGPFlags)
}
LsIGPFlags::LsIGPFlags(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LsIGPFlags& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsIGPFlags_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LsIGPFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsIGPFlags::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, down_),
           0,
           offsetof(Impl_, propagate_nssa_) -
               offsetof(Impl_, down_) +
               sizeof(Impl_::propagate_nssa_));
}
LsIGPFlags::~LsIGPFlags() {
  // @@protoc_insertion_point(destructor:apipb.LsIGPFlags)
  SharedDtor(*this);
}
inline void LsIGPFlags::SharedDtor(MessageLite& self) {
  LsIGPFlags& this_ = static_cast<LsIGPFlags&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsIGPFlags_class_data_ =
        LsIGPFlags::InternalGenerateClassData_(LsIGPFlags_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsIGPFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsIGPFlags_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsIGPFlags_class_data_.tc_table);
  return LsIGPFlags_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsIGPFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsIGPFlags_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsIGPFlags_globals_));
  return LsIGPFlags_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsIGPFlags::ParseTableT_
    LsIGPFlags::_table_ =
        LsIGPFlags::InternalGenerateParseTable_(LsIGPFlags_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsIGPFlags::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsIGPFlags)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.down_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.propagate_nssa_) -
      reinterpret_cast<char*>(&_impl_.down_)) + sizeof(_impl_.propagate_nssa_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool down = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_down() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_down(), target);
    }
  }

  // bool no_unicast = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_no_unicast() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_no_unicast(), target);
    }
  }

  // bool local_address = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_local_address() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_local_address(), target);
    }
  }

  // bool propagate_nssa = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_propagate_nssa() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_propagate_nssa(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsIGPFlags)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bool down = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_down() != 0) {
        total_size += 2;
      }
    }
    // bool no_unicast = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_no_unicast() != 0) {
        total_size += 2;
      }
    }
    // bool local_address = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_local_address() != 0) {
        total_size += 2;
      }
    }
    // bool propagate_nssa = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_propagate_nssa() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_down() != 0) {
        _this->_impl_.down_ = from._impl_.down_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_no_unicast() != 0) {
        _this->_impl_.no_unicast_ = from._impl_.no_unicast_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_local_address() != 0) {
        _this->_impl_.local_address_ = from._impl_.local_address_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_propagate_nssa() != 0) {
        _this->_impl_.propagate_nssa_ = from._impl_.propagate_nssa_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsIGPFlags::InternalSwap(LsIGPFlags* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.propagate_nssa_)
      + sizeof(LsIGPFlags::_impl_.propagate_nssa_)
      - PROTOBUF_FIELD_OFFSET(LsIGPFlags, _impl_.down_)>(
          reinterpret_cast<char*>(&_impl_.down_),
          reinterpret_cast<char*>(&other->_impl_.down_));
}

::google::protobuf::Metadata LsIGPFlags::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsSrRange::LsSrRange(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsSrRange_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsSrRange)
}
LsSrRange::LsSrRange(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LsSrRange& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsSrRange_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LsSrRange::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsSrRange::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, begin_),
           0,
           offsetof(Impl_, end_) -
               offsetof(Impl_, begin_) +
               sizeof(Impl_::end_));
}
LsSrRange::~LsSrRange() {
  // @@protoc_insertion_point(destructor:apipb.LsSrRange)
  SharedDtor(*this);
}
inline void LsSrRange::SharedDtor(MessageLite& self) {
  LsSrRange& this_ = static_cast<LsSrRange&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsSrRange_class_data_ =
        LsSrRange::InternalGenerateClassData_(LsSrRange_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsSrRange::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsSrRange_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsSrRange_class_data_.tc_table);
  return LsSrRange_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsSrRange::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsSrRange_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsSrRange_globals_));
  return LsSrRange_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsSrRange::ParseTableT_
    LsSrRange::_table_ =
        LsSrRange::InternalGenerateParseTable_(LsSrRange_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsSrRange::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsSrRange)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.begin_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.end_) -
        reinterpret_cast<char*>(&_impl_.begin_)) + sizeof(_impl_.end_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 begin = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_begin() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_begin(), target);
    }
  }

  // uint32 end = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_end() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_end(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsSrRange)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // uint32 begin = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_begin() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_begin());
      }
    }
    // uint32 end = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_end() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_end());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_begin() != 0) {
        _this->_impl_.begin_ = from._impl_.begin_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_end() != 0) {
        _this->_impl_.end_ = from._impl_.end_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsSrRange::InternalSwap(LsSrRange* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_.end_)
      + sizeof(LsSrRange::_impl_.end_)
      - PROTOBUF_FIELD_OFFSET(LsSrRange, _impl_.begin_)>(
          reinterpret_cast<char*>(&_impl_.begin_),
          reinterpret_cast<char*>(&other->_impl_.begin_));
}

::google::protobuf::Metadata LsSrRange::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsSrCapabilities::LsSrCapabilities(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsSrCapabilities_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsSrCapabilities)
}
PROTOBUF_NDEBUG_INLINE LsSrCapabilities::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsSrCapabilities& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ranges_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LsSrCapabilities,
              PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_.ranges_)>()
          , from.ranges_
        }
     {}

LsSrCapabilities::LsSrCapabilities(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsSrCapabilities& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsSrCapabilities_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsSrCapabilities* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, ipv4_supported_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, ipv4_supported_),
           offsetof(Impl_, ipv6_supported_) -
               offsetof(Impl_, ipv4_supported_) +
               sizeof(Impl_::ipv6_supported_));

  // @@protoc_insertion_point(copy_constructor:apipb.LsSrCapabilities)
}
PROTOBUF_NDEBUG_INLINE LsSrCapabilities::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ranges_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsSrCapabilities,
            PROTOBUF_FIELD_OFFSET(::apipb::LsSrCapabilities, _impl_.ranges_)>()
         }
     {}

inline void LsSrCapabilities::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, ipv4_supported_),
           0,
           offsetof(Impl_, ipv6_supported_) -
               offsetof(Impl_, ipv4_supported_) +
               sizeof(Impl_::ipv6_supported_));
}
LsSrCapabilities::~LsSrCapabilities() {
  // @@protoc_insertion_point(destructor:apipb.LsSrCapabilities)
  SharedDtor(*this);
}
inline void LsSrCapabilities::SharedDtor(MessageLite& self) {
  LsSrCapabilities& this_ = static_cast<LsSrCapabilities&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsSrCapabilities_class_data_ =
        LsSrCapabilities::InternalGenerateClassData_(LsSrCapabilities_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsSrCapabilities::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsSrCapabilities_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsSrCapabilities_class_data_.tc_table);
  return LsSrCapabilities_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsSrCapabilities::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsSrCapabilities_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsSrCapabilities_globals_));
  return LsSrCapabilities_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsSrCapabilities::ParseTableT_
    LsSrCapabilities::_table_ =
        LsSrCapabilities::InternalGenerateParseTable_(LsSrCapabilities_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsSrCapabilities::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsSrCapabilities)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.ranges_.Clear();
  }
  ::memset(&_impl_.ipv4_supported_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.ipv6_supported_) -
      reinterpret_cast<char*>(&_impl_.ipv4_supported_)) + sizeof(_impl_.ipv6_supported_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool ipv4_supported = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_ipv4_supported() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_ipv4_supported(), target);
    }
  }

  // bool ipv6_supported = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_ipv6_supported() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_ipv6_supported(), target);
    }
  }

  // repeated .apipb.LsSrRange ranges = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_ranges_size());
         i < n; i++) {
      const auto& repfield = this_._internal_ranges().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsSrCapabilities)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .apipb.LsSrRange ranges = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_ranges_size();
      for (const auto& msg : this_._internal_ranges()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // bool ipv4_supported = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_ipv4_supported() != 0) {
        total_size += 2;
      }
    }
    // bool ipv6_supported = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_ipv6_supported() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_ranges()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_ranges());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_ipv4_supported() != 0) {
        _this->_impl_.ipv4_supported_ = from._impl_.ipv4_supported_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_ipv6_supported() != 0) {
        _this->_impl_.ipv6_supported_ = from._impl_.ipv6_supported_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsSrCapabilities::InternalSwap(LsSrCapabilities* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.ranges_.InternalSwap(&other->_impl_.ranges_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ipv6_supported_)
      + sizeof(LsSrCapabilities::_impl_.ipv6_supported_)
      - PROTOBUF_FIELD_OFFSET(LsSrCapabilities, _impl_.ipv4_supported_)>(
          reinterpret_cast<char*>(&_impl_.ipv4_supported_),
          reinterpret_cast<char*>(&other->_impl_.ipv4_supported_));
}

::google::protobuf::Metadata LsSrCapabilities::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsSrLocalBlock::LsSrLocalBlock(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsSrLocalBlock_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsSrLocalBlock)
}
PROTOBUF_NDEBUG_INLINE LsSrLocalBlock::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsSrLocalBlock& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ranges_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LsSrLocalBlock,
              PROTOBUF_FIELD_OFFSET(::apipb::LsSrLocalBlock, _impl_.ranges_)>()
          , from.ranges_
        }
     {}

LsSrLocalBlock::LsSrLocalBlock(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsSrLocalBlock& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsSrLocalBlock_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsSrLocalBlock* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.LsSrLocalBlock)
}
PROTOBUF_NDEBUG_INLINE LsSrLocalBlock::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ranges_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsSrLocalBlock,
            PROTOBUF_FIELD_OFFSET(::apipb::LsSrLocalBlock, _impl_.ranges_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsSrLocalBlock_class_data_ =
        LsSrLocalBlock::InternalGenerateClassData_(LsSrLocalBlock_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsSrLocalBlock::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsSrLocalBlock_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsSrLocalBlock_class_data_.tc_table);
  return LsSrLocalBlock_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsSrLocalBlock::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsSrLocalBlock_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsSrLocalBlock_globals_));
  return LsSrLocalBlock_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsSrLocalBlock::ParseTableT_
    LsSrLocalBlock::_table_ =
        LsSrLocalBlock::InternalGenerateParseTable_(LsSrLocalBlock_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsSrLocalBlock::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsSrLocalBlock)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.ranges_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .apipb.LsSrRange ranges = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_ranges_size());
         i < n; i++) {
      const auto& repfield = this_._internal_ranges().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsSrLocalBlock)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .apipb.LsSrRange ranges = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_ranges_size();
      for (const auto& msg : this_._internal_ranges()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata LsSrLocalBlock::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsAttributeNode::LsAttributeNode(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributeNode_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsAttributeNode)
}
PROTOBUF_NDEBUG_INLINE LsAttributeNode::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsAttributeNode& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        name_(arena, from.name_),
        local_router_id_(arena, from.local_router_id_),
        local_router_id_v6_(arena, from.local_router_id_v6_),
        isis_area_(arena, from.isis_area_),
        opaque_(arena, from.opaque_),
        sr_algorithms_(arena, from.sr_algorithms_) {}

LsAttributeNode::LsAttributeNode(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsAttributeNode& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributeNode_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsAttributeNode* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.flags_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_)
                : nullptr;
  _impl_.sr_capabilities_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sr_capabilities_)
                : nullptr;
  _impl_.sr_local_block_ = (CheckHasBit(cached_has_bits, 0x00000100U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sr_local_block_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsAttributeNode)
}
PROTOBUF_NDEBUG_INLINE LsAttributeNode::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        name_(arena),
        local_router_id_(arena),
        local_router_id_v6_(arena),
        isis_area_(arena),
        opaque_(arena),
        sr_algorithms_(arena) {}

inline void LsAttributeNode::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, sr_local_block_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::sr_local_block_));
}
LsAttributeNode::~LsAttributeNode() {
  // @@protoc_insertion_point(destructor:apipb.LsAttributeNode)
  SharedDtor(*this);
}
inline void LsAttributeNode::SharedDtor(MessageLite& self) {
  LsAttributeNode& this_ = static_cast<LsAttributeNode&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.local_router_id_.Destroy();
  this_._impl_.local_router_id_v6_.Destroy();
  this_._impl_.isis_area_.Destroy();
  this_._impl_.opaque_.Destroy();
  this_._impl_.sr_algorithms_.Destroy();
  delete this_._impl_.flags_;
  delete this_._impl_.sr_capabilities_;
  delete this_._impl_.sr_local_block_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsAttributeNode_class_data_ =
        LsAttributeNode::InternalGenerateClassData_(LsAttributeNode_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributeNode::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributeNode_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsAttributeNode_class_data_.tc_table);
  return LsAttributeNode_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributeNode::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributeNode_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsAttributeNode_globals_));
  return LsAttributeNode_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsAttributeNode::ParseTableT_
    LsAttributeNode::_table_ =
        LsAttributeNode::InternalGenerateParseTable_(LsAttributeNode_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsAttributeNode::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsAttributeNode)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.local_router_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.local_router_id_v6_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.isis_area_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.opaque_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.sr_algorithms_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.flags_ != nullptr);
      _impl_.flags_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.sr_capabilities_ != nullptr);
      _impl_.sr_capabilities_->Clear();
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    ABSL_DCHECK(_impl_.sr_local_block_ != nullptr);
    _impl_.sr_local_block_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_name().empty()) {
      const ::std::string& _s = this_._internal_name();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeNode.name");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // .apipb.LsNodeFlags flags = 2;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.flags_, this_._impl_.flags_->GetCachedSize(), target,
        stream);
  }

  // string local_router_id = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_local_router_id().empty()) {
      const ::std::string& _s = this_._internal_local_router_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeNode.local_router_id");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // string local_router_id_v6 = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_local_router_id_v6().empty()) {
      const ::std::string& _s = this_._internal_local_router_id_v6();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeNode.local_router_id_v6");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // bytes isis_area = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (!this_._internal_isis_area().empty()) {
      const ::std::string& _s = this_._internal_isis_area();
      target = stream->WriteBytesMaybeAliased(5, _s, target);
    }
  }

  // bytes opaque = 6;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (!this_._internal_opaque().empty()) {
      const ::std::string& _s = this_._internal_opaque();
      target = stream->WriteBytesMaybeAliased(6, _s, target);
    }
  }

  // .apipb.LsSrCapabilities sr_capabilities = 7;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.sr_capabilities_, this_._impl_.sr_capabilities_->GetCachedSize(), target,
        stream);
  }

  // bytes sr_algorithms = 8;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (!this_._internal_sr_algorithms().empty()) {
      const ::std::string& _s = this_._internal_sr_algorithms();
      target = stream->WriteBytesMaybeAliased(8, _s, target);
    }
  }

  // .apipb.LsSrLocalBlock sr_local_block = 9;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.sr_local_block_, this_._impl_.sr_local_block_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsAttributeNode)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // string name = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_name().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_name());
      }
    }
    // string local_router_id = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_local_router_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_local_router_id());
      }
    }
    // string local_router_id_v6 = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_local_router_id_v6().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_local_router_id_v6());
      }
    }
    // bytes isis_area = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!this_._internal_isis_area().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_isis_area());
      }
    }
    // bytes opaque = 6;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!this_._internal_opaque().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_opaque());
      }
    }
    // bytes sr_algorithms = 8;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!this_._internal_sr_algorithms().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_sr_algorithms());
      }
    }
    // .apipb.LsNodeFlags flags = 2;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.flags_);
    }
    // .apipb.LsSrCapabilities sr_capabilities = 7;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sr_capabilities_);
    }
  }
   {
    // .apipb.LsSrLocalBlock sr_local_block = 9;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sr_local_block_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_name().empty()) {
        _this->_internal_set_name(from._internal_name());
      } else {
        if (_this->_impl_.name_.IsDefault()) {
          _this->_internal_set_name("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_local_router_id().empty()) {
        _this->_internal_set_local_router_id(from._internal_local_router_id());
      } else {
        if (_this->_impl_.local_router_id_.IsDefault()) {
          _this->_internal_set_local_router_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_local_router_id_v6().empty()) {
        _this->_internal_set_local_router_id_v6(from._internal_local_router_id_v6());
      } else {
        if (_this->_impl_.local_router_id_v6_.IsDefault()) {
          _this->_internal_set_local_router_id_v6("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!from._internal_isis_area().empty()) {
        _this->_internal_set_isis_area(from._internal_isis_area());
      } else {
        if (_this->_impl_.isis_area_.IsDefault()) {
          _this->_internal_set_isis_area("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!from._internal_opaque().empty()) {
        _this->_internal_set_opaque(from._internal_opaque());
      } else {
        if (_this->_impl_.opaque_.IsDefault()) {
          _this->_internal_set_opaque("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!from._internal_sr_algorithms().empty()) {
        _this->_internal_set_sr_algorithms(from._internal_sr_algorithms());
      } else {
        if (_this->_impl_.sr_algorithms_.IsDefault()) {
          _this->_internal_set_sr_algorithms("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.flags_ != nullptr);
      if (_this->_impl_.flags_ == nullptr) {
        _this->_impl_.flags_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_);
      } else {
        _this->_impl_.flags_->MergeFrom(*from._impl_.flags_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.sr_capabilities_ != nullptr);
      if (_this->_impl_.sr_capabilities_ == nullptr) {
        _this->_impl_.sr_capabilities_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sr_capabilities_);
      } else {
        _this->_impl_.sr_capabilities_->MergeFrom(*from._impl_.sr_capabilities_);
      }
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    ABSL_DCHECK(from._impl_.sr_local_block_ != nullptr);
    if (_this->_impl_.sr_local_block_ == nullptr) {
      _this->_impl_.sr_local_block_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sr_local_block_);
    } else {
      _this->_impl_.sr_local_block_->MergeFrom(*from._impl_.sr_local_block_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsAttributeNode::InternalSwap(LsAttributeNode* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.local_router_id_, &other->_impl_.local_router_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.local_router_id_v6_, &other->_impl_.local_router_id_v6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.isis_area_, &other->_impl_.isis_area_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.opaque_, &other->_impl_.opaque_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sr_algorithms_, &other->_impl_.sr_algorithms_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.sr_local_block_)
      + sizeof(LsAttributeNode::_impl_.sr_local_block_)
      - PROTOBUF_FIELD_OFFSET(LsAttributeNode, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata LsAttributeNode::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsAttributeLink::LsAttributeLink(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributeLink_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsAttributeLink)
}
PROTOBUF_NDEBUG_INLINE LsAttributeLink::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsAttributeLink& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        unreserved_bandwidth_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LsAttributeLink,
              PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.unreserved_bandwidth_)>()
          , from.unreserved_bandwidth_
        }
        ,
        srlgs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::LsAttributeLink,
              PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.srlgs_)>()
          , from.srlgs_
        }
        ,
        _srlgs_cached_byte_size_{0},
        name_(arena, from.name_),
        local_router_id_(arena, from.local_router_id_),
        local_router_id_v6_(arena, from.local_router_id_v6_),
        remote_router_id_(arena, from.remote_router_id_),
        remote_router_id_v6_(arena, from.remote_router_id_v6_),
        opaque_(arena, from.opaque_) {}

LsAttributeLink::LsAttributeLink(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsAttributeLink& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributeLink_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsAttributeLink* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, admin_group_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, admin_group_),
           offsetof(Impl_, sr_adjacency_sid_) -
               offsetof(Impl_, admin_group_) +
               sizeof(Impl_::sr_adjacency_sid_));

  // @@protoc_insertion_point(copy_constructor:apipb.LsAttributeLink)
}
PROTOBUF_NDEBUG_INLINE LsAttributeLink::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        unreserved_bandwidth_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsAttributeLink,
            PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.unreserved_bandwidth_)>()
         }
        ,
        srlgs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::LsAttributeLink,
            PROTOBUF_FIELD_OFFSET(::apipb::LsAttributeLink, _impl_.srlgs_)>()
         }
        ,
        _srlgs_cached_byte_size_{0},
        name_(arena),
        local_router_id_(arena),
        local_router_id_v6_(arena),
        remote_router_id_(arena),
        remote_router_id_v6_(arena),
        opaque_(arena) {}

inline void LsAttributeLink::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, admin_group_),
           0,
           offsetof(Impl_, sr_adjacency_sid_) -
               offsetof(Impl_, admin_group_) +
               sizeof(Impl_::sr_adjacency_sid_));
}
LsAttributeLink::~LsAttributeLink() {
  // @@protoc_insertion_point(destructor:apipb.LsAttributeLink)
  SharedDtor(*this);
}
inline void LsAttributeLink::SharedDtor(MessageLite& self) {
  LsAttributeLink& this_ = static_cast<LsAttributeLink&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.local_router_id_.Destroy();
  this_._impl_.local_router_id_v6_.Destroy();
  this_._impl_.remote_router_id_.Destroy();
  this_._impl_.remote_router_id_v6_.Destroy();
  this_._impl_.opaque_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsAttributeLink_class_data_ =
        LsAttributeLink::InternalGenerateClassData_(LsAttributeLink_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributeLink::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributeLink_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsAttributeLink_class_data_.tc_table);
  return LsAttributeLink_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributeLink::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributeLink_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsAttributeLink_globals_));
  return LsAttributeLink_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsAttributeLink::ParseTableT_
    LsAttributeLink::_table_ =
        LsAttributeLink::InternalGenerateParseTable_(LsAttributeLink_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsAttributeLink::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsAttributeLink)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.unreserved_bandwidth_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.srlgs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.local_router_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.local_router_id_v6_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.remote_router_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.remote_router_id_v6_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.opaque_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00003f00U)) {
    ::memset(&_impl_.admin_group_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.sr_adjacency_sid_) -
        reinterpret_cast<char*>(&_impl_.admin_group_)) + sizeof(_impl_.sr_adjacency_sid_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // string name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_name().empty()) {
      const ::std::string& _s = this_._internal_name();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeLink.name");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // string local_router_id = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (!this_._internal_local_router_id().empty()) {
      const ::std::string& _s = this_._internal_local_router_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeLink.local_router_id");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // string local_router_id_v6 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (!this_._internal_local_router_id_v6().empty()) {
      const ::std::string& _s = this_._internal_local_router_id_v6();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeLink.local_router_id_v6");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  // string remote_router_id = 4;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (!this_._internal_remote_router_id().empty()) {
      const ::std::string& _s = this_._internal_remote_router_id();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeLink.remote_router_id");
      target = stream->WriteStringMaybeAliased(4, _s, target);
    }
  }

  // string remote_router_id_v6 = 5;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (!this_._internal_remote_router_id_v6().empty()) {
      const ::std::string& _s = this_._internal_remote_router_id_v6();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "apipb.LsAttributeLink.remote_router_id_v6");
      target = stream->WriteStringMaybeAliased(5, _s, target);
    }
  }

  // uint32 admin_group = 6;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_admin_group() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          6, this_._internal_admin_group(), target);
    }
  }

  // uint32 default_te_metric = 7;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    if (this_._internal_default_te_metric() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          7, this_._internal_default_te_metric(), target);
    }
  }

  // uint32 igp_metric = 8;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    if (this_._internal_igp_metric() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          8, this_._internal_igp_metric(), target);
    }
  }

  // bytes opaque = 9;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    if (!this_._internal_opaque().empty()) {
      const ::std::string& _s = this_._internal_opaque();
      target = stream->WriteBytesMaybeAliased(9, _s, target);
    }
  }

  // float bandwidth = 10;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_bandwidth()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          10, this_._internal_bandwidth(), target);
    }
  }

  // float reservable_bandwidth = 11;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_reservable_bandwidth()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          11, this_._internal_reservable_bandwidth(), target);
    }
  }

  // repeated float unreserved_bandwidth = 12;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_unreserved_bandwidth_size() > 0) {
      target = stream->WriteFixedPacked(12, this_._internal_unreserved_bandwidth(), target);
    }
  }

  // uint32 sr_adjacency_sid = 13;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    if (this_._internal_sr_adjacency_sid() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          13, this_._internal_sr_adjacency_sid(), target);
    }
  }

  // repeated uint32 srlgs = 14;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    {
      int byte_size = this_._impl_._srlgs_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt32Packed(
            14, this_._internal_srlgs(), byte_size, target);
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsAttributeLink)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated float unreserved_bandwidth = 12;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_unreserved_bandwidth_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // repeated uint32 srlgs = 14;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt32SizeWithPackedTagSize(
              this_._internal_srlgs(), 1,
              this_._impl_._srlgs_cached_byte_size_);
    }
    // string name = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_name().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_name());
      }
    }
    // string local_router_id = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!this_._internal_local_router_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_local_router_id());
      }
    }
    // string local_router_id_v6 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!this_._internal_local_router_id_v6().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_local_router_id_v6());
      }
    }
    // string remote_router_id = 4;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!this_._internal_remote_router_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_remote_router_id());
      }
    }
    // string remote_router_id_v6 = 5;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (!this_._internal_remote_router_id_v6().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_remote_router_id_v6());
      }
    }
    // bytes opaque = 9;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (!this_._internal_opaque().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_opaque());
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00003f00U)) {
    // uint32 admin_group = 6;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_admin_group() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_admin_group());
      }
    }
    // uint32 default_te_metric = 7;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (this_._internal_default_te_metric() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_default_te_metric());
      }
    }
    // uint32 igp_metric = 8;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (this_._internal_igp_metric() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_igp_metric());
      }
    }
    // float bandwidth = 10;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_bandwidth()) != 0) {
        total_size += 5;
      }
    }
    // float reservable_bandwidth = 11;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_reservable_bandwidth()) != 0) {
        total_size += 5;
      }
    }
    // uint32 sr_adjacency_sid = 13;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      if (this_._internal_sr_adjacency_sid() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sr_adjacency_sid());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_unreserved_bandwidth()->MergeFrom(from._internal_unreserved_bandwidth());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_srlgs()->MergeFrom(from._internal_srlgs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_name().empty()) {
        _this->_internal_set_name(from._internal_name());
      } else {
        if (_this->_impl_.name_.IsDefault()) {
          _this->_internal_set_name("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (!from._internal_local_router_id().empty()) {
        _this->_internal_set_local_router_id(from._internal_local_router_id());
      } else {
        if (_this->_impl_.local_router_id_.IsDefault()) {
          _this->_internal_set_local_router_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (!from._internal_local_router_id_v6().empty()) {
        _this->_internal_set_local_router_id_v6(from._internal_local_router_id_v6());
      } else {
        if (_this->_impl_.local_router_id_v6_.IsDefault()) {
          _this->_internal_set_local_router_id_v6("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (!from._internal_remote_router_id().empty()) {
        _this->_internal_set_remote_router_id(from._internal_remote_router_id());
      } else {
        if (_this->_impl_.remote_router_id_.IsDefault()) {
          _this->_internal_set_remote_router_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (!from._internal_remote_router_id_v6().empty()) {
        _this->_internal_set_remote_router_id_v6(from._internal_remote_router_id_v6());
      } else {
        if (_this->_impl_.remote_router_id_v6_.IsDefault()) {
          _this->_internal_set_remote_router_id_v6("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      if (!from._internal_opaque().empty()) {
        _this->_internal_set_opaque(from._internal_opaque());
      } else {
        if (_this->_impl_.opaque_.IsDefault()) {
          _this->_internal_set_opaque("");
        }
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00003f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (from._internal_admin_group() != 0) {
        _this->_impl_.admin_group_ = from._impl_.admin_group_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (from._internal_default_te_metric() != 0) {
        _this->_impl_.default_te_metric_ = from._impl_.default_te_metric_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (from._internal_igp_metric() != 0) {
        _this->_impl_.igp_metric_ = from._impl_.igp_metric_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_bandwidth()) != 0) {
        _this->_impl_.bandwidth_ = from._impl_.bandwidth_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_reservable_bandwidth()) != 0) {
        _this->_impl_.reservable_bandwidth_ = from._impl_.reservable_bandwidth_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      if (from._internal_sr_adjacency_sid() != 0) {
        _this->_impl_.sr_adjacency_sid_ = from._impl_.sr_adjacency_sid_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsAttributeLink::InternalSwap(LsAttributeLink* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.unreserved_bandwidth_.InternalSwap(&other->_impl_.unreserved_bandwidth_);
  _impl_.srlgs_.InternalSwap(&other->_impl_.srlgs_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.local_router_id_, &other->_impl_.local_router_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.local_router_id_v6_, &other->_impl_.local_router_id_v6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.remote_router_id_, &other->_impl_.remote_router_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.remote_router_id_v6_, &other->_impl_.remote_router_id_v6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.opaque_, &other->_impl_.opaque_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.sr_adjacency_sid_)
      + sizeof(LsAttributeLink::_impl_.sr_adjacency_sid_)
      - PROTOBUF_FIELD_OFFSET(LsAttributeLink, _impl_.admin_group_)>(
          reinterpret_cast<char*>(&_impl_.admin_group_),
          reinterpret_cast<char*>(&other->_impl_.admin_group_));
}

::google::protobuf::Metadata LsAttributeLink::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsAttributePrefix::LsAttributePrefix(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributePrefix_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsAttributePrefix)
}
PROTOBUF_NDEBUG_INLINE LsAttributePrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsAttributePrefix& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        opaque_(arena, from.opaque_) {}

LsAttributePrefix::LsAttributePrefix(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsAttributePrefix& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributePrefix_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsAttributePrefix* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.igp_flags_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.igp_flags_)
                : nullptr;
  _impl_.sr_prefix_sid_ = from._impl_.sr_prefix_sid_;

  // @@protoc_insertion_point(copy_constructor:apipb.LsAttributePrefix)
}
PROTOBUF_NDEBUG_INLINE LsAttributePrefix::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        opaque_(arena) {}

inline void LsAttributePrefix::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, igp_flags_),
           0,
           offsetof(Impl_, sr_prefix_sid_) -
               offsetof(Impl_, igp_flags_) +
               sizeof(Impl_::sr_prefix_sid_));
}
LsAttributePrefix::~LsAttributePrefix() {
  // @@protoc_insertion_point(destructor:apipb.LsAttributePrefix)
  SharedDtor(*this);
}
inline void LsAttributePrefix::SharedDtor(MessageLite& self) {
  LsAttributePrefix& this_ = static_cast<LsAttributePrefix&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.opaque_.Destroy();
  delete this_._impl_.igp_flags_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsAttributePrefix_class_data_ =
        LsAttributePrefix::InternalGenerateClassData_(LsAttributePrefix_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributePrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributePrefix_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsAttributePrefix_class_data_.tc_table);
  return LsAttributePrefix_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributePrefix::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributePrefix_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsAttributePrefix_globals_));
  return LsAttributePrefix_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsAttributePrefix::ParseTableT_
    LsAttributePrefix::_table_ =
        LsAttributePrefix::InternalGenerateParseTable_(LsAttributePrefix_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsAttributePrefix::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsAttributePrefix)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.opaque_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.igp_flags_ != nullptr);
      _impl_.igp_flags_->Clear();
    }
  }
  _impl_.sr_prefix_sid_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsIGPFlags igp_flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.igp_flags_, this_._impl_.igp_flags_->GetCachedSize(), target,
        stream);
  }

  // bytes opaque = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_opaque().empty()) {
      const ::std::string& _s = this_._internal_opaque();
      target = stream->WriteBytesMaybeAliased(2, _s, target);
    }
  }

  // uint32 sr_prefix_sid = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_sr_prefix_sid() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_sr_prefix_sid(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsAttributePrefix)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // bytes opaque = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_opaque().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_opaque());
      }
    }
    // .apipb.LsIGPFlags igp_flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.igp_flags_);
    }
    // uint32 sr_prefix_sid = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_sr_prefix_sid() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sr_prefix_sid());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_opaque().empty()) {
        _this->_internal_set_opaque(from._internal_opaque());
      } else {
        if (_this->_impl_.opaque_.IsDefault()) {
          _this->_internal_set_opaque("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.igp_flags_ != nullptr);
      if (_this->_impl_.igp_flags_ == nullptr) {
        _this->_impl_.igp_flags_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.igp_flags_);
      } else {
        _this->_impl_.igp_flags_->MergeFrom(*from._impl_.igp_flags_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_sr_prefix_sid() != 0) {
        _this->_impl_.sr_prefix_sid_ = from._impl_.sr_prefix_sid_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsAttributePrefix::InternalSwap(LsAttributePrefix* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.opaque_, &other->_impl_.opaque_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.sr_prefix_sid_)
      + sizeof(LsAttributePrefix::_impl_.sr_prefix_sid_)
      - PROTOBUF_FIELD_OFFSET(LsAttributePrefix, _impl_.igp_flags_)>(
          reinterpret_cast<char*>(&_impl_.igp_flags_),
          reinterpret_cast<char*>(&other->_impl_.igp_flags_));
}

::google::protobuf::Metadata LsAttributePrefix::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsBgpPeerSegmentSIDFlags::LsBgpPeerSegmentSIDFlags(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsBgpPeerSegmentSIDFlags_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsBgpPeerSegmentSIDFlags)
}
LsBgpPeerSegmentSIDFlags::LsBgpPeerSegmentSIDFlags(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LsBgpPeerSegmentSIDFlags& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsBgpPeerSegmentSIDFlags_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LsBgpPeerSegmentSIDFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsBgpPeerSegmentSIDFlags::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, value_),
           0,
           offsetof(Impl_, persistent_) -
               offsetof(Impl_, value_) +
               sizeof(Impl_::persistent_));
}
LsBgpPeerSegmentSIDFlags::~LsBgpPeerSegmentSIDFlags() {
  // @@protoc_insertion_point(destructor:apipb.LsBgpPeerSegmentSIDFlags)
  SharedDtor(*this);
}
inline void LsBgpPeerSegmentSIDFlags::SharedDtor(MessageLite& self) {
  LsBgpPeerSegmentSIDFlags& this_ = static_cast<LsBgpPeerSegmentSIDFlags&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsBgpPeerSegmentSIDFlags_class_data_ =
        LsBgpPeerSegmentSIDFlags::InternalGenerateClassData_(LsBgpPeerSegmentSIDFlags_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsBgpPeerSegmentSIDFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsBgpPeerSegmentSIDFlags_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsBgpPeerSegmentSIDFlags_class_data_.tc_table);
  return LsBgpPeerSegmentSIDFlags_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsBgpPeerSegmentSIDFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsBgpPeerSegmentSIDFlags_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsBgpPeerSegmentSIDFlags_globals_));
  return LsBgpPeerSegmentSIDFlags_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsBgpPeerSegmentSIDFlags::ParseTableT_
    LsBgpPeerSegmentSIDFlags::_table_ =
        LsBgpPeerSegmentSIDFlags::InternalGenerateParseTable_(LsBgpPeerSegmentSIDFlags_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsBgpPeerSegmentSIDFlags::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsBgpPeerSegmentSIDFlags)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.value_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.persistent_) -
      reinterpret_cast<char*>(&_impl_.value_)) + sizeof(_impl_.persistent_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool value = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_value() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_value(), target);
    }
  }

  // bool local = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_local() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_local(), target);
    }
  }

  // bool backup = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_backup() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_backup(), target);
    }
  }

  // bool persistent = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_persistent() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          4, this_._internal_persistent(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsBgpPeerSegmentSIDFlags)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bool value = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_value() != 0) {
        total_size += 2;
      }
    }
    // bool local = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_local() != 0) {
        total_size += 2;
      }
    }
    // bool backup = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_backup() != 0) {
        total_size += 2;
      }
    }
    // bool persistent = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_persistent() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_value() != 0) {
        _this->_impl_.value_ = from._impl_.value_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_local() != 0) {
        _this->_impl_.local_ = from._impl_.local_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_backup() != 0) {
        _this->_impl_.backup_ = from._impl_.backup_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_persistent() != 0) {
        _this->_impl_.persistent_ = from._impl_.persistent_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsBgpPeerSegmentSIDFlags::InternalSwap(LsBgpPeerSegmentSIDFlags* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.persistent_)
      + sizeof(LsBgpPeerSegmentSIDFlags::_impl_.persistent_)
      - PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSIDFlags, _impl_.value_)>(
          reinterpret_cast<char*>(&_impl_.value_),
          reinterpret_cast<char*>(&other->_impl_.value_));
}

::google::protobuf::Metadata LsBgpPeerSegmentSIDFlags::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsBgpPeerSegmentSID::LsBgpPeerSegmentSID(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsBgpPeerSegmentSID_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsBgpPeerSegmentSID)
}
PROTOBUF_NDEBUG_INLINE LsBgpPeerSegmentSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsBgpPeerSegmentSID& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsBgpPeerSegmentSID::LsBgpPeerSegmentSID(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsBgpPeerSegmentSID& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsBgpPeerSegmentSID_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsBgpPeerSegmentSID* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.flags_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, weight_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, weight_),
           offsetof(Impl_, sid_) -
               offsetof(Impl_, weight_) +
               sizeof(Impl_::sid_));

  // @@protoc_insertion_point(copy_constructor:apipb.LsBgpPeerSegmentSID)
}
PROTOBUF_NDEBUG_INLINE LsBgpPeerSegmentSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsBgpPeerSegmentSID::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, sid_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::sid_));
}
LsBgpPeerSegmentSID::~LsBgpPeerSegmentSID() {
  // @@protoc_insertion_point(destructor:apipb.LsBgpPeerSegmentSID)
  SharedDtor(*this);
}
inline void LsBgpPeerSegmentSID::SharedDtor(MessageLite& self) {
  LsBgpPeerSegmentSID& this_ = static_cast<LsBgpPeerSegmentSID&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.flags_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsBgpPeerSegmentSID_class_data_ =
        LsBgpPeerSegmentSID::InternalGenerateClassData_(LsBgpPeerSegmentSID_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsBgpPeerSegmentSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsBgpPeerSegmentSID_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsBgpPeerSegmentSID_class_data_.tc_table);
  return LsBgpPeerSegmentSID_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsBgpPeerSegmentSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsBgpPeerSegmentSID_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsBgpPeerSegmentSID_globals_));
  return LsBgpPeerSegmentSID_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsBgpPeerSegmentSID::ParseTableT_
    LsBgpPeerSegmentSID::_table_ =
        LsBgpPeerSegmentSID::InternalGenerateParseTable_(LsBgpPeerSegmentSID_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsBgpPeerSegmentSID::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsBgpPeerSegmentSID)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.flags_ != nullptr);
    _impl_.flags_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.weight_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.sid_) -
        reinterpret_cast<char*>(&_impl_.weight_)) + sizeof(_impl_.sid_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsBgpPeerSegmentSIDFlags flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.flags_, this_._impl_.flags_->GetCachedSize(), target,
        stream);
  }

  // uint32 weight = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_weight() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_weight(), target);
    }
  }

  // uint32 sid = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_sid() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_sid(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsBgpPeerSegmentSID)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // .apipb.LsBgpPeerSegmentSIDFlags flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.flags_);
    }
    // uint32 weight = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_weight() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_weight());
      }
    }
    // uint32 sid = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_sid() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sid());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.flags_ != nullptr);
      if (_this->_impl_.flags_ == nullptr) {
        _this->_impl_.flags_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_);
      } else {
        _this->_impl_.flags_->MergeFrom(*from._impl_.flags_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_weight() != 0) {
        _this->_impl_.weight_ = from._impl_.weight_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_sid() != 0) {
        _this->_impl_.sid_ = from._impl_.sid_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsBgpPeerSegmentSID::InternalSwap(LsBgpPeerSegmentSID* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.sid_)
      + sizeof(LsBgpPeerSegmentSID::_impl_.sid_)
      - PROTOBUF_FIELD_OFFSET(LsBgpPeerSegmentSID, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata LsBgpPeerSegmentSID::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsAttributeBgpPeerSegment::LsAttributeBgpPeerSegment(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributeBgpPeerSegment_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsAttributeBgpPeerSegment)
}
PROTOBUF_NDEBUG_INLINE LsAttributeBgpPeerSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsAttributeBgpPeerSegment& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsAttributeBgpPeerSegment::LsAttributeBgpPeerSegment(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsAttributeBgpPeerSegment& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttributeBgpPeerSegment_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsAttributeBgpPeerSegment* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.bgp_peer_node_sid_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_node_sid_)
                : nullptr;
  _impl_.bgp_peer_adjacency_sid_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_adjacency_sid_)
                : nullptr;
  _impl_.bgp_peer_set_sid_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_set_sid_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsAttributeBgpPeerSegment)
}
PROTOBUF_NDEBUG_INLINE LsAttributeBgpPeerSegment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsAttributeBgpPeerSegment::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, bgp_peer_node_sid_),
           0,
           offsetof(Impl_, bgp_peer_set_sid_) -
               offsetof(Impl_, bgp_peer_node_sid_) +
               sizeof(Impl_::bgp_peer_set_sid_));
}
LsAttributeBgpPeerSegment::~LsAttributeBgpPeerSegment() {
  // @@protoc_insertion_point(destructor:apipb.LsAttributeBgpPeerSegment)
  SharedDtor(*this);
}
inline void LsAttributeBgpPeerSegment::SharedDtor(MessageLite& self) {
  LsAttributeBgpPeerSegment& this_ = static_cast<LsAttributeBgpPeerSegment&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.bgp_peer_node_sid_;
  delete this_._impl_.bgp_peer_adjacency_sid_;
  delete this_._impl_.bgp_peer_set_sid_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsAttributeBgpPeerSegment_class_data_ =
        LsAttributeBgpPeerSegment::InternalGenerateClassData_(LsAttributeBgpPeerSegment_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributeBgpPeerSegment::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributeBgpPeerSegment_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsAttributeBgpPeerSegment_class_data_.tc_table);
  return LsAttributeBgpPeerSegment_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttributeBgpPeerSegment::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttributeBgpPeerSegment_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsAttributeBgpPeerSegment_globals_));
  return LsAttributeBgpPeerSegment_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsAttributeBgpPeerSegment::ParseTableT_
    LsAttributeBgpPeerSegment::_table_ =
        LsAttributeBgpPeerSegment::InternalGenerateParseTable_(LsAttributeBgpPeerSegment_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsAttributeBgpPeerSegment::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsAttributeBgpPeerSegment)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.bgp_peer_node_sid_ != nullptr);
      _impl_.bgp_peer_node_sid_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.bgp_peer_adjacency_sid_ != nullptr);
      _impl_.bgp_peer_adjacency_sid_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.bgp_peer_set_sid_ != nullptr);
      _impl_.bgp_peer_set_sid_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsBgpPeerSegmentSID bgp_peer_node_sid = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.bgp_peer_node_sid_, this_._impl_.bgp_peer_node_sid_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsBgpPeerSegmentSID bgp_peer_adjacency_sid = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.bgp_peer_adjacency_sid_, this_._impl_.bgp_peer_adjacency_sid_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsBgpPeerSegmentSID bgp_peer_set_sid = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.bgp_peer_set_sid_, this_._impl_.bgp_peer_set_sid_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsAttributeBgpPeerSegment)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // .apipb.LsBgpPeerSegmentSID bgp_peer_node_sid = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bgp_peer_node_sid_);
    }
    // .apipb.LsBgpPeerSegmentSID bgp_peer_adjacency_sid = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bgp_peer_adjacency_sid_);
    }
    // .apipb.LsBgpPeerSegmentSID bgp_peer_set_sid = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bgp_peer_set_sid_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.bgp_peer_node_sid_ != nullptr);
      if (_this->_impl_.bgp_peer_node_sid_ == nullptr) {
        _this->_impl_.bgp_peer_node_sid_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_node_sid_);
      } else {
        _this->_impl_.bgp_peer_node_sid_->MergeFrom(*from._impl_.bgp_peer_node_sid_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.bgp_peer_adjacency_sid_ != nullptr);
      if (_this->_impl_.bgp_peer_adjacency_sid_ == nullptr) {
        _this->_impl_.bgp_peer_adjacency_sid_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_adjacency_sid_);
      } else {
        _this->_impl_.bgp_peer_adjacency_sid_->MergeFrom(*from._impl_.bgp_peer_adjacency_sid_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.bgp_peer_set_sid_ != nullptr);
      if (_this->_impl_.bgp_peer_set_sid_ == nullptr) {
        _this->_impl_.bgp_peer_set_sid_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_set_sid_);
      } else {
        _this->_impl_.bgp_peer_set_sid_->MergeFrom(*from._impl_.bgp_peer_set_sid_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsAttributeBgpPeerSegment::InternalSwap(LsAttributeBgpPeerSegment* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_set_sid_)
      + sizeof(LsAttributeBgpPeerSegment::_impl_.bgp_peer_set_sid_)
      - PROTOBUF_FIELD_OFFSET(LsAttributeBgpPeerSegment, _impl_.bgp_peer_node_sid_)>(
          reinterpret_cast<char*>(&_impl_.bgp_peer_node_sid_),
          reinterpret_cast<char*>(&other->_impl_.bgp_peer_node_sid_));
}

::google::protobuf::Metadata LsAttributeBgpPeerSegment::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LsAttribute::LsAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.LsAttribute)
}
PROTOBUF_NDEBUG_INLINE LsAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::LsAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

LsAttribute::LsAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LsAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LsAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LsAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.node_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.node_)
                : nullptr;
  _impl_.link_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.link_)
                : nullptr;
  _impl_.prefix_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prefix_)
                : nullptr;
  _impl_.bgp_peer_segment_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_segment_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:apipb.LsAttribute)
}
PROTOBUF_NDEBUG_INLINE LsAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void LsAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, node_),
           0,
           offsetof(Impl_, bgp_peer_segment_) -
               offsetof(Impl_, node_) +
               sizeof(Impl_::bgp_peer_segment_));
}
LsAttribute::~LsAttribute() {
  // @@protoc_insertion_point(destructor:apipb.LsAttribute)
  SharedDtor(*this);
}
inline void LsAttribute::SharedDtor(MessageLite& self) {
  LsAttribute& this_ = static_cast<LsAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.node_;
  delete this_._impl_.link_;
  delete this_._impl_.prefix_;
  delete this_._impl_.bgp_peer_segment_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LsAttribute_class_data_ =
        LsAttribute::InternalGenerateClassData_(LsAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LsAttribute_class_data_.tc_table);
  return LsAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LsAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LsAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LsAttribute_globals_));
  return LsAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LsAttribute::ParseTableT_
    LsAttribute::_table_ =
        LsAttribute::InternalGenerateParseTable_(LsAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LsAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.LsAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.node_ != nullptr);
      _impl_.node_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.link_ != nullptr);
      _impl_.link_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.prefix_ != nullptr);
      _impl_.prefix_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.bgp_peer_segment_ != nullptr);
      _impl_.bgp_peer_segment_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // .apipb.LsAttributeNode node = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.node_, this_._impl_.node_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsAttributeLink link = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.link_, this_._impl_.link_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsAttributePrefix prefix = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.prefix_, this_._impl_.prefix_->GetCachedSize(), target,
        stream);
  }

  // .apipb.LsAttributeBgpPeerSegment bgp_peer_segment = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.bgp_peer_segment_, this_._impl_.bgp_peer_segment_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.LsAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // .apipb.LsAttributeNode node = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.node_);
    }
    // .apipb.LsAttributeLink link = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.link_);
    }
    // .apipb.LsAttributePrefix prefix = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prefix_);
    }
    // .apipb.LsAttributeBgpPeerSegment bgp_peer_segment = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bgp_peer_segment_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.node_ != nullptr);
      if (_this->_impl_.node_ == nullptr) {
        _this->_impl_.node_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.node_);
      } else {
        _this->_impl_.node_->MergeFrom(*from._impl_.node_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.link_ != nullptr);
      if (_this->_impl_.link_ == nullptr) {
        _this->_impl_.link_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.link_);
      } else {
        _this->_impl_.link_->MergeFrom(*from._impl_.link_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.prefix_ != nullptr);
      if (_this->_impl_.prefix_ == nullptr) {
        _this->_impl_.prefix_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prefix_);
      } else {
        _this->_impl_.prefix_->MergeFrom(*from._impl_.prefix_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.bgp_peer_segment_ != nullptr);
      if (_this->_impl_.bgp_peer_segment_ == nullptr) {
        _this->_impl_.bgp_peer_segment_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bgp_peer_segment_);
      } else {
        _this->_impl_.bgp_peer_segment_->MergeFrom(*from._impl_.bgp_peer_segment_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void LsAttribute::InternalSwap(LsAttribute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.bgp_peer_segment_)
      + sizeof(LsAttribute::_impl_.bgp_peer_segment_)
      - PROTOBUF_FIELD_OFFSET(LsAttribute, _impl_.node_)>(
          reinterpret_cast<char*>(&_impl_.node_),
          reinterpret_cast<char*>(&other->_impl_.node_));
}

::google::protobuf::Metadata LsAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

UnknownAttribute::UnknownAttribute(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, UnknownAttribute_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.UnknownAttribute)
}
PROTOBUF_NDEBUG_INLINE UnknownAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::UnknownAttribute& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        value_(arena, from.value_) {}

UnknownAttribute::UnknownAttribute(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const UnknownAttribute& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, UnknownAttribute_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  UnknownAttribute* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, flags_),
           offsetof(Impl_, type_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::type_));

  // @@protoc_insertion_point(copy_constructor:apipb.UnknownAttribute)
}
PROTOBUF_NDEBUG_INLINE UnknownAttribute::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        value_(arena) {}

inline void UnknownAttribute::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, type_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::type_));
}
UnknownAttribute::~UnknownAttribute() {
  // @@protoc_insertion_point(destructor:apipb.UnknownAttribute)
  SharedDtor(*this);
}
inline void UnknownAttribute::SharedDtor(MessageLite& self) {
  UnknownAttribute& this_ = static_cast<UnknownAttribute&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.value_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull UnknownAttribute_class_data_ =
        UnknownAttribute::InternalGenerateClassData_(UnknownAttribute_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
UnknownAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&UnknownAttribute_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(UnknownAttribute_class_data_.tc_table);
  return UnknownAttribute_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
UnknownAttribute::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&UnknownAttribute_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&UnknownAttribute_globals_));
  return UnknownAttribute_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const UnknownAttribute::ParseTableT_
    UnknownAttribute::_table_ =
        UnknownAttribute::InternalGenerateParseTable_(UnknownAttribute_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void UnknownAttribute::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.UnknownAttribute)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.value_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.flags_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.type_) -
        reinterpret_cast<char*>(&_impl_.flags_)) + sizeof(_impl_.type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 flags = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_flags(), target);
    }
  }

  // uint32 type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_type() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_type(), target);
    }
  }

  // bytes value = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_value().empty()) {
      const ::std::string& _s = this_._internal_value();
      target = stream->WriteBytesMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.UnknownAttribute)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // bytes value = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_value().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_value());
      }
    }
    // uint32 flags = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
    // uint32 type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_type() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_type());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_value().empty()) {
        _this->_internal_set_value(from._internal_value());
      } else {
        if (_this->_impl_.value_.IsDefault()) {
          _this->_internal_set_value("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_type() != 0) {
        _this->_impl_.type_ = from._impl_.type_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void UnknownAttribute::InternalSwap(UnknownAttribute* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, &other->_impl_.value_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.type_)
      + sizeof(UnknownAttribute::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(UnknownAttribute, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
}

::google::protobuf::Metadata UnknownAttribute::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRv6StructureSubSubTLV::SRv6StructureSubSubTLV(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6StructureSubSubTLV_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6StructureSubSubTLV)
}
SRv6StructureSubSubTLV::SRv6StructureSubSubTLV(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SRv6StructureSubSubTLV& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6StructureSubSubTLV_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SRv6StructureSubSubTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SRv6StructureSubSubTLV::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, locator_block_length_),
           0,
           offsetof(Impl_, transposition_offset_) -
               offsetof(Impl_, locator_block_length_) +
               sizeof(Impl_::transposition_offset_));
}
SRv6StructureSubSubTLV::~SRv6StructureSubSubTLV() {
  // @@protoc_insertion_point(destructor:apipb.SRv6StructureSubSubTLV)
  SharedDtor(*this);
}
inline void SRv6StructureSubSubTLV::SharedDtor(MessageLite& self) {
  SRv6StructureSubSubTLV& this_ = static_cast<SRv6StructureSubSubTLV&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6StructureSubSubTLV_class_data_ =
        SRv6StructureSubSubTLV::InternalGenerateClassData_(SRv6StructureSubSubTLV_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6StructureSubSubTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6StructureSubSubTLV_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6StructureSubSubTLV_class_data_.tc_table);
  return SRv6StructureSubSubTLV_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6StructureSubSubTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6StructureSubSubTLV_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6StructureSubSubTLV_globals_));
  return SRv6StructureSubSubTLV_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6StructureSubSubTLV::ParseTableT_
    SRv6StructureSubSubTLV::_table_ =
        SRv6StructureSubSubTLV::InternalGenerateParseTable_(SRv6StructureSubSubTLV_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6StructureSubSubTLV::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6StructureSubSubTLV)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    ::memset(&_impl_.locator_block_length_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.transposition_offset_) -
        reinterpret_cast<char*>(&_impl_.locator_block_length_)) + sizeof(_impl_.transposition_offset_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 locator_block_length = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_locator_block_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_locator_block_length(), target);
    }
  }

  // uint32 locator_node_length = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_locator_node_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_locator_node_length(), target);
    }
  }

  // uint32 function_length = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_function_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_function_length(), target);
    }
  }

  // uint32 argument_length = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_argument_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_argument_length(), target);
    }
  }

  // uint32 transposition_length = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_transposition_length() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          5, this_._internal_transposition_length(), target);
    }
  }

  // uint32 transposition_offset = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_transposition_offset() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          6, this_._internal_transposition_offset(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6StructureSubSubTLV)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // uint32 locator_block_length = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_locator_block_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_locator_block_length());
      }
    }
    // uint32 locator_node_length = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_locator_node_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_locator_node_length());
      }
    }
    // uint32 function_length = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_function_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_function_length());
      }
    }
    // uint32 argument_length = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_argument_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_argument_length());
      }
    }
    // uint32 transposition_length = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_transposition_length() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_transposition_length());
      }
    }
    // uint32 transposition_offset = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_transposition_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_transposition_offset());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_locator_block_length() != 0) {
        _this->_impl_.locator_block_length_ = from._impl_.locator_block_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_locator_node_length() != 0) {
        _this->_impl_.locator_node_length_ = from._impl_.locator_node_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_function_length() != 0) {
        _this->_impl_.function_length_ = from._impl_.function_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_argument_length() != 0) {
        _this->_impl_.argument_length_ = from._impl_.argument_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_transposition_length() != 0) {
        _this->_impl_.transposition_length_ = from._impl_.transposition_length_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_transposition_offset() != 0) {
        _this->_impl_.transposition_offset_ = from._impl_.transposition_offset_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRv6StructureSubSubTLV::InternalSwap(SRv6StructureSubSubTLV* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.transposition_offset_)
      + sizeof(SRv6StructureSubSubTLV::_impl_.transposition_offset_)
      - PROTOBUF_FIELD_OFFSET(SRv6StructureSubSubTLV, _impl_.locator_block_length_)>(
          reinterpret_cast<char*>(&_impl_.locator_block_length_),
          reinterpret_cast<char*>(&other->_impl_.locator_block_length_));
}

::google::protobuf::Metadata SRv6StructureSubSubTLV::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SRv6SIDFlags::SRv6SIDFlags(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6SIDFlags_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6SIDFlags)
}
SRv6SIDFlags::SRv6SIDFlags(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SRv6SIDFlags& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6SIDFlags_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SRv6SIDFlags::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6SIDFlags_class_data_ =
        SRv6SIDFlags::InternalGenerateClassData_(SRv6SIDFlags_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6SIDFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6SIDFlags_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6SIDFlags_class_data_.tc_table);
  return SRv6SIDFlags_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6SIDFlags::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6SIDFlags_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6SIDFlags_globals_));
  return SRv6SIDFlags_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6SIDFlags::ParseTableT_
    SRv6SIDFlags::_table_ =
        SRv6SIDFlags::InternalGenerateParseTable_(SRv6SIDFlags_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6SIDFlags::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6SIDFlags)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.flag_1_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bool flag_1 = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_flag_1() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          1, this_._internal_flag_1(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6SIDFlags)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // bool flag_1 = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_flag_1() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (from._internal_flag_1() != 0) {
      _this->_impl_.flag_1_ = from._impl_.flag_1_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata SRv6SIDFlags::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void SRv6TLV::clear_tlv() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tlv_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
SRv6TLV::SRv6TLV(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6TLV_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6TLV)
}
PROTOBUF_NDEBUG_INLINE SRv6TLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRv6TLV& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        tlv_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::SRv6TLV,
              PROTOBUF_FIELD_OFFSET(::apipb::SRv6TLV, _impl_.tlv_)>()
          , from.tlv_
        }
     {}

SRv6TLV::SRv6TLV(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRv6TLV& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6TLV_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRv6TLV* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.SRv6TLV)
}
PROTOBUF_NDEBUG_INLINE SRv6TLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        tlv_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6TLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6TLV, _impl_.tlv_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6TLV_class_data_ =
        SRv6TLV::InternalGenerateClassData_(SRv6TLV_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6TLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6TLV_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6TLV_class_data_.tc_table);
  return SRv6TLV_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6TLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6TLV_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6TLV_globals_));
  return SRv6TLV_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6TLV::ParseTableT_
    SRv6TLV::_table_ =
        SRv6TLV::InternalGenerateParseTable_(SRv6TLV_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6TLV::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6TLV)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.tlv_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6TLV)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .google.protobuf.Any tlv = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_tlv_size();
      for (const auto& msg : this_._internal_tlv()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata SRv6TLV::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

#if defined(PROTOBUF_CUSTOM_VTABLE)
SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse() : SuperType(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_get_class_data()) {}
SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
    : SuperType(arena, SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_get_class_data()) {}
#else   // PROTOBUF_CUSTOM_VTABLE
SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse() : SuperType() {}
SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena) : SuperType(arena) {}
#endif  // PROTOBUF_CUSTOM_VTABLE
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_class_data_ =
        SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::InternalGenerateClassData_(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_globals_._default);

// including ~ all the vtables and everything they use become part
// of the same ~ SCC.
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_class_data_.tc_table);
  return SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_globals_));
  return SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::ParseTableT_
    SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::_table_ =
        SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse::InternalGenerateParseTable_(SRv6InformationSubTLV_SubSubTlvsEntry_DoNotUse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
// ===================================================================

SRv6InformationSubTLV::SRv6InformationSubTLV(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6InformationSubTLV_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6InformationSubTLV)
}
PROTOBUF_NDEBUG_INLINE SRv6InformationSubTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRv6InformationSubTLV& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sid_(arena, from.sid_),
        sub_sub_tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::SRv6InformationSubTLV,
              PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.sub_sub_tlvs_)>()
          , from.sub_sub_tlvs_
        }
     {}

SRv6InformationSubTLV::SRv6InformationSubTLV(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRv6InformationSubTLV& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6InformationSubTLV_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRv6InformationSubTLV* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.flags_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_)
                : nullptr;
  _impl_.endpoint_behavior_ = from._impl_.endpoint_behavior_;

  // @@protoc_insertion_point(copy_constructor:apipb.SRv6InformationSubTLV)
}
PROTOBUF_NDEBUG_INLINE SRv6InformationSubTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sid_(arena),
        sub_sub_tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6InformationSubTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6InformationSubTLV, _impl_.sub_sub_tlvs_)>()
         }
     {}

inline void SRv6InformationSubTLV::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, flags_),
           0,
           offsetof(Impl_, endpoint_behavior_) -
               offsetof(Impl_, flags_) +
               sizeof(Impl_::endpoint_behavior_));
}
SRv6InformationSubTLV::~SRv6InformationSubTLV() {
  // @@protoc_insertion_point(destructor:apipb.SRv6InformationSubTLV)
  SharedDtor(*this);
}
inline void SRv6InformationSubTLV::SharedDtor(MessageLite& self) {
  SRv6InformationSubTLV& this_ = static_cast<SRv6InformationSubTLV&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sid_.Destroy();
  delete this_._impl_.flags_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6InformationSubTLV_class_data_ =
        SRv6InformationSubTLV::InternalGenerateClassData_(SRv6InformationSubTLV_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6InformationSubTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6InformationSubTLV_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6InformationSubTLV_class_data_.tc_table);
  return SRv6InformationSubTLV_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6InformationSubTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6InformationSubTLV_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6InformationSubTLV_globals_));
  return SRv6InformationSubTLV_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6InformationSubTLV::ParseTableT_
    SRv6InformationSubTLV::_table_ =
        SRv6InformationSubTLV::InternalGenerateParseTable_(SRv6InformationSubTLV_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6InformationSubTLV::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6InformationSubTLV)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.sid_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.flags_ != nullptr);
      _impl_.flags_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    _impl_.endpoint_behavior_ = 0u;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.sub_sub_tlvs_.Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // bytes sid = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_sid().empty()) {
      const ::std::string& _s = this_._internal_sid();
      target = stream->WriteBytesMaybeAliased(1, _s, target);
    }
  }

  // .apipb.SRv6SIDFlags flags = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.flags_, this_._impl_.flags_->GetCachedSize(), target,
        stream);
  }

  // uint32 endpoint_behavior = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_endpoint_behavior() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_endpoint_behavior(), target);
    }
  }

  // map<uint32, .apipb.SRv6TLV> sub_sub_tlvs = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (!this_._internal_sub_sub_tlvs().empty()) {
      using MapType = ::google::protobuf::Map<::uint32_t, ::apipb::SRv6TLV>;
      using WireHelper = _pbi::MapEntryFuncs<::uint32_t, ::apipb::SRv6TLV,
                                     _pbi::WireFormatLite::TYPE_UINT32,
                                     _pbi::WireFormatLite::TYPE_MESSAGE>;
      const auto& field = this_._internal_sub_sub_tlvs();

      if (stream->IsSerializationDeterministic() && field.size() > 1) {
        for (const auto& entry : ::google::protobuf::internal::MapSorterFlat<MapType>(field)) {
          target = WireHelper::InternalSerialize(
              4, entry.first, entry.second, target, stream);
        }
      } else {
        for (const auto& entry : field) {
          target = WireHelper::InternalSerialize(
              4, entry.first, entry.second, target, stream);
        }
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6InformationSubTLV)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // bytes sid = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_sid().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_sid());
      }
    }
    // .apipb.SRv6SIDFlags flags = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.flags_);
    }
    // uint32 endpoint_behavior = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_endpoint_behavior() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_endpoint_behavior());
      }
    }
    // map<uint32, .apipb.SRv6TLV> sub_sub_tlvs = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_sub_sub_tlvs_size());
      for (const auto& entry : this_._internal_sub_sub_tlvs()) {
        total_size += _pbi::MapEntryFuncs<::uint32_t, ::apipb::SRv6TLV,
                                       _pbi::WireFormatLite::TYPE_UINT32,
                                       _pbi::WireFormatLite::TYPE_MESSAGE>::ByteSizeLong(entry.first, entry.second);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_sid().empty()) {
        _this->_internal_set_sid(from._internal_sid());
      } else {
        if (_this->_impl_.sid_.IsDefault()) {
          _this->_internal_set_sid("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.flags_ != nullptr);
      if (_this->_impl_.flags_ == nullptr) {
        _this->_impl_.flags_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flags_);
      } else {
        _this->_impl_.flags_->MergeFrom(*from._impl_.flags_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_endpoint_behavior() != 0) {
        _this->_impl_.endpoint_behavior_ = from._impl_.endpoint_behavior_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.sub_sub_tlvs_.MergeFrom(from._impl_.sub_sub_tlvs_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


void SRv6InformationSubTLV::InternalSwap(SRv6InformationSubTLV* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sid_, &other->_impl_.sid_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.endpoint_behavior_)
      + sizeof(SRv6InformationSubTLV::_impl_.endpoint_behavior_)
      - PROTOBUF_FIELD_OFFSET(SRv6InformationSubTLV, _impl_.flags_)>(
          reinterpret_cast<char*>(&_impl_.flags_),
          reinterpret_cast<char*>(&other->_impl_.flags_));
  _impl_.sub_sub_tlvs_.InternalSwap(&other->_impl_.sub_sub_tlvs_);
}

::google::protobuf::Metadata SRv6InformationSubTLV::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

#if defined(PROTOBUF_CUSTOM_VTABLE)
SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse() : SuperType(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_get_class_data()) {}
SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
    : SuperType(arena, SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_get_class_data()) {}
#else   // PROTOBUF_CUSTOM_VTABLE
SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse() : SuperType() {}
SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena) : SuperType(arena) {}
#endif  // PROTOBUF_CUSTOM_VTABLE
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_ =
        SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateClassData_(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_._default);

// including ~ all the vtables and everything they use become part
// of the same ~ SCC.
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.tc_table);
  return SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_));
  return SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::ParseTableT_
    SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::_table_ =
        SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateParseTable_(SRv6L3ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
// ===================================================================

SRv6L3ServiceTLV::SRv6L3ServiceTLV(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6L3ServiceTLV_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6L3ServiceTLV)
}
PROTOBUF_NDEBUG_INLINE SRv6L3ServiceTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRv6L3ServiceTLV& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sub_tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::SRv6L3ServiceTLV,
              PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV, _impl_.sub_tlvs_)>()
          , from.sub_tlvs_
        }
     {}

SRv6L3ServiceTLV::SRv6L3ServiceTLV(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRv6L3ServiceTLV& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6L3ServiceTLV_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRv6L3ServiceTLV* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.SRv6L3ServiceTLV)
}
PROTOBUF_NDEBUG_INLINE SRv6L3ServiceTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sub_tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6L3ServiceTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6L3ServiceTLV, _impl_.sub_tlvs_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6L3ServiceTLV_class_data_ =
        SRv6L3ServiceTLV::InternalGenerateClassData_(SRv6L3ServiceTLV_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L3ServiceTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L3ServiceTLV_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6L3ServiceTLV_class_data_.tc_table);
  return SRv6L3ServiceTLV_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L3ServiceTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L3ServiceTLV_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6L3ServiceTLV_globals_));
  return SRv6L3ServiceTLV_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6L3ServiceTLV::ParseTableT_
    SRv6L3ServiceTLV::_table_ =
        SRv6L3ServiceTLV::InternalGenerateParseTable_(SRv6L3ServiceTLV_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6L3ServiceTLV::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6L3ServiceTLV)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.sub_tlvs_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // map<uint32, .apipb.SRv6TLV> sub_tlvs = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_sub_tlvs().empty()) {
      using MapType = ::google::protobuf::Map<::uint32_t, ::apipb::SRv6TLV>;
      using WireHelper = _pbi::MapEntryFuncs<::uint32_t, ::apipb::SRv6TLV,
                                     _pbi::WireFormatLite::TYPE_UINT32,
                                     _pbi::WireFormatLite::TYPE_MESSAGE>;
      const auto& field = this_._internal_sub_tlvs();

      if (stream->IsSerializationDeterministic() && field.size() > 1) {
        for (const auto& entry : ::google::protobuf::internal::MapSorterFlat<MapType>(field)) {
          target = WireHelper::InternalSerialize(
              1, entry.first, entry.second, target, stream);
        }
      } else {
        for (const auto& entry : field) {
          target = WireHelper::InternalSerialize(
              1, entry.first, entry.second, target, stream);
        }
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6L3ServiceTLV)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // map<uint32, .apipb.SRv6TLV> sub_tlvs = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_sub_tlvs_size());
      for (const auto& entry : this_._internal_sub_tlvs()) {
        total_size += _pbi::MapEntryFuncs<::uint32_t, ::apipb::SRv6TLV,
                                       _pbi::WireFormatLite::TYPE_UINT32,
                                       _pbi::WireFormatLite::TYPE_MESSAGE>::ByteSizeLong(entry.first, entry.second);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_impl_.sub_tlvs_.MergeFrom(from._impl_.sub_tlvs_);
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata SRv6L3ServiceTLV::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

#if defined(PROTOBUF_CUSTOM_VTABLE)
SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse() : SuperType(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_get_class_data()) {}
SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
    : SuperType(arena, SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_get_class_data()) {}
#else   // PROTOBUF_CUSTOM_VTABLE
SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse() : SuperType() {}
SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena) : SuperType(arena) {}
#endif  // PROTOBUF_CUSTOM_VTABLE
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_ =
        SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateClassData_(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_._default);

// including ~ all the vtables and everything they use become part
// of the same ~ SCC.
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.tc_table);
  return SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_));
  return SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::ParseTableT_
    SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::_table_ =
        SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse::InternalGenerateParseTable_(SRv6L2ServiceTLV_SubTlvsEntry_DoNotUse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
// ===================================================================

SRv6L2ServiceTLV::SRv6L2ServiceTLV(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6L2ServiceTLV_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.SRv6L2ServiceTLV)
}
PROTOBUF_NDEBUG_INLINE SRv6L2ServiceTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::SRv6L2ServiceTLV& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sub_tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::SRv6L2ServiceTLV,
              PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV, _impl_.sub_tlvs_)>()
          , from.sub_tlvs_
        }
     {}

SRv6L2ServiceTLV::SRv6L2ServiceTLV(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SRv6L2ServiceTLV& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SRv6L2ServiceTLV_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SRv6L2ServiceTLV* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.SRv6L2ServiceTLV)
}
PROTOBUF_NDEBUG_INLINE SRv6L2ServiceTLV::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sub_tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::SRv6L2ServiceTLV,
            PROTOBUF_FIELD_OFFSET(::apipb::SRv6L2ServiceTLV, _impl_.sub_tlvs_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SRv6L2ServiceTLV_class_data_ =
        SRv6L2ServiceTLV::InternalGenerateClassData_(SRv6L2ServiceTLV_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L2ServiceTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L2ServiceTLV_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SRv6L2ServiceTLV_class_data_.tc_table);
  return SRv6L2ServiceTLV_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SRv6L2ServiceTLV::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SRv6L2ServiceTLV_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SRv6L2ServiceTLV_globals_));
  return SRv6L2ServiceTLV_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SRv6L2ServiceTLV::ParseTableT_
    SRv6L2ServiceTLV::_table_ =
        SRv6L2ServiceTLV::InternalGenerateParseTable_(SRv6L2ServiceTLV_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SRv6L2ServiceTLV::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.SRv6L2ServiceTLV)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.sub_tlvs_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // map<uint32, .apipb.SRv6TLV> sub_tlvs = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_sub_tlvs().empty()) {
      using MapType = ::google::protobuf::Map<::uint32_t, ::apipb::SRv6TLV>;
      using WireHelper = _pbi::MapEntryFuncs<::uint32_t, ::apipb::SRv6TLV,
                                     _pbi::WireFormatLite::TYPE_UINT32,
                                     _pbi::WireFormatLite::TYPE_MESSAGE>;
      const auto& field = this_._internal_sub_tlvs();

      if (stream->IsSerializationDeterministic() && field.size() > 1) {
        for (const auto& entry : ::google::protobuf::internal::MapSorterFlat<MapType>(field)) {
          target = WireHelper::InternalSerialize(
              1, entry.first, entry.second, target, stream);
        }
      } else {
        for (const auto& entry : field) {
          target = WireHelper::InternalSerialize(
              1, entry.first, entry.second, target, stream);
        }
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.SRv6L2ServiceTLV)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // map<uint32, .apipb.SRv6TLV> sub_tlvs = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_sub_tlvs_size());
      for (const auto& entry : this_._internal_sub_tlvs()) {
        total_size += _pbi::MapEntryFuncs<::uint32_t, ::apipb::SRv6TLV,
                                       _pbi::WireFormatLite::TYPE_UINT32,
                                       _pbi::WireFormatLite::TYPE_MESSAGE>::ByteSizeLong(entry.first, entry.second);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_impl_.sub_tlvs_.MergeFrom(from._impl_.sub_tlvs_);
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

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


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

::google::protobuf::Metadata SRv6L2ServiceTLV::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void PrefixSID::clear_tlvs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.tlvs_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
PrefixSID::PrefixSID(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PrefixSID_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:apipb.PrefixSID)
}
PROTOBUF_NDEBUG_INLINE PrefixSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::apipb::PrefixSID& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        tlvs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::apipb::PrefixSID,
              PROTOBUF_FIELD_OFFSET(::apipb::PrefixSID, _impl_.tlvs_)>()
          , from.tlvs_
        }
     {}

PrefixSID::PrefixSID(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PrefixSID& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PrefixSID_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PrefixSID* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:apipb.PrefixSID)
}
PROTOBUF_NDEBUG_INLINE PrefixSID::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        tlvs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::apipb::PrefixSID,
            PROTOBUF_FIELD_OFFSET(::apipb::PrefixSID, _impl_.tlvs_)>()
         }
     {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PrefixSID_class_data_ =
        PrefixSID::InternalGenerateClassData_(PrefixSID_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PrefixSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PrefixSID_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PrefixSID_class_data_.tc_table);
  return PrefixSID_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PrefixSID::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PrefixSID_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&PrefixSID_globals_));
  return PrefixSID_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PrefixSID::ParseTableT_
    PrefixSID::_table_ =
        PrefixSID::InternalGenerateParseTable_(PrefixSID_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PrefixSID::Clear() {
// @@protoc_insertion_point(message_clear_start:apipb.PrefixSID)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.tlvs_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

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

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

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:apipb.PrefixSID)
  return target;
}

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

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .google.protobuf.Any tlvs = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_tlvs_size();
      for (const auto& msg : this_._internal_tlvs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

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

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

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


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

::google::protobuf::Metadata PrefixSID::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace apipb
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_attribute_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
