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

#include "rules.pb.h"

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

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

constexpr DomainListItem::ParseTableT_ DomainListItem::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(DomainListItem, _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::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::url_pattern_index::proto::DomainListItem>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bool exclude = 2;
      {::_pbi::TcParser::FastV8S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(DomainListItem, _impl_.exclude_)}},
      // optional string domain = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(DomainListItem, _impl_.domain_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string domain = 1;
      {PROTOBUF_FIELD_OFFSET(DomainListItem, _impl_.domain_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool exclude = 2;
      {PROTOBUF_FIELD_OFFSET(DomainListItem, _impl_.exclude_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

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

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

constexpr Comment::ParseTableT_ Comment::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Comment, _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::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::url_pattern_index::proto::Comment>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional string text = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Comment, _impl_.text_)}},
      // optional string key = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(Comment, _impl_.key_)}},
      // optional string value = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(Comment, _impl_.value_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string text = 1;
      {PROTOBUF_FIELD_OFFSET(Comment, _impl_.text_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string key = 2;
      {PROTOBUF_FIELD_OFFSET(Comment, _impl_.key_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string value = 3;
      {PROTOBUF_FIELD_OFFSET(Comment, _impl_.value_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

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

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

constexpr UrlRule::ParseTableT_ UrlRule::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(UrlRule, _impl_._has_bits_),
      0, // no _extensions_
      11, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294965248,  // skipmap
      offsetof(ParseTableT_, field_entries),
      11,  // num_field_entries
      7,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::url_pattern_index::proto::UrlRule>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 3, 2,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.semantics_)}},
      // optional .url_pattern_index.proto.SourceType source_type = 2;
      {::_pbi::TcParser::FastEr0S1,
       {16, 4, 3,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.source_type_)}},
      // optional int32 element_types = 3;
      {::_pbi::TcParser::FastV32S1,
       {24, 5, 0,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.element_types_)}},
      // optional int32 activation_types = 4;
      {::_pbi::TcParser::FastV32S1,
       {32, 6, 0,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.activation_types_)}},
      // repeated .url_pattern_index.proto.DomainListItem initiator_domains = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 0, 0,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.initiator_domains_)}},
      // optional .url_pattern_index.proto.UrlPatternType url_pattern_type = 6;
      {::_pbi::TcParser::FastEr0S1,
       {48, 7, 3,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.url_pattern_type_)}},
      // optional .url_pattern_index.proto.AnchorType anchor_left = 7;
      {::_pbi::TcParser::FastEr0S1,
       {56, 8, 3,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.anchor_left_)}},
      // optional .url_pattern_index.proto.AnchorType anchor_right = 8;
      {::_pbi::TcParser::FastEr0S1,
       {64, 9, 3,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.anchor_right_)}},
      // optional bool match_case = 9;
      {::_pbi::TcParser::FastV8S1,
       {72, 10, 0,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.match_case_)}},
      // optional string url_pattern = 10;
      {::_pbi::TcParser::FastBS1,
       {82, 2, 0,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.url_pattern_)}},
      // repeated .url_pattern_index.proto.DomainListItem request_domains = 11;
      {::_pbi::TcParser::FastMtR1,
       {90, 1, 1,
        PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.request_domains_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.semantics_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .url_pattern_index.proto.SourceType source_type = 2;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.source_type_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional int32 element_types = 3;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.element_types_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 activation_types = 4;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.activation_types_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // repeated .url_pattern_index.proto.DomainListItem initiator_domains = 5;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.initiator_domains_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .url_pattern_index.proto.UrlPatternType url_pattern_type = 6;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.url_pattern_type_), _Internal::kHasBitsOffset + 7, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .url_pattern_index.proto.AnchorType anchor_left = 7;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.anchor_left_), _Internal::kHasBitsOffset + 8, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .url_pattern_index.proto.AnchorType anchor_right = 8;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.anchor_right_), _Internal::kHasBitsOffset + 9, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional bool match_case = 9;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.match_case_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional string url_pattern = 10;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.url_pattern_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated .url_pattern_index.proto.DomainListItem request_domains = 11;
      {PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.request_domains_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::url_pattern_index::proto::DomainListItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::url_pattern_index::proto::DomainListItem_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::url_pattern_index::proto::DomainListItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::url_pattern_index::proto::DomainListItem_globals_},
        #endif
        {0, 2},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
    }},
    {{
    }},
  };
}


inline constexpr UrlRule::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        initiator_domains_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::UrlRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::UrlRule, _impl_.initiator_domains_)>()
         }
        ,
        request_domains_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::UrlRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::UrlRule, _impl_.request_domains_)>()
         }
        ,
        url_pattern_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        semantics_{static_cast< ::url_pattern_index::proto::RuleSemantics >(0)},
        source_type_{static_cast< ::url_pattern_index::proto::SourceType >(0)},
        element_types_{0},
        activation_types_{0},
        url_pattern_type_{static_cast< ::url_pattern_index::proto::UrlPatternType >(0)},
        anchor_left_{static_cast< ::url_pattern_index::proto::AnchorType >(0)},
        anchor_right_{static_cast< ::url_pattern_index::proto::AnchorType >(0)},
        match_case_{false} {}

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

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

constexpr StyleRule::ParseTableT_ StyleRule::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(StyleRule, _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
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::url_pattern_index::proto::StyleRule>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 4, 2,
        PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.semantics_)}},
      // repeated .url_pattern_index.proto.DomainListItem domains = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.domains_)}},
      // optional string selector = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 3, 0,
        PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.selector_)}},
      // repeated string classes = 4;
      {::_pbi::TcParser::FastBR1,
       {34, 1, 0,
        PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.classes_)}},
      // repeated string ids = 5;
      {::_pbi::TcParser::FastBR1,
       {42, 2, 0,
        PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.ids_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
      {PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.semantics_), _Internal::kHasBitsOffset + 4, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // repeated .url_pattern_index.proto.DomainListItem domains = 2;
      {PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.domains_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string selector = 3;
      {PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.selector_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string classes = 4;
      {PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.classes_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // repeated string ids = 5;
      {PROTOBUF_FIELD_OFFSET(StyleRule, _impl_.ids_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::url_pattern_index::proto::DomainListItem>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::url_pattern_index::proto::DomainListItem_globals_},
        #endif
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr StyleRule::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        domains_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::StyleRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::StyleRule, _impl_.domains_)>()
         }
        ,
        classes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::StyleRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::StyleRule, _impl_.classes_)>()
         }
        ,
        ids_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::StyleRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::StyleRule, _impl_.ids_)>()
         }
        ,
        selector_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        semantics_{static_cast< ::url_pattern_index::proto::RuleSemantics >(0)} {}

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

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

constexpr FilteringRules::ParseTableT_ FilteringRules::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(FilteringRules, _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::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::url_pattern_index::proto::FilteringRules>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .url_pattern_index.proto.StyleRule style_rules = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(FilteringRules, _impl_.style_rules_)}},
      // repeated .url_pattern_index.proto.UrlRule url_rules = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(FilteringRules, _impl_.url_rules_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .url_pattern_index.proto.UrlRule url_rules = 1;
      {PROTOBUF_FIELD_OFFSET(FilteringRules, _impl_.url_rules_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .url_pattern_index.proto.StyleRule style_rules = 2;
      {PROTOBUF_FIELD_OFFSET(FilteringRules, _impl_.style_rules_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::url_pattern_index::proto::UrlRule>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::url_pattern_index::proto::UrlRule_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::url_pattern_index::proto::StyleRule>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::url_pattern_index::proto::StyleRule_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr FilteringRules::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        url_rules_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::FilteringRules,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::FilteringRules, _impl_.url_rules_)>()
         }
        ,
        style_rules_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::FilteringRules,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::FilteringRules, _impl_.style_rules_)>()
         }
     {}

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

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST FilteringRulesGlobalsTypeInternal FilteringRules_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* FilteringRules_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return FilteringRules_globals_.GetClassData();
#else
  return FilteringRules_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace proto
}  // namespace url_pattern_index
namespace url_pattern_index {
namespace proto {
PROTOBUF_CONSTINIT const uint32_t RuleType_internal_data_[] = {
    262144u, 0u, };
static const char RuleType_names[] = {
    "RULE_TYPE_COMMENT"
    "RULE_TYPE_STYLE"
    "RULE_TYPE_UNSPECIFIED"
    "RULE_TYPE_URL"
};

static const ::google::protobuf::internal::EnumEntry RuleType_entries[] = {
    {{&RuleType_names[0], 17}, 1},
    {{&RuleType_names[17], 15}, 3},
    {{&RuleType_names[32], 21}, 0},
    {{&RuleType_names[53], 13}, 2},
};

static const int RuleType_entries_by_number[] = {
    2,  // 0 -> RULE_TYPE_UNSPECIFIED
    0,  // 1 -> RULE_TYPE_COMMENT
    3,  // 2 -> RULE_TYPE_URL
    1,  // 3 -> RULE_TYPE_STYLE
};

bool RuleType_Parse(::absl::string_view name,
                                  RuleType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      RuleType_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<RuleType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    RuleType_strings[4] = {};

const ::std::string& RuleType_Name(RuleType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      RuleType_entries, RuleType_entries_by_number, 4,
      RuleType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(RuleType_entries,
                                  RuleType_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : RuleType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t UrlPatternType_internal_data_[] = {
    262144u, 0u, };
static const char UrlPatternType_names[] = {
    "URL_PATTERN_TYPE_REGEXP"
    "URL_PATTERN_TYPE_SUBSTRING"
    "URL_PATTERN_TYPE_UNSPECIFIED"
    "URL_PATTERN_TYPE_WILDCARDED"
};

static const ::google::protobuf::internal::EnumEntry UrlPatternType_entries[] = {
    {{&UrlPatternType_names[0], 23}, 3},
    {{&UrlPatternType_names[23], 26}, 1},
    {{&UrlPatternType_names[49], 28}, 0},
    {{&UrlPatternType_names[77], 27}, 2},
};

static const int UrlPatternType_entries_by_number[] = {
    2,  // 0 -> URL_PATTERN_TYPE_UNSPECIFIED
    1,  // 1 -> URL_PATTERN_TYPE_SUBSTRING
    3,  // 2 -> URL_PATTERN_TYPE_WILDCARDED
    0,  // 3 -> URL_PATTERN_TYPE_REGEXP
};

bool UrlPatternType_Parse(::absl::string_view name,
                                  UrlPatternType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      UrlPatternType_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<UrlPatternType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    UrlPatternType_strings[4] = {};

const ::std::string& UrlPatternType_Name(UrlPatternType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      UrlPatternType_entries, UrlPatternType_entries_by_number, 4,
      UrlPatternType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(UrlPatternType_entries,
                                  UrlPatternType_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : UrlPatternType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t AnchorType_internal_data_[] = {
    262144u, 0u, };
static const char AnchorType_names[] = {
    "ANCHOR_TYPE_BOUNDARY"
    "ANCHOR_TYPE_NONE"
    "ANCHOR_TYPE_SUBDOMAIN"
    "ANCHOR_TYPE_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry AnchorType_entries[] = {
    {{&AnchorType_names[0], 20}, 2},
    {{&AnchorType_names[20], 16}, 1},
    {{&AnchorType_names[36], 21}, 3},
    {{&AnchorType_names[57], 23}, 0},
};

static const int AnchorType_entries_by_number[] = {
    3,  // 0 -> ANCHOR_TYPE_UNSPECIFIED
    1,  // 1 -> ANCHOR_TYPE_NONE
    0,  // 2 -> ANCHOR_TYPE_BOUNDARY
    2,  // 3 -> ANCHOR_TYPE_SUBDOMAIN
};

bool AnchorType_Parse(::absl::string_view name,
                                  AnchorType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      AnchorType_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<AnchorType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    AnchorType_strings[4] = {};

const ::std::string& AnchorType_Name(AnchorType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      AnchorType_entries, AnchorType_entries_by_number, 4,
      AnchorType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(AnchorType_entries,
                                  AnchorType_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : AnchorType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ElementType_internal_data_[] = {
    196608u, 589888u, 536879138u, 536870912u, 4096u, 1024u, 16384u, 256u, 2048u, 8192u, 32767u, 128u, 512u, };
static const char ElementType_names[] = {
    "ELEMENT_TYPE_ALL"
    "ELEMENT_TYPE_FONT"
    "ELEMENT_TYPE_IMAGE"
    "ELEMENT_TYPE_MAX"
    "ELEMENT_TYPE_MEDIA"
    "ELEMENT_TYPE_OBJECT"
    "ELEMENT_TYPE_OBJECT_SUBREQUEST"
    "ELEMENT_TYPE_OTHER"
    "ELEMENT_TYPE_PING"
    "ELEMENT_TYPE_POPUP"
    "ELEMENT_TYPE_SCRIPT"
    "ELEMENT_TYPE_STYLESHEET"
    "ELEMENT_TYPE_SUBDOCUMENT"
    "ELEMENT_TYPE_UNSPECIFIED"
    "ELEMENT_TYPE_WEBBUNDLE"
    "ELEMENT_TYPE_WEBSOCKET"
    "ELEMENT_TYPE_WEBTRANSPORT"
    "ELEMENT_TYPE_XMLHTTPREQUEST"
};

static const ::google::protobuf::internal::EnumEntry ElementType_entries[] = {
    {{&ElementType_names[0], 16}, 32767},
    {{&ElementType_names[16], 17}, 1024},
    {{&ElementType_names[33], 18}, 4},
    {{&ElementType_names[51], 16}, 16384},
    {{&ElementType_names[67], 18}, 512},
    {{&ElementType_names[85], 19}, 16},
    {{&ElementType_names[104], 30}, 64},
    {{&ElementType_names[134], 18}, 1},
    {{&ElementType_names[152], 17}, 256},
    {{&ElementType_names[169], 18}, 2048},
    {{&ElementType_names[187], 19}, 2},
    {{&ElementType_names[206], 23}, 8},
    {{&ElementType_names[229], 24}, 128},
    {{&ElementType_names[253], 24}, 0},
    {{&ElementType_names[277], 22}, 16384},
    {{&ElementType_names[299], 22}, 4096},
    {{&ElementType_names[321], 25}, 8192},
    {{&ElementType_names[346], 27}, 32},
};

static const int ElementType_entries_by_number[] = {
    13,  // 0 -> ELEMENT_TYPE_UNSPECIFIED
    7,  // 1 -> ELEMENT_TYPE_OTHER
    10,  // 2 -> ELEMENT_TYPE_SCRIPT
    2,  // 4 -> ELEMENT_TYPE_IMAGE
    11,  // 8 -> ELEMENT_TYPE_STYLESHEET
    5,  // 16 -> ELEMENT_TYPE_OBJECT
    17,  // 32 -> ELEMENT_TYPE_XMLHTTPREQUEST
    6,  // 64 -> ELEMENT_TYPE_OBJECT_SUBREQUEST
    12,  // 128 -> ELEMENT_TYPE_SUBDOCUMENT
    8,  // 256 -> ELEMENT_TYPE_PING
    4,  // 512 -> ELEMENT_TYPE_MEDIA
    1,  // 1024 -> ELEMENT_TYPE_FONT
    9,  // 2048 -> ELEMENT_TYPE_POPUP
    15,  // 4096 -> ELEMENT_TYPE_WEBSOCKET
    16,  // 8192 -> ELEMENT_TYPE_WEBTRANSPORT
    3,  // 16384 -> ELEMENT_TYPE_WEBBUNDLE
    0,  // 32767 -> ELEMENT_TYPE_ALL
};

bool ElementType_Parse(::absl::string_view name,
                                  ElementType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ElementType_entries, 18, name, &int_value);
  if (success) {
    *value = static_cast<ElementType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ElementType_strings[17] = {};

const ::std::string& ElementType_Name(ElementType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ElementType_entries, ElementType_entries_by_number, 17,
      ElementType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ElementType_entries,
                                  ElementType_entries_by_number,
                                  17, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ElementType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ActivationType_internal_data_[] = {
    196608u, 32u, 4130u, };
static const char ActivationType_names[] = {
    "ACTIVATION_TYPE_ALL"
    "ACTIVATION_TYPE_DOCUMENT"
    "ACTIVATION_TYPE_ELEMHIDE"
    "ACTIVATION_TYPE_GENERICBLOCK"
    "ACTIVATION_TYPE_GENERICHIDE"
    "ACTIVATION_TYPE_MAX"
    "ACTIVATION_TYPE_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry ActivationType_entries[] = {
    {{&ActivationType_names[0], 19}, 15},
    {{&ActivationType_names[19], 24}, 1},
    {{&ActivationType_names[43], 24}, 2},
    {{&ActivationType_names[67], 28}, 8},
    {{&ActivationType_names[95], 27}, 4},
    {{&ActivationType_names[122], 19}, 8},
    {{&ActivationType_names[141], 27}, 0},
};

static const int ActivationType_entries_by_number[] = {
    6,  // 0 -> ACTIVATION_TYPE_UNSPECIFIED
    1,  // 1 -> ACTIVATION_TYPE_DOCUMENT
    2,  // 2 -> ACTIVATION_TYPE_ELEMHIDE
    4,  // 4 -> ACTIVATION_TYPE_GENERICHIDE
    3,  // 8 -> ACTIVATION_TYPE_GENERICBLOCK
    0,  // 15 -> ACTIVATION_TYPE_ALL
};

bool ActivationType_Parse(::absl::string_view name,
                                  ActivationType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      ActivationType_entries, 7, name, &int_value);
  if (success) {
    *value = static_cast<ActivationType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    ActivationType_strings[6] = {};

const ::std::string& ActivationType_Name(ActivationType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ActivationType_entries, ActivationType_entries_by_number, 6,
      ActivationType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ActivationType_entries,
                                  ActivationType_entries_by_number,
                                  6, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ActivationType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t RuleSemantics_internal_data_[] = {
    196608u, 0u, };
static const char RuleSemantics_names[] = {
    "RULE_SEMANTICS_ALLOWLIST"
    "RULE_SEMANTICS_BLOCKLIST"
    "RULE_SEMANTICS_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry RuleSemantics_entries[] = {
    {{&RuleSemantics_names[0], 24}, 2},
    {{&RuleSemantics_names[24], 24}, 1},
    {{&RuleSemantics_names[48], 26}, 0},
};

static const int RuleSemantics_entries_by_number[] = {
    2,  // 0 -> RULE_SEMANTICS_UNSPECIFIED
    1,  // 1 -> RULE_SEMANTICS_BLOCKLIST
    0,  // 2 -> RULE_SEMANTICS_ALLOWLIST
};

bool RuleSemantics_Parse(::absl::string_view name,
                                  RuleSemantics* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      RuleSemantics_entries, 3, name, &int_value);
  if (success) {
    *value = static_cast<RuleSemantics>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    RuleSemantics_strings[3] = {};

const ::std::string& RuleSemantics_Name(RuleSemantics value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      RuleSemantics_entries, RuleSemantics_entries_by_number, 3,
      RuleSemantics_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(RuleSemantics_entries,
                                  RuleSemantics_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : RuleSemantics_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t SourceType_internal_data_[] = {
    262144u, 0u, };
static const char SourceType_names[] = {
    "SOURCE_TYPE_ANY"
    "SOURCE_TYPE_FIRST_PARTY"
    "SOURCE_TYPE_THIRD_PARTY"
    "SOURCE_TYPE_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry SourceType_entries[] = {
    {{&SourceType_names[0], 15}, 1},
    {{&SourceType_names[15], 23}, 3},
    {{&SourceType_names[38], 23}, 2},
    {{&SourceType_names[61], 23}, 0},
};

static const int SourceType_entries_by_number[] = {
    3,  // 0 -> SOURCE_TYPE_UNSPECIFIED
    0,  // 1 -> SOURCE_TYPE_ANY
    2,  // 2 -> SOURCE_TYPE_THIRD_PARTY
    1,  // 3 -> SOURCE_TYPE_FIRST_PARTY
};

bool SourceType_Parse(::absl::string_view name,
                                  SourceType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      SourceType_entries, 4, name, &int_value);
  if (success) {
    *value = static_cast<SourceType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    SourceType_strings[4] = {};

const ::std::string& SourceType_Name(SourceType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      SourceType_entries, SourceType_entries_by_number, 4,
      SourceType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(SourceType_entries,
                                  SourceType_entries_by_number,
                                  4, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : SourceType_strings[idx].get();
}
// ===================================================================

DomainListItem::DomainListItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, DomainListItem_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:url_pattern_index.proto.DomainListItem)
}
PROTOBUF_NDEBUG_INLINE DomainListItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::url_pattern_index::proto::DomainListItem& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        domain_(arena, from.domain_) {}

DomainListItem::DomainListItem(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const DomainListItem& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, DomainListItem_get_class_data()) {

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

  // @@protoc_insertion_point(copy_constructor:url_pattern_index.proto.DomainListItem)
}
PROTOBUF_NDEBUG_INLINE DomainListItem::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        domain_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite DomainListItem_class_data_ =
    DomainListItem::InternalGenerateClassData_(DomainListItem_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DomainListItem::GetClassData() const {
  return DomainListItem_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DomainListItem::GetClassData() const {
  return DomainListItem_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const DomainListItem::ParseTableT_
    DomainListItem::_table_ =
        DomainListItem::InternalGenerateParseTable_(DomainListItem_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void DomainListItem::Clear() {
// @@protoc_insertion_point(message_clear_start:url_pattern_index.proto.DomainListItem)
  ::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_.domain_.ClearNonDefaultToEmpty();
  }
  _impl_.exclude_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string domain = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_domain();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional bool exclude = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_exclude(), target);
  }

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DomainListItem::ByteSizeLong(const MessageLite& base) {
  const DomainListItem& this_ = static_cast<const DomainListItem&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DomainListItem::ByteSizeLong() const {
  const DomainListItem& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:url_pattern_index.proto.DomainListItem)
  ::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];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
   {
    // optional string domain = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_domain());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void DomainListItem::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<DomainListItem*>(&to_msg);
  auto& from = static_cast<const DomainListItem&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:url_pattern_index.proto.DomainListItem)
  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_set_domain(from._internal_domain());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.exclude_ = from._impl_.exclude_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void DomainListItem::InternalSwap(DomainListItem* 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_.domain_, &other->_impl_.domain_, arena);
  swap(_impl_.exclude_, other->_impl_.exclude_);
}

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

UrlRule::UrlRule(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, UrlRule_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:url_pattern_index.proto.UrlRule)
}
PROTOBUF_NDEBUG_INLINE UrlRule::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::url_pattern_index::proto::UrlRule& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        initiator_domains_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::url_pattern_index::proto::UrlRule,
              PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::UrlRule, _impl_.initiator_domains_)>()
          , from.initiator_domains_
        }
        ,
        request_domains_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::url_pattern_index::proto::UrlRule,
              PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::UrlRule, _impl_.request_domains_)>()
          , from.request_domains_
        }
        ,
        url_pattern_(arena, from.url_pattern_) {}

UrlRule::UrlRule(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const UrlRule& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, UrlRule_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  UrlRule* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, semantics_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, semantics_),
           offsetof(Impl_, match_case_) -
               offsetof(Impl_, semantics_) +
               sizeof(Impl_::match_case_));

  // @@protoc_insertion_point(copy_constructor:url_pattern_index.proto.UrlRule)
}
PROTOBUF_NDEBUG_INLINE UrlRule::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        initiator_domains_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::UrlRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::UrlRule, _impl_.initiator_domains_)>()
         }
        ,
        request_domains_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::url_pattern_index::proto::UrlRule,
            PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::UrlRule, _impl_.request_domains_)>()
         }
        ,
        url_pattern_(arena) {}

inline void UrlRule::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, semantics_),
           0,
           offsetof(Impl_, match_case_) -
               offsetof(Impl_, semantics_) +
               sizeof(Impl_::match_case_));
}
UrlRule::~UrlRule() {
  // @@protoc_insertion_point(destructor:url_pattern_index.proto.UrlRule)
  SharedDtor(*this);
}
inline void UrlRule::SharedDtor(MessageLite& self) {
  UrlRule& this_ = static_cast<UrlRule&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.url_pattern_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite UrlRule_class_data_ =
    UrlRule::InternalGenerateClassData_(UrlRule_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
UrlRule::GetClassData() const {
  return UrlRule_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
UrlRule::GetClassData() const {
  return UrlRule_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const UrlRule::ParseTableT_
    UrlRule::_table_ =
        UrlRule::InternalGenerateParseTable_(UrlRule_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void UrlRule::Clear() {
// @@protoc_insertion_point(message_clear_start:url_pattern_index.proto.UrlRule)
  ::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_.initiator_domains_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.request_domains_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.url_pattern_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f8U)) {
    ::memset(&_impl_.semantics_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.url_pattern_type_) -
        reinterpret_cast<char*>(&_impl_.semantics_)) + sizeof(_impl_.url_pattern_type_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000700U)) {
    ::memset(&_impl_.anchor_left_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.match_case_) -
        reinterpret_cast<char*>(&_impl_.anchor_left_)) + sizeof(_impl_.match_case_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_semantics(), target);
  }

  // optional .url_pattern_index.proto.SourceType source_type = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_source_type(), target);
  }

  // optional int32 element_types = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_element_types(), target);
  }

  // optional int32 activation_types = 4;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_activation_types(), target);
  }

  // repeated .url_pattern_index.proto.DomainListItem initiator_domains = 5;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_initiator_domains_size());
         i < n; i++) {
      const auto& repfield = this_._internal_initiator_domains().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional .url_pattern_index.proto.UrlPatternType url_pattern_type = 6;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this_._internal_url_pattern_type(), target);
  }

  // optional .url_pattern_index.proto.AnchorType anchor_left = 7;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        7, this_._internal_anchor_left(), target);
  }

  // optional .url_pattern_index.proto.AnchorType anchor_right = 8;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        8, this_._internal_anchor_right(), target);
  }

  // optional bool match_case = 9;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        9, this_._internal_match_case(), target);
  }

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

  // repeated .url_pattern_index.proto.DomainListItem request_domains = 11;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_request_domains_size());
         i < n; i++) {
      const auto& repfield = this_._internal_request_domains().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              11, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t UrlRule::ByteSizeLong(const MessageLite& base) {
  const UrlRule& this_ = static_cast<const UrlRule&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t UrlRule::ByteSizeLong() const {
  const UrlRule& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:url_pattern_index.proto.UrlRule)
  ::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];
  total_size += static_cast<bool>(0x00000400U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .url_pattern_index.proto.DomainListItem initiator_domains = 5;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_initiator_domains_size();
      for (const auto& msg : this_._internal_initiator_domains()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .url_pattern_index.proto.DomainListItem request_domains = 11;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_request_domains_size();
      for (const auto& msg : this_._internal_request_domains()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional string url_pattern = 10;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_url_pattern());
    }
    // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_semantics());
    }
    // optional .url_pattern_index.proto.SourceType source_type = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_source_type());
    }
    // optional int32 element_types = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_element_types());
    }
    // optional int32 activation_types = 4;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_activation_types());
    }
    // optional .url_pattern_index.proto.UrlPatternType url_pattern_type = 6;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_url_pattern_type());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    // optional .url_pattern_index.proto.AnchorType anchor_left = 7;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_anchor_left());
    }
    // optional .url_pattern_index.proto.AnchorType anchor_right = 8;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_anchor_right());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void UrlRule::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<UrlRule*>(&to_msg);
  auto& from = static_cast<const UrlRule&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:url_pattern_index.proto.UrlRule)
  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_initiator_domains()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_initiator_domains());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_request_domains()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_request_domains());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_url_pattern(from._internal_url_pattern());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.semantics_ = from._impl_.semantics_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.source_type_ = from._impl_.source_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.element_types_ = from._impl_.element_types_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.activation_types_ = from._impl_.activation_types_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.url_pattern_type_ = from._impl_.url_pattern_type_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000700U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.anchor_left_ = from._impl_.anchor_left_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.anchor_right_ = from._impl_.anchor_right_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.match_case_ = from._impl_.match_case_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void UrlRule::InternalSwap(UrlRule* 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_.initiator_domains_.InternalSwap(&other->_impl_.initiator_domains_);
  _impl_.request_domains_.InternalSwap(&other->_impl_.request_domains_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.url_pattern_, &other->_impl_.url_pattern_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.match_case_)
      + sizeof(UrlRule::_impl_.match_case_)
      - PROTOBUF_FIELD_OFFSET(UrlRule, _impl_.semantics_)>(
          reinterpret_cast<char*>(&_impl_.semantics_),
          reinterpret_cast<char*>(&other->_impl_.semantics_));
}

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

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

StyleRule::StyleRule(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const StyleRule& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, StyleRule_get_class_data()) {

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite StyleRule_class_data_ =
    StyleRule::InternalGenerateClassData_(StyleRule_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
StyleRule::GetClassData() const {
  return StyleRule_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
StyleRule::GetClassData() const {
  return StyleRule_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const StyleRule::ParseTableT_
    StyleRule::_table_ =
        StyleRule::InternalGenerateParseTable_(StyleRule_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void StyleRule::Clear() {
// @@protoc_insertion_point(message_clear_start:url_pattern_index.proto.StyleRule)
  ::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_.domains_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.classes_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.ids_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.selector_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.semantics_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_semantics(), target);
  }

  // repeated .url_pattern_index.proto.DomainListItem domains = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_domains_size());
         i < n; i++) {
      const auto& repfield = this_._internal_domains().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

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

  // repeated string classes = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_classes_size(); i < n; ++i) {
      const auto& s = this_._internal_classes().Get(i);
      target = stream->WriteString(4, s, target);
    }
  }

  // repeated string ids = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (int i = 0, n = this_._internal_ids_size(); i < n; ++i) {
      const auto& s = this_._internal_ids().Get(i);
      target = stream->WriteString(5, s, target);
    }
  }

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t StyleRule::ByteSizeLong(const MessageLite& base) {
  const StyleRule& this_ = static_cast<const StyleRule&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t StyleRule::ByteSizeLong() const {
  const StyleRule& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:url_pattern_index.proto.StyleRule)
  ::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)) {
    // repeated .url_pattern_index.proto.DomainListItem domains = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_domains_size();
      for (const auto& msg : this_._internal_domains()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated string classes = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_classes().size());
      for (int i = 0, n = this_._internal_classes().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_classes().Get(i));
      }
    }
    // repeated string ids = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      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));
      }
    }
    // optional string selector = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_selector());
    }
    // optional .url_pattern_index.proto.RuleSemantics semantics = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_semantics());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void StyleRule::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<StyleRule*>(&to_msg);
  auto& from = static_cast<const StyleRule&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:url_pattern_index.proto.StyleRule)
  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)) {
      _this->_internal_mutable_domains()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_domains());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_classes()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_classes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_ids()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_ids());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_selector(from._internal_selector());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.semantics_ = from._impl_.semantics_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void StyleRule::InternalSwap(StyleRule* 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_.domains_.InternalSwap(&other->_impl_.domains_);
  _impl_.classes_.InternalSwap(&other->_impl_.classes_);
  _impl_.ids_.InternalSwap(&other->_impl_.ids_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.selector_, &other->_impl_.selector_, arena);
  swap(_impl_.semantics_, other->_impl_.semantics_);
}

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

Comment::Comment(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Comment_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:url_pattern_index.proto.Comment)
}
PROTOBUF_NDEBUG_INLINE Comment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::url_pattern_index::proto::Comment& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        text_(arena, from.text_),
        key_(arena, from.key_),
        value_(arena, from.value_) {}

Comment::Comment(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Comment& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Comment_get_class_data()) {

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

  // @@protoc_insertion_point(copy_constructor:url_pattern_index.proto.Comment)
}
PROTOBUF_NDEBUG_INLINE Comment::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        text_(arena),
        key_(arena),
        value_(arena) {}

inline void Comment::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Comment::~Comment() {
  // @@protoc_insertion_point(destructor:url_pattern_index.proto.Comment)
  SharedDtor(*this);
}
inline void Comment::SharedDtor(MessageLite& self) {
  Comment& this_ = static_cast<Comment&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.text_.Destroy();
  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::ClassDataLite Comment_class_data_ =
    Comment::InternalGenerateClassData_(Comment_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Comment::GetClassData() const {
  return Comment_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Comment::GetClassData() const {
  return Comment_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Comment::ParseTableT_
    Comment::_table_ =
        Comment::InternalGenerateParseTable_(Comment_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Comment::Clear() {
// @@protoc_insertion_point(message_clear_start:url_pattern_index.proto.Comment)
  ::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_.text_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.key_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.value_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string text = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_text();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string key = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_key();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

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

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

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Comment::ByteSizeLong(const MessageLite& base) {
  const Comment& this_ = static_cast<const Comment&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Comment::ByteSizeLong() const {
  const Comment& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:url_pattern_index.proto.Comment)
  ::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)) {
    // optional string text = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_text());
    }
    // optional string key = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_key());
    }
    // optional string value = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_value());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void Comment::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Comment*>(&to_msg);
  auto& from = static_cast<const Comment&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:url_pattern_index.proto.Comment)
  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_set_text(from._internal_text());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_key(from._internal_key());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_value(from._internal_value());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void Comment::InternalSwap(Comment* 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_.text_, &other->_impl_.text_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.key_, &other->_impl_.key_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.value_, &other->_impl_.value_, arena);
}

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

FilteringRules::FilteringRules(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FilteringRules_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:url_pattern_index.proto.FilteringRules)
}
PROTOBUF_NDEBUG_INLINE FilteringRules::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::url_pattern_index::proto::FilteringRules& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        url_rules_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::url_pattern_index::proto::FilteringRules,
              PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::FilteringRules, _impl_.url_rules_)>()
          , from.url_rules_
        }
        ,
        style_rules_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::url_pattern_index::proto::FilteringRules,
              PROTOBUF_FIELD_OFFSET(::url_pattern_index::proto::FilteringRules, _impl_.style_rules_)>()
          , from.style_rules_
        }
     {}

FilteringRules::FilteringRules(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FilteringRules& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, FilteringRules_get_class_data()) {

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

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite FilteringRules_class_data_ =
    FilteringRules::InternalGenerateClassData_(FilteringRules_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FilteringRules::GetClassData() const {
  return FilteringRules_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FilteringRules::GetClassData() const {
  return FilteringRules_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const FilteringRules::ParseTableT_
    FilteringRules::_table_ =
        FilteringRules::InternalGenerateParseTable_(FilteringRules_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void FilteringRules::Clear() {
// @@protoc_insertion_point(message_clear_start:url_pattern_index.proto.FilteringRules)
  ::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_.url_rules_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.style_rules_.Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .url_pattern_index.proto.UrlRule url_rules = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_url_rules_size());
         i < n; i++) {
      const auto& repfield = this_._internal_url_rules().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .url_pattern_index.proto.StyleRule style_rules = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_style_rules_size());
         i < n; i++) {
      const auto& repfield = this_._internal_style_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 = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:url_pattern_index.proto.FilteringRules)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FilteringRules::ByteSizeLong(const MessageLite& base) {
  const FilteringRules& this_ = static_cast<const FilteringRules&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FilteringRules::ByteSizeLong() const {
  const FilteringRules& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:url_pattern_index.proto.FilteringRules)
  ::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 .url_pattern_index.proto.UrlRule url_rules = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_url_rules_size();
      for (const auto& msg : this_._internal_url_rules()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .url_pattern_index.proto.StyleRule style_rules = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_style_rules_size();
      for (const auto& msg : this_._internal_style_rules()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void FilteringRules::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<FilteringRules*>(&to_msg);
  auto& from = static_cast<const FilteringRules&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:url_pattern_index.proto.FilteringRules)
  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_url_rules()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_url_rules());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_style_rules()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_style_rules());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void FilteringRules::InternalSwap(FilteringRules* 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_.url_rules_.InternalSwap(&other->_impl_.url_rules_);
  _impl_.style_rules_.InternalSwap(&other->_impl_.style_rules_);
}

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