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

#include "components/optimization_guide/proto/hints.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 optimization_guide {
namespace proto {
class UrlInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<UrlInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(UrlInfo, _impl_._has_bits_);
};

constexpr UrlInfo::ParseTableT_ UrlInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(UrlInfo, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::UrlInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string url = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(UrlInfo, _impl_.url_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string url = 1;
      {PROTOBUF_FIELD_OFFSET(UrlInfo, _impl_.url_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


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

template <typename>
constexpr UrlInfo::UrlInfo(::_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 UrlInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) UrlInfo(arena);
}
constexpr auto UrlInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(UrlInfo), alignof(UrlInfo));
}
constexpr auto UrlInfo::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
          &UrlInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<UrlInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &UrlInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<UrlInfo>(), &UrlInfo::ByteSizeLong,
              &UrlInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(UrlInfo, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.UrlInfo",
  };
}
struct UrlInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr UrlInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 UrlInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(UrlInfo::InternalGenerateClassData_(
            _default, &UrlInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<UrlInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~UrlInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) UrlInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<UrlInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(UrlInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PageInsightsHubRequestContextMetadata::ParseTableT_ PageInsightsHubRequestContextMetadata::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::PageInsightsHubRequestContextMetadata>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int64 navigation_timestamp_ms = 4;
      {::_pbi::TcParser::FastV64S1,
       {32, 0, 0,
        PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.navigation_timestamp_ms_)}},
      // optional bool is_user_initiated = 1;
      {::_pbi::TcParser::FastV8S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.is_user_initiated_)}},
      // optional bool is_initial_page = 2;
      {::_pbi::TcParser::FastV8S1,
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.is_initial_page_)}},
      // optional bool should_not_log_or_personalize = 3;
      {::_pbi::TcParser::FastV8S1,
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.should_not_log_or_personalize_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bool is_user_initiated = 1;
      {PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.is_user_initiated_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool is_initial_page = 2;
      {PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.is_initial_page_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool should_not_log_or_personalize = 3;
      {PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.should_not_log_or_personalize_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional int64 navigation_timestamp_ms = 4;
      {PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_.navigation_timestamp_ms_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr PageInsightsHubRequestContextMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        navigation_timestamp_ms_{::int64_t{0}},
        is_user_initiated_{false},
        is_initial_page_{false},
        should_not_log_or_personalize_{false} {}

template <typename>
constexpr PageInsightsHubRequestContextMetadata::PageInsightsHubRequestContextMetadata(::_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 PageInsightsHubRequestContextMetadata::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PageInsightsHubRequestContextMetadata(arena);
}
constexpr auto PageInsightsHubRequestContextMetadata::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PageInsightsHubRequestContextMetadata), alignof(PageInsightsHubRequestContextMetadata));
}
constexpr auto PageInsightsHubRequestContextMetadata::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
          &PageInsightsHubRequestContextMetadata::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PageInsightsHubRequestContextMetadata>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PageInsightsHubRequestContextMetadata::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PageInsightsHubRequestContextMetadata>(), &PageInsightsHubRequestContextMetadata::ByteSizeLong,
              &PageInsightsHubRequestContextMetadata::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadata, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.PageInsightsHubRequestContextMetadata",
  };
}
struct PageInsightsHubRequestContextMetadataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PageInsightsHubRequestContextMetadataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PageInsightsHubRequestContextMetadata_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PageInsightsHubRequestContextMetadata::InternalGenerateClassData_(
            _default, &PageInsightsHubRequestContextMetadata_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PageInsightsHubRequestContextMetadata>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PageInsightsHubRequestContextMetadataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PageInsightsHubRequestContextMetadata _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PageInsightsHubRequestContextMetadata>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PageInsightsHubRequestContextMetadataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr MatchedHintInfo::ParseTableT_ MatchedHintInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::MatchedHintInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 2, 4,
        PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.key_representation_)}},
      // optional string key = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.key_)}},
      // optional int64 version = 3;
      {::_pbi::TcParser::FastV64S1,
       {24, 1, 0,
        PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.version_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
      {PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.key_representation_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string key = 2;
      {PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.key_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional int64 version = 3;
      {PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.version_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    }},
    {{
        {0, 4},
    }},
    {{
    }},
  };
}


inline constexpr MatchedHintInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        key_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        version_{::int64_t{0}},
        key_representation_{static_cast< ::optimization_guide::proto::KeyRepresentation >(0)} {}

template <typename>
constexpr MatchedHintInfo::MatchedHintInfo(::_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 MatchedHintInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MatchedHintInfo(arena);
}
constexpr auto MatchedHintInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MatchedHintInfo), alignof(MatchedHintInfo));
}
constexpr auto MatchedHintInfo::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
          &MatchedHintInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<MatchedHintInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MatchedHintInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<MatchedHintInfo>(), &MatchedHintInfo::ByteSizeLong,
              &MatchedHintInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.MatchedHintInfo",
  };
}
struct MatchedHintInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MatchedHintInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MatchedHintInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MatchedHintInfo::InternalGenerateClassData_(
            _default, &MatchedHintInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MatchedHintInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MatchedHintInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MatchedHintInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MatchedHintInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MatchedHintInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HashedHostInfos::ParseTableT_ HashedHostInfos::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HashedHostInfos, _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<::optimization_guide::proto::HashedHostInfos>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional uint32 num_hash_bits = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(HashedHostInfos, _impl_.num_hash_bits_)}},
      // repeated uint32 partial_host_hashes = 1;
      {::_pbi::TcParser::FastV32R1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(HashedHostInfos, _impl_.partial_host_hashes_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated uint32 partial_host_hashes = 1;
      {PROTOBUF_FIELD_OFFSET(HashedHostInfos, _impl_.partial_host_hashes_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
      // optional uint32 num_hash_bits = 2;
      {PROTOBUF_FIELD_OFFSET(HashedHostInfos, _impl_.num_hash_bits_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr HashedHostInfos::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        partial_host_hashes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::HashedHostInfos,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::HashedHostInfos, _impl_.partial_host_hashes_)>()
         }
        ,
        num_hash_bits_{0u} {}

template <typename>
constexpr HashedHostInfos::HashedHostInfos(::_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 HashedHostInfos::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HashedHostInfos(arena);
}
constexpr auto HashedHostInfos::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HashedHostInfos), alignof(HashedHostInfos));
}
constexpr auto HashedHostInfos::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
          &HashedHostInfos::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HashedHostInfos>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HashedHostInfos::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HashedHostInfos>(), &HashedHostInfos::ByteSizeLong,
              &HashedHostInfos::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HashedHostInfos, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HashedHostInfos",
  };
}
struct HashedHostInfosGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HashedHostInfosGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HashedHostInfos_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HashedHostInfos::InternalGenerateClassData_(
            _default, &HashedHostInfos_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HashedHostInfos>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HashedHostInfosGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HashedHostInfos _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HashedHostInfos>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HashedHostInfosGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr BloomFilter::ParseTableT_ BloomFilter::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(BloomFilter, _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<::optimization_guide::proto::BloomFilter>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional uint32 num_hash_functions = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.num_hash_functions_)}},
      // optional uint32 num_bits = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 2, 0,
        PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.num_bits_)}},
      // optional bytes data = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.data_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional uint32 num_hash_functions = 1;
      {PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.num_hash_functions_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional uint32 num_bits = 2;
      {PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.num_bits_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional bytes data = 3;
      {PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr BloomFilter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        num_hash_functions_{0u},
        num_bits_{0u} {}

template <typename>
constexpr BloomFilter::BloomFilter(::_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 BloomFilter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BloomFilter(arena);
}
constexpr auto BloomFilter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(BloomFilter), alignof(BloomFilter));
}
constexpr auto BloomFilter::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
          &BloomFilter::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<BloomFilter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BloomFilter::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<BloomFilter>(), &BloomFilter::ByteSizeLong,
              &BloomFilter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.BloomFilter",
  };
}
struct BloomFilterGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr BloomFilterGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 BloomFilter_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(BloomFilter::InternalGenerateClassData_(
            _default, &BloomFilter_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<BloomFilter>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~BloomFilterGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) BloomFilter _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<BloomFilter>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(BloomFilterGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Version::ParseTableT_ Version::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Version, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967290,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::Version>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .optimization_guide.proto.Timestamp generation_timestamp = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Version, _impl_.generation_timestamp_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .optimization_guide.proto.HintSource hint_source = 3;
      {::_pbi::TcParser::FastEr0S1,
       {24, 1, 2,
        PROTOBUF_FIELD_OFFSET(Version, _impl_.hint_source_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .optimization_guide.proto.Timestamp generation_timestamp = 1;
      {PROTOBUF_FIELD_OFFSET(Version, _impl_.generation_timestamp_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .optimization_guide.proto.HintSource hint_source = 3;
      {PROTOBUF_FIELD_OFFSET(Version, _impl_.hint_source_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Timestamp>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Timestamp_globals_},
        #endif
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr Version::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        generation_timestamp_{nullptr},
        hint_source_{static_cast< ::optimization_guide::proto::HintSource >(0)} {}

template <typename>
constexpr Version::Version(::_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 Version::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Version(arena);
}
constexpr auto Version::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Version), alignof(Version));
}
constexpr auto Version::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
          &Version::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Version>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Version::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Version>(), &Version::ByteSizeLong,
              &Version::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Version, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.Version",
  };
}
struct VersionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr VersionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Version_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Version::InternalGenerateClassData_(
            _default, &Version_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Version>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~VersionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Version _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Version>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(VersionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr OptimizationFilter::ParseTableT_ OptimizationFilter::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      3,  // 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<::optimization_guide::proto::OptimizationFilter>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 3, 1,
        PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.optimization_type_)}},
      // optional .optimization_guide.proto.BloomFilter bloom_filter = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.bloom_filter_)}},
      // repeated string regexps = 3;
      {::_pbi::TcParser::FastBR1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.regexps_)}},
      // optional bool skip_host_suffix_checking = 4;
      {::_pbi::TcParser::FastV8S1,
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.skip_host_suffix_checking_)}},
      // repeated string exclusion_regexps = 5;
      {::_pbi::TcParser::FastBR1,
       {42, 1, 0,
        PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.exclusion_regexps_)}},
      // optional .optimization_guide.proto.BloomFilterFormat bloom_filter_format = 6;
      {::_pbi::TcParser::FastEr0S1,
       {48, 5, 2,
        PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.bloom_filter_format_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
      {PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.optimization_type_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional .optimization_guide.proto.BloomFilter bloom_filter = 2;
      {PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.bloom_filter_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated string regexps = 3;
      {PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.regexps_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional bool skip_host_suffix_checking = 4;
      {PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.skip_host_suffix_checking_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated string exclusion_regexps = 5;
      {PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.exclusion_regexps_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional .optimization_guide.proto.BloomFilterFormat bloom_filter_format = 6;
      {PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.bloom_filter_format_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::BloomFilter>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::BloomFilter_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::optimization_guide::proto::OptimizationType_internal_data_},
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr OptimizationFilter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        regexps_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::OptimizationFilter,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::OptimizationFilter, _impl_.regexps_)>()
         }
        ,
        exclusion_regexps_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::OptimizationFilter,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::OptimizationFilter, _impl_.exclusion_regexps_)>()
         }
        ,
        bloom_filter_{nullptr},
        optimization_type_{static_cast< ::optimization_guide::proto::OptimizationType >(0)},
        skip_host_suffix_checking_{false},
        bloom_filter_format_{static_cast< ::optimization_guide::proto::BloomFilterFormat >(0)} {}

template <typename>
constexpr OptimizationFilter::OptimizationFilter(::_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 OptimizationFilter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) OptimizationFilter(arena);
}
constexpr auto OptimizationFilter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(OptimizationFilter), alignof(OptimizationFilter));
}
constexpr auto OptimizationFilter::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
          &OptimizationFilter::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<OptimizationFilter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &OptimizationFilter::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<OptimizationFilter>(), &OptimizationFilter::ByteSizeLong,
              &OptimizationFilter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.OptimizationFilter",
  };
}
struct OptimizationFilterGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr OptimizationFilterGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 OptimizationFilter_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(OptimizationFilter::InternalGenerateClassData_(
            _default, &OptimizationFilter_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<OptimizationFilter>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~OptimizationFilterGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) OptimizationFilter _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<OptimizationFilter>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(OptimizationFilterGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr HostInfo::ParseTableT_ HostInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HostInfo, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::HostInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .optimization_guide.proto.MatchedHintInfo matched_hint = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(HostInfo, _impl_.matched_hint_)}},
      // optional string host = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(HostInfo, _impl_.host_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string host = 1;
      {PROTOBUF_FIELD_OFFSET(HostInfo, _impl_.host_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .optimization_guide.proto.MatchedHintInfo matched_hint = 2;
      {PROTOBUF_FIELD_OFFSET(HostInfo, _impl_.matched_hint_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::MatchedHintInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::MatchedHintInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


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

template <typename>
constexpr HostInfo::HostInfo(::_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 HostInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HostInfo(arena);
}
constexpr auto HostInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HostInfo), alignof(HostInfo));
}
constexpr auto HostInfo::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
          &HostInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<HostInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HostInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<HostInfo>(), &HostInfo::ByteSizeLong,
              &HostInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HostInfo, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.HostInfo",
  };
}
struct HostInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HostInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HostInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HostInfo::InternalGenerateClassData_(
            _default, &HostInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HostInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HostInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HostInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HostInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HostInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST HostInfoGlobalsTypeInternal HostInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* HostInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return HostInfo_globals_.GetClassData();
#else
  return HostInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Optimization::_Internal {
 public:
  using HasBits = decltype(::std::declval<Optimization>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Optimization, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Optimization, _impl_._oneof_case_);
};

constexpr Optimization::ParseTableT_ Optimization::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Optimization, _impl_._has_bits_),
      0, // no _extensions_
      15, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294946782,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::Optimization>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional uint64 tuning_version = 6;
      {::_pbi::TcParser::FastV64S1,
       {48, 0, 0,
        PROTOBUF_FIELD_OFFSET(Optimization, _impl_.tuning_version_)}},
      // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
      {::_pbi::TcParser::FastEvS1,
       {8, 1, 2,
        PROTOBUF_FIELD_OFFSET(Optimization, _impl_.optimization_type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
      {PROTOBUF_FIELD_OFFSET(Optimization, _impl_.optimization_type_), _Internal::kHasBitsOffset + 1, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // optional uint64 tuning_version = 6;
      {PROTOBUF_FIELD_OFFSET(Optimization, _impl_.tuning_version_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // .optimization_guide.proto.LoadingPredictorMetadata loading_predictor_metadata = 13;
      {PROTOBUF_FIELD_OFFSET(Optimization, _impl_.metadata_.loading_predictor_metadata_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.Any any_metadata = 15;
      {PROTOBUF_FIELD_OFFSET(Optimization, _impl_.metadata_.any_metadata_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::LoadingPredictorMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::LoadingPredictorMetadata_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Any>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Any_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::optimization_guide::proto::OptimizationType_internal_data_},
    }},
    {{
    }},
  };
}


inline constexpr Optimization::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tuning_version_{::uint64_t{0u}},
        optimization_type_{static_cast< ::optimization_guide::proto::OptimizationType >(0)},
        metadata_{},
        _oneof_case_{} {}

template <typename>
constexpr Optimization::Optimization(::_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 Optimization::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Optimization(arena);
}
constexpr auto Optimization::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Optimization), alignof(Optimization));
}
constexpr auto Optimization::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
          &Optimization::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Optimization>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Optimization::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Optimization>(), &Optimization::ByteSizeLong,
              &Optimization::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Optimization, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.Optimization",
  };
}
struct OptimizationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr OptimizationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Optimization_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Optimization::InternalGenerateClassData_(
            _default, &Optimization_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Optimization>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~OptimizationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Optimization _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Optimization>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(OptimizationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST OptimizationGlobalsTypeInternal Optimization_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Optimization_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Optimization_globals_.GetClassData();
#else
  return Optimization_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class RequestContextMetadata::_Internal {
 public:
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::RequestContextMetadata, _impl_._oneof_case_);
};

constexpr RequestContextMetadata::ParseTableT_ RequestContextMetadata::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RequestContextMetadata,
                            _impl_._cached_size_),  // no hasbits
      0, // no _extensions_
      2, 0,  // 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<::optimization_guide::proto::RequestContextMetadata>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // .optimization_guide.proto.PageInsightsHubRequestContextMetadata page_insights_hub_metadata = 1;
      {PROTOBUF_FIELD_OFFSET(RequestContextMetadata, _impl_.metadata_.page_insights_hub_metadata_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .optimization_guide.proto.FilterExecutionRequestContextMetadata filter_execution_metadata = 2;
      {PROTOBUF_FIELD_OFFSET(RequestContextMetadata, _impl_.metadata_.filter_execution_metadata_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PageInsightsHubRequestContextMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PageInsightsHubRequestContextMetadata_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::FilterExecutionRequestContextMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::FilterExecutionRequestContextMetadata_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RequestContextMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : metadata_{},
        _cached_size_{0},
        _oneof_case_{} {}

template <typename>
constexpr RequestContextMetadata::RequestContextMetadata(::_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 RequestContextMetadata::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RequestContextMetadata(arena);
}
constexpr auto RequestContextMetadata::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RequestContextMetadata), alignof(RequestContextMetadata));
}
constexpr auto RequestContextMetadata::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
          &RequestContextMetadata::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<RequestContextMetadata>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RequestContextMetadata::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<RequestContextMetadata>(), &RequestContextMetadata::ByteSizeLong,
              &RequestContextMetadata::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RequestContextMetadata, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.RequestContextMetadata",
  };
}
struct RequestContextMetadataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RequestContextMetadataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RequestContextMetadata_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RequestContextMetadata::InternalGenerateClassData_(
            _default, &RequestContextMetadata_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RequestContextMetadata>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RequestContextMetadataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RequestContextMetadata _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RequestContextMetadata>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RequestContextMetadataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr PageHint::ParseTableT_ PageHint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PageHint, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967290,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // 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<::optimization_guide::proto::PageHint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional string page_pattern = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(PageHint, _impl_.page_pattern_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(PageHint, _impl_.allowlisted_optimizations_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string page_pattern = 1;
      {PROTOBUF_FIELD_OFFSET(PageHint, _impl_.page_pattern_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
      {PROTOBUF_FIELD_OFFSET(PageHint, _impl_.allowlisted_optimizations_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Optimization>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Optimization_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PageHint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        allowlisted_optimizations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::PageHint,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::PageHint, _impl_.allowlisted_optimizations_)>()
         }
        ,
        page_pattern_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr PageHint::PageHint(::_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 PageHint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PageHint(arena);
}
constexpr auto PageHint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PageHint), alignof(PageHint));
}
constexpr auto PageHint::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
          &PageHint::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PageHint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PageHint::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PageHint>(), &PageHint::ByteSizeLong,
              &PageHint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PageHint, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.PageHint",
  };
}
struct PageHintGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PageHintGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PageHint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PageHint::InternalGenerateClassData_(
            _default, &PageHint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PageHint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PageHintGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PageHint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PageHint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PageHintGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Hint::ParseTableT_ Hint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Hint, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      4,  // 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<::optimization_guide::proto::Hint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 5, 4,
        PROTOBUF_FIELD_OFFSET(Hint, _impl_.key_representation_)}},
      // optional string key = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(Hint, _impl_.key_)}},
      // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(Hint, _impl_.allowlisted_optimizations_)}},
      // repeated .optimization_guide.proto.PageHint page_hints = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 1, 1,
        PROTOBUF_FIELD_OFFSET(Hint, _impl_.page_hints_)}},
      // optional string version = 5;
      {::_pbi::TcParser::FastBS1,
       {42, 3, 0,
        PROTOBUF_FIELD_OFFSET(Hint, _impl_.version_)}},
      // optional .optimization_guide.proto.Duration max_cache_duration = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 4, 2,
        PROTOBUF_FIELD_OFFSET(Hint, _impl_.max_cache_duration_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
      {PROTOBUF_FIELD_OFFSET(Hint, _impl_.key_representation_), _Internal::kHasBitsOffset + 5, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string key = 2;
      {PROTOBUF_FIELD_OFFSET(Hint, _impl_.key_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
      {PROTOBUF_FIELD_OFFSET(Hint, _impl_.allowlisted_optimizations_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.PageHint page_hints = 4;
      {PROTOBUF_FIELD_OFFSET(Hint, _impl_.page_hints_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string version = 5;
      {PROTOBUF_FIELD_OFFSET(Hint, _impl_.version_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .optimization_guide.proto.Duration max_cache_duration = 6;
      {PROTOBUF_FIELD_OFFSET(Hint, _impl_.max_cache_duration_), _Internal::kHasBitsOffset + 4, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Optimization>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Optimization_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::PageHint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::PageHint_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Duration>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Duration_globals_},
        #endif
        {0, 4},
    }},
    {{
    }},
  };
}


inline constexpr Hint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        allowlisted_optimizations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Hint,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Hint, _impl_.allowlisted_optimizations_)>()
         }
        ,
        page_hints_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Hint,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Hint, _impl_.page_hints_)>()
         }
        ,
        key_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        version_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        max_cache_duration_{nullptr},
        key_representation_{static_cast< ::optimization_guide::proto::KeyRepresentation >(0)} {}

template <typename>
constexpr Hint::Hint(::_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 Hint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Hint(arena);
}
constexpr auto Hint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Hint), alignof(Hint));
}
constexpr auto Hint::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
          &Hint::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Hint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Hint::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Hint>(), &Hint::ByteSizeLong,
              &Hint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Hint, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.Hint",
  };
}
struct HintGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HintGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Hint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Hint::InternalGenerateClassData_(
            _default, &Hint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Hint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HintGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Hint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Hint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HintGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr GetHintsRequest::ParseTableT_ GetHintsRequest::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_._has_bits_),
      0, // no _extensions_
      11, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294965792,  // skipmap
      offsetof(ParseTableT_, field_entries),
      9,  // num_field_entries
      8,  // 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<::optimization_guide::proto::GetHintsRequest>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .optimization_guide.proto.HostInfo hosts = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.hosts_)}},
      // repeated .optimization_guide.proto.OptimizationType supported_optimizations = 2;
      {::_pbi::TcParser::FastEvR1,
       {16, 1, 5,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.supported_optimizations_)}},
      // optional .optimization_guide.proto.RequestContext context = 3;
      {::_pbi::TcParser::FastEvS1,
       {24, 8, 6,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.context_)}},
      // repeated .optimization_guide.proto.UrlInfo urls = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 2, 1,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.urls_)}},
      // repeated .optimization_guide.proto.KeyRepresentation supported_key_representations = 5;
      {::_pbi::TcParser::FastEr0R1,
       {40, 3, 4,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.supported_key_representations_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional string locale = 7;
      {::_pbi::TcParser::FastBS1,
       {58, 4, 0,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.locale_)}},
      // optional .optimization_guide.proto.HashedHostInfos hashed_hosts = 8;
      {::_pbi::TcParser::FastMtS1,
       {66, 5, 2,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.hashed_hosts_)}},
      // optional .optimization_guide.proto.OriginInfo origin_info = 9;
      {::_pbi::TcParser::FastMtS1,
       {74, 6, 3,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.origin_info_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .optimization_guide.proto.RequestContextMetadata context_metadata = 11;
      {::_pbi::TcParser::FastMtS1,
       {90, 7, 4,
        PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.context_metadata_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.HostInfo hosts = 1;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.hosts_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.OptimizationType supported_optimizations = 2;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.supported_optimizations_), _Internal::kHasBitsOffset + 1, 5, (0 | ::_fl::kFcRepeated | ::_fl::kEnum)},
      // optional .optimization_guide.proto.RequestContext context = 3;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.context_), _Internal::kHasBitsOffset + 8, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnum)},
      // repeated .optimization_guide.proto.UrlInfo urls = 4;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.urls_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.KeyRepresentation supported_key_representations = 5;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.supported_key_representations_), _Internal::kHasBitsOffset + 3, 7, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
      // optional string locale = 7;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.locale_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .optimization_guide.proto.HashedHostInfos hashed_hosts = 8;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.hashed_hosts_), _Internal::kHasBitsOffset + 5, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .optimization_guide.proto.OriginInfo origin_info = 9;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.origin_info_), _Internal::kHasBitsOffset + 6, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .optimization_guide.proto.RequestContextMetadata context_metadata = 11;
      {PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.context_metadata_), _Internal::kHasBitsOffset + 7, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HostInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HostInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::UrlInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::UrlInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::HashedHostInfos>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::HashedHostInfos_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::OriginInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::OriginInfo_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::RequestContextMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::RequestContextMetadata_globals_},
        #endif
        {::_pbi::FieldAuxEnumData{}, ::optimization_guide::proto::OptimizationType_internal_data_},
        {::_pbi::FieldAuxEnumData{}, ::optimization_guide::proto::RequestContext_internal_data_},
        {0, 4},
    }},
    {{
    }},
  };
}


inline constexpr GetHintsRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        hosts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.hosts_)>()
         }
        ,
        supported_optimizations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.supported_optimizations_)>()
         }
        ,
        urls_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.urls_)>()
         }
        ,
        supported_key_representations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.supported_key_representations_)>()
         }
        ,
        locale_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        hashed_hosts_{nullptr},
        origin_info_{nullptr},
        context_metadata_{nullptr},
        context_{static_cast< ::optimization_guide::proto::RequestContext >(0)} {}

template <typename>
constexpr GetHintsRequest::GetHintsRequest(::_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 GetHintsRequest::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) GetHintsRequest(arena);
}
constexpr auto GetHintsRequest::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(GetHintsRequest), alignof(GetHintsRequest));
}
constexpr auto GetHintsRequest::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
          &GetHintsRequest::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<GetHintsRequest>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &GetHintsRequest::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<GetHintsRequest>(), &GetHintsRequest::ByteSizeLong,
              &GetHintsRequest::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.GetHintsRequest",
  };
}
struct GetHintsRequestGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr GetHintsRequestGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 GetHintsRequest_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(GetHintsRequest::InternalGenerateClassData_(
            _default, &GetHintsRequest_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<GetHintsRequest>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~GetHintsRequestGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) GetHintsRequest _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<GetHintsRequest>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(GetHintsRequestGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr GetHintsResponse::ParseTableT_ GetHintsResponse::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::GetHintsResponse>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .optimization_guide.proto.Hint hints = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_.hints_)}},
      // optional .optimization_guide.proto.Duration max_cache_duration = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 2, 1,
        PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_.max_cache_duration_)}},
      // repeated .optimization_guide.proto.MatchedHintInfo hints_to_remove = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 1, 2,
        PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_.hints_to_remove_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.Hint hints = 1;
      {PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_.hints_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .optimization_guide.proto.Duration max_cache_duration = 2;
      {PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_.max_cache_duration_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.MatchedHintInfo hints_to_remove = 3;
      {PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_.hints_to_remove_), _Internal::kHasBitsOffset + 1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Hint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Hint_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Duration>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Duration_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::MatchedHintInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::MatchedHintInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr GetHintsResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        hints_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsResponse, _impl_.hints_)>()
         }
        ,
        hints_to_remove_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsResponse,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsResponse, _impl_.hints_to_remove_)>()
         }
        ,
        max_cache_duration_{nullptr} {}

template <typename>
constexpr GetHintsResponse::GetHintsResponse(::_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 GetHintsResponse::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) GetHintsResponse(arena);
}
constexpr auto GetHintsResponse::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(GetHintsResponse), alignof(GetHintsResponse));
}
constexpr auto GetHintsResponse::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
          &GetHintsResponse::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<GetHintsResponse>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &GetHintsResponse::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<GetHintsResponse>(), &GetHintsResponse::ByteSizeLong,
              &GetHintsResponse::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(GetHintsResponse, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.GetHintsResponse",
  };
}
struct GetHintsResponseGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr GetHintsResponseGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 GetHintsResponse_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(GetHintsResponse::InternalGenerateClassData_(
            _default, &GetHintsResponse_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<GetHintsResponse>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~GetHintsResponseGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) GetHintsResponse _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<GetHintsResponse>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(GetHintsResponseGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

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

constexpr Configuration::ParseTableT_ Configuration::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Configuration, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      3,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::optimization_guide::proto::Configuration>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .optimization_guide.proto.Hint hints = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Configuration, _impl_.hints_)}},
      // repeated .optimization_guide.proto.OptimizationFilter optimization_blocklists = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 1, 1,
        PROTOBUF_FIELD_OFFSET(Configuration, _impl_.optimization_blocklists_)}},
      // repeated .optimization_guide.proto.OptimizationFilter optimization_allowlists = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 2, 2,
        PROTOBUF_FIELD_OFFSET(Configuration, _impl_.optimization_allowlists_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .optimization_guide.proto.Hint hints = 1;
      {PROTOBUF_FIELD_OFFSET(Configuration, _impl_.hints_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.OptimizationFilter optimization_blocklists = 2;
      {PROTOBUF_FIELD_OFFSET(Configuration, _impl_.optimization_blocklists_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .optimization_guide.proto.OptimizationFilter optimization_allowlists = 3;
      {PROTOBUF_FIELD_OFFSET(Configuration, _impl_.optimization_allowlists_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::Hint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::Hint_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::OptimizationFilter>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::OptimizationFilter_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::optimization_guide::proto::OptimizationFilter>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::optimization_guide::proto::OptimizationFilter_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Configuration::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        hints_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Configuration,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Configuration, _impl_.hints_)>()
         }
        ,
        optimization_blocklists_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Configuration,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Configuration, _impl_.optimization_blocklists_)>()
         }
        ,
        optimization_allowlists_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Configuration,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Configuration, _impl_.optimization_allowlists_)>()
         }
     {}

template <typename>
constexpr Configuration::Configuration(::_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 Configuration::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Configuration(arena);
}
constexpr auto Configuration::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Configuration), alignof(Configuration));
}
constexpr auto Configuration::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
          &Configuration::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Configuration>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Configuration::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Configuration>(), &Configuration::ByteSizeLong,
              &Configuration::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Configuration, _impl_._cached_size_),
          true,
      },
      "optimization_guide.proto.Configuration",
  };
}
struct ConfigurationGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ConfigurationGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Configuration_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Configuration::InternalGenerateClassData_(
            _default, &Configuration_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Configuration>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ConfigurationGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Configuration _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Configuration>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ConfigurationGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ConfigurationGlobalsTypeInternal Configuration_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Configuration_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Configuration_globals_.GetClassData();
#else
  return Configuration_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace proto
}  // namespace optimization_guide
namespace optimization_guide {
namespace proto {
PROTOBUF_CONSTINIT const uint32_t OptimizationType_internal_data_[] = {
    720896u, 128u, 4292607964u, 2642407487u, 4224172031u, 134217727u, };
static const char OptimizationType_names[] = {
    "A2A_MERCHANT_ALLOWLIST"
    "ABOUT_THIS_SITE"
    "AMERICAN_EXPRESS_CREDIT_CARD_FLIGHT_BENEFITS"
    "AMERICAN_EXPRESS_CREDIT_CARD_SUBSCRIPTION_BENEFITS"
    "AMOUNT_EXTRACTION_ALLOWLIST"
    "AUTOFILL_ABLATION_SITES_LIST1"
    "AUTOFILL_ABLATION_SITES_LIST2"
    "AUTOFILL_ABLATION_SITES_LIST3"
    "AUTOFILL_ABLATION_SITES_LIST4"
    "AUTOFILL_ABLATION_SITES_LIST5"
    "AUTOFILL_ABLATION_SITES_LIST6"
    "AUTOFILL_ACTOR_IFRAME_ORIGIN_ALLOWLIST"
    "AUTOFILL_AT_MEMORY_BLOCKED"
    "AUTOFILL_SAMPLING_RATE"
    "BLOOM_FILTER_VALIDATION"
    "BMO_CREDIT_CARD_AIR_MILES_PARTNER_BENEFITS"
    "BMO_CREDIT_CARD_ALCOHOL_STORE_BENEFITS"
    "BMO_CREDIT_CARD_DINING_BENEFITS"
    "BMO_CREDIT_CARD_DRUGSTORE_BENEFITS"
    "BMO_CREDIT_CARD_ENTERTAINMENT_BENEFITS"
    "BMO_CREDIT_CARD_GROCERY_BENEFITS"
    "BMO_CREDIT_CARD_OFFICE_SUPPLY_BENEFITS"
    "BMO_CREDIT_CARD_RECURRING_BILL_BENEFITS"
    "BMO_CREDIT_CARD_TRANSIT_BENEFITS"
    "BMO_CREDIT_CARD_TRAVEL_BENEFITS"
    "BMO_CREDIT_CARD_WHOLESALE_CLUB_BENEFITS"
    "BUY_NOW_PAY_LATER_ALLOWLIST_AFFIRM"
    "BUY_NOW_PAY_LATER_ALLOWLIST_AFFIRM_ANDROID"
    "BUY_NOW_PAY_LATER_ALLOWLIST_KLARNA"
    "BUY_NOW_PAY_LATER_ALLOWLIST_KLARNA_ANDROID"
    "BUY_NOW_PAY_LATER_ALLOWLIST_ZIP"
    "BUY_NOW_PAY_LATER_ALLOWLIST_ZIP_ANDROID"
    "BUY_NOW_PAY_LATER_BLOCKLIST_AFFIRM"
    "BUY_NOW_PAY_LATER_BLOCKLIST_AFFIRM_ANDROID"
    "BUY_NOW_PAY_LATER_BLOCKLIST_KLARNA"
    "BUY_NOW_PAY_LATER_BLOCKLIST_KLARNA_ANDROID"
    "BUY_NOW_PAY_LATER_BLOCKLIST_ZIP"
    "BUY_NOW_PAY_LATER_BLOCKLIST_ZIP_ANDROID"
    "CAPITAL_ONE_CREDIT_CARD_BENEFITS_BLOCKED"
    "CAPITAL_ONE_CREDIT_CARD_DINING_BENEFITS"
    "CAPITAL_ONE_CREDIT_CARD_ENTERTAINMENT_BENEFITS"
    "CAPITAL_ONE_CREDIT_CARD_GROCERY_BENEFITS"
    "CAPITAL_ONE_CREDIT_CARD_STREAMING_BENEFITS"
    "COMPOSE"
    "COMPRESS_PUBLIC_IMAGES"
    "CURINOS_CREDIT_CARD_CAR_RENTAL_BENEFITS"
    "CURINOS_CREDIT_CARD_FLIGHT_BENEFITS"
    "CURINOS_CREDIT_CARD_HOTEL_BENEFITS"
    "DEFER_ALL_SCRIPT"
    "DIGITAL_CREDENTIALS_LOW_FRICTION"
    "EWALLET_MERCHANT_ALLOWLIST"
    "FAST_HOST_HINTS"
    "FEDCM_CLICKTHROUGH_RATE"
    "FILTER_EXECUTION_STRATEGY"
    "FILTER_EXTRACT_ATTRIBUTES"
    "FILTER_TASKS_SUPPORTED"
    "FINDS_PAGE_THEME"
    "GLIC_ACTION_PAGE_BLOCK"
    "GLIC_CONTEXTUAL_CUEING"
    "GLIC_ZERO_STATE_SUGGESTIONS"
    "HISTORY_CLUSTERS"
    "HISTORY_EMBEDDINGS"
    "IBAN_AUTOFILL_BLOCKED"
    "INDIGO"
    "LENS_OVERLAY_EDU_ACTION_CHIP_ALLOWLIST"
    "LENS_OVERLAY_EDU_ACTION_CHIP_BLOCKLIST"
    "LINK_PERFORMANCE"
    "LITE_PAGE"
    "LITE_PAGE_REDIRECT"
    "LITE_VIDEO"
    "LOADING_PREDICTOR"
    "MERCHANT_TRUST_SIGNALS"
    "MERCHANT_TRUST_SIGNALS_V2"
    "METADATA_FETCH_VALIDATION"
    "NOSCRIPT"
    "NTP_NEXT_DEEP_DIVE_ACTION_CHIP_ALLOWLIST"
    "NTP_NEXT_DEEP_DIVE_ACTION_CHIP_BLOCKLIST"
    "OMNIBOX_AUTOFILL_IFRAME_ALLOWLIST"
    "OPTIMIZATION_GUIDE_ICON_VIEW"
    "PAGE_ENTITIES"
    "PERFORMANCE_HINTS"
    "PIX_MERCHANT_ORIGINS_ALLOWLIST"
    "PIX_PAYMENT_MERCHANT_ALLOWLIST"
    "PIX_PSP_ALLOWLIST"
    "PRICE_INSIGHTS"
    "PRICE_TRACKING"
    "PRIVACY_POLICY_ANNOTATION"
    "READER_MODE_ELIGIBLE"
    "RESOURCE_LOADING"
    "SALIENT_IMAGE"
    "SAVED_TAB_GROUP"
    "SHARED_CREDIT_CARD_DINING_BENEFITS"
    "SHARED_CREDIT_CARD_ENTERTAINMENT_BENEFITS"
    "SHARED_CREDIT_CARD_FLAT_RATE_BENEFITS_BLOCKLIST"
    "SHARED_CREDIT_CARD_FLIGHT_BENEFITS"
    "SHARED_CREDIT_CARD_GROCERY_BENEFITS"
    "SHARED_CREDIT_CARD_STREAMING_BENEFITS"
    "SHARED_CREDIT_CARD_SUBSCRIPTION_BENEFITS"
    "SHOPPING_DISCOUNTS"
    "SHOPPING_PAGE_PREDICTOR"
    "SHOPPING_PAGE_TYPES"
    "SKILLS"
    "TEXT_CLASSIFIER_ENTITY_DETECTION"
    "THANK_CREATOR_ELIGIBLE"
    "TYPE_UNSPECIFIED"
    "V8_COMPILE_HINTS"
    "VCN_MERCHANT_OPT_OUT_DISCOVER"
    "VCN_MERCHANT_OPT_OUT_MASTERCARD"
    "VCN_MERCHANT_OPT_OUT_VISA"
    "WALLETABLE_PASS_DETECTION_ALLOWLIST"
    "WALLETABLE_PASS_DETECTION_BOARDING_PASS_ALLOWLIST"
    "WALLETABLE_PASS_DETECTION_EVENT_PASS_ALLOWLIST"
    "WALLETABLE_PASS_DETECTION_LOYALTY_ALLOWLIST"
    "WALLETABLE_PASS_DETECTION_TRANSIT_TICKET_ALLOWLIST"
};

static const ::google::protobuf::internal::EnumEntry OptimizationType_entries[] = {
    {{&OptimizationType_names[0], 22}, 98},
    {{&OptimizationType_names[22], 15}, 20},
    {{&OptimizationType_names[37], 44}, 47},
    {{&OptimizationType_names[81], 50}, 48},
    {{&OptimizationType_names[131], 27}, 67},
    {{&OptimizationType_names[158], 29}, 60},
    {{&OptimizationType_names[187], 29}, 61},
    {{&OptimizationType_names[216], 29}, 62},
    {{&OptimizationType_names[245], 29}, 63},
    {{&OptimizationType_names[274], 29}, 64},
    {{&OptimizationType_names[303], 29}, 65},
    {{&OptimizationType_names[332], 38}, 116},
    {{&OptimizationType_names[370], 26}, 132},
    {{&OptimizationType_names[396], 22}, 27},
    {{&OptimizationType_names[418], 23}, 19},
    {{&OptimizationType_names[441], 42}, 78},
    {{&OptimizationType_names[483], 38}, 79},
    {{&OptimizationType_names[521], 31}, 80},
    {{&OptimizationType_names[552], 34}, 81},
    {{&OptimizationType_names[586], 38}, 82},
    {{&OptimizationType_names[624], 32}, 83},
    {{&OptimizationType_names[656], 38}, 84},
    {{&OptimizationType_names[694], 39}, 85},
    {{&OptimizationType_names[733], 32}, 86},
    {{&OptimizationType_names[765], 31}, 87},
    {{&OptimizationType_names[796], 39}, 88},
    {{&OptimizationType_names[835], 34}, 69},
    {{&OptimizationType_names[869], 42}, 113},
    {{&OptimizationType_names[911], 34}, 102},
    {{&OptimizationType_names[945], 42}, 115},
    {{&OptimizationType_names[987], 31}, 70},
    {{&OptimizationType_names[1018], 39}, 114},
    {{&OptimizationType_names[1057], 34}, 103},
    {{&OptimizationType_names[1091], 42}, 124},
    {{&OptimizationType_names[1133], 34}, 105},
    {{&OptimizationType_names[1167], 42}, 126},
    {{&OptimizationType_names[1209], 31}, 104},
    {{&OptimizationType_names[1240], 39}, 125},
    {{&OptimizationType_names[1279], 40}, 55},
    {{&OptimizationType_names[1319], 39}, 43},
    {{&OptimizationType_names[1358], 46}, 45},
    {{&OptimizationType_names[1404], 40}, 44},
    {{&OptimizationType_names[1444], 42}, 46},
    {{&OptimizationType_names[1486], 7}, 35},
    {{&OptimizationType_names[1493], 22}, 8},
    {{&OptimizationType_names[1515], 39}, 129},
    {{&OptimizationType_names[1554], 35}, 127},
    {{&OptimizationType_names[1589], 34}, 128},
    {{&OptimizationType_names[1623], 16}, 5},
    {{&OptimizationType_names[1639], 32}, 97},
    {{&OptimizationType_names[1671], 26}, 75},
    {{&OptimizationType_names[1697], 15}, 10},
    {{&OptimizationType_names[1712], 23}, 93},
    {{&OptimizationType_names[1735], 25}, 133},
    {{&OptimizationType_names[1760], 25}, 131},
    {{&OptimizationType_names[1785], 22}, 130},
    {{&OptimizationType_names[1807], 16}, 122},
    {{&OptimizationType_names[1823], 22}, 92},
    {{&OptimizationType_names[1845], 22}, 90},
    {{&OptimizationType_names[1867], 27}, 91},
    {{&OptimizationType_names[1894], 16}, 23},
    {{&OptimizationType_names[1910], 18}, 59},
    {{&OptimizationType_names[1928], 21}, 25},
    {{&OptimizationType_names[1949], 6}, 121},
    {{&OptimizationType_names[1955], 38}, 107},
    {{&OptimizationType_names[1993], 38}, 106},
    {{&OptimizationType_names[2031], 16}, 14},
    {{&OptimizationType_names[2047], 9}, 7},
    {{&OptimizationType_names[2056], 18}, 3},
    {{&OptimizationType_names[2074], 10}, 13},
    {{&OptimizationType_names[2084], 17}, 9},
    {{&OptimizationType_names[2101], 22}, 17},
    {{&OptimizationType_names[2123], 25}, 21},
    {{&OptimizationType_names[2148], 25}, 4},
    {{&OptimizationType_names[2173], 8}, 1},
    {{&OptimizationType_names[2181], 40}, 111},
    {{&OptimizationType_names[2221], 40}, 110},
    {{&OptimizationType_names[2261], 33}, 123},
    {{&OptimizationType_names[2294], 28}, 76},
    {{&OptimizationType_names[2322], 13}, 22},
    {{&OptimizationType_names[2335], 17}, 6},
    {{&OptimizationType_names[2352], 30}, 58},
    {{&OptimizationType_names[2382], 30}, 36},
    {{&OptimizationType_names[2412], 17}, 120},
    {{&OptimizationType_names[2429], 14}, 30},
    {{&OptimizationType_names[2443], 14}, 18},
    {{&OptimizationType_names[2457], 25}, 77},
    {{&OptimizationType_names[2482], 20}, 112},
    {{&OptimizationType_names[2502], 16}, 2},
    {{&OptimizationType_names[2518], 13}, 26},
    {{&OptimizationType_names[2531], 15}, 71},
    {{&OptimizationType_names[2546], 34}, 38},
    {{&OptimizationType_names[2580], 41}, 40},
    {{&OptimizationType_names[2621], 47}, 100},
    {{&OptimizationType_names[2668], 34}, 37},
    {{&OptimizationType_names[2702], 35}, 39},
    {{&OptimizationType_names[2737], 37}, 41},
    {{&OptimizationType_names[2774], 40}, 42},
    {{&OptimizationType_names[2814], 18}, 34},
    {{&OptimizationType_names[2832], 23}, 15},
    {{&OptimizationType_names[2855], 19}, 33},
    {{&OptimizationType_names[2874], 6}, 119},
    {{&OptimizationType_names[2880], 32}, 74},
    {{&OptimizationType_names[2912], 22}, 24},
    {{&OptimizationType_names[2934], 16}, 0},
    {{&OptimizationType_names[2950], 16}, 31},
    {{&OptimizationType_names[2966], 29}, 56},
    {{&OptimizationType_names[2995], 31}, 57},
    {{&OptimizationType_names[3026], 25}, 28},
    {{&OptimizationType_names[3051], 35}, 99},
    {{&OptimizationType_names[3086], 49}, 109},
    {{&OptimizationType_names[3135], 46}, 118},
    {{&OptimizationType_names[3181], 43}, 108},
    {{&OptimizationType_names[3224], 50}, 117},
};

static const int OptimizationType_entries_by_number[] = {
    104,  // 0 -> TYPE_UNSPECIFIED
    74,  // 1 -> NOSCRIPT
    88,  // 2 -> RESOURCE_LOADING
    68,  // 3 -> LITE_PAGE_REDIRECT
    73,  // 4 -> METADATA_FETCH_VALIDATION
    48,  // 5 -> DEFER_ALL_SCRIPT
    80,  // 6 -> PERFORMANCE_HINTS
    67,  // 7 -> LITE_PAGE
    44,  // 8 -> COMPRESS_PUBLIC_IMAGES
    70,  // 9 -> LOADING_PREDICTOR
    51,  // 10 -> FAST_HOST_HINTS
    69,  // 13 -> LITE_VIDEO
    66,  // 14 -> LINK_PERFORMANCE
    99,  // 15 -> SHOPPING_PAGE_PREDICTOR
    71,  // 17 -> MERCHANT_TRUST_SIGNALS
    85,  // 18 -> PRICE_TRACKING
    14,  // 19 -> BLOOM_FILTER_VALIDATION
    1,  // 20 -> ABOUT_THIS_SITE
    72,  // 21 -> MERCHANT_TRUST_SIGNALS_V2
    79,  // 22 -> PAGE_ENTITIES
    60,  // 23 -> HISTORY_CLUSTERS
    103,  // 24 -> THANK_CREATOR_ELIGIBLE
    62,  // 25 -> IBAN_AUTOFILL_BLOCKED
    89,  // 26 -> SALIENT_IMAGE
    13,  // 27 -> AUTOFILL_SAMPLING_RATE
    108,  // 28 -> VCN_MERCHANT_OPT_OUT_VISA
    84,  // 30 -> PRICE_INSIGHTS
    105,  // 31 -> V8_COMPILE_HINTS
    100,  // 33 -> SHOPPING_PAGE_TYPES
    98,  // 34 -> SHOPPING_DISCOUNTS
    43,  // 35 -> COMPOSE
    82,  // 36 -> PIX_PAYMENT_MERCHANT_ALLOWLIST
    94,  // 37 -> SHARED_CREDIT_CARD_FLIGHT_BENEFITS
    91,  // 38 -> SHARED_CREDIT_CARD_DINING_BENEFITS
    95,  // 39 -> SHARED_CREDIT_CARD_GROCERY_BENEFITS
    92,  // 40 -> SHARED_CREDIT_CARD_ENTERTAINMENT_BENEFITS
    96,  // 41 -> SHARED_CREDIT_CARD_STREAMING_BENEFITS
    97,  // 42 -> SHARED_CREDIT_CARD_SUBSCRIPTION_BENEFITS
    39,  // 43 -> CAPITAL_ONE_CREDIT_CARD_DINING_BENEFITS
    41,  // 44 -> CAPITAL_ONE_CREDIT_CARD_GROCERY_BENEFITS
    40,  // 45 -> CAPITAL_ONE_CREDIT_CARD_ENTERTAINMENT_BENEFITS
    42,  // 46 -> CAPITAL_ONE_CREDIT_CARD_STREAMING_BENEFITS
    2,  // 47 -> AMERICAN_EXPRESS_CREDIT_CARD_FLIGHT_BENEFITS
    3,  // 48 -> AMERICAN_EXPRESS_CREDIT_CARD_SUBSCRIPTION_BENEFITS
    38,  // 55 -> CAPITAL_ONE_CREDIT_CARD_BENEFITS_BLOCKED
    106,  // 56 -> VCN_MERCHANT_OPT_OUT_DISCOVER
    107,  // 57 -> VCN_MERCHANT_OPT_OUT_MASTERCARD
    81,  // 58 -> PIX_MERCHANT_ORIGINS_ALLOWLIST
    61,  // 59 -> HISTORY_EMBEDDINGS
    5,  // 60 -> AUTOFILL_ABLATION_SITES_LIST1
    6,  // 61 -> AUTOFILL_ABLATION_SITES_LIST2
    7,  // 62 -> AUTOFILL_ABLATION_SITES_LIST3
    8,  // 63 -> AUTOFILL_ABLATION_SITES_LIST4
    9,  // 64 -> AUTOFILL_ABLATION_SITES_LIST5
    10,  // 65 -> AUTOFILL_ABLATION_SITES_LIST6
    4,  // 67 -> AMOUNT_EXTRACTION_ALLOWLIST
    26,  // 69 -> BUY_NOW_PAY_LATER_ALLOWLIST_AFFIRM
    30,  // 70 -> BUY_NOW_PAY_LATER_ALLOWLIST_ZIP
    90,  // 71 -> SAVED_TAB_GROUP
    102,  // 74 -> TEXT_CLASSIFIER_ENTITY_DETECTION
    50,  // 75 -> EWALLET_MERCHANT_ALLOWLIST
    78,  // 76 -> OPTIMIZATION_GUIDE_ICON_VIEW
    86,  // 77 -> PRIVACY_POLICY_ANNOTATION
    15,  // 78 -> BMO_CREDIT_CARD_AIR_MILES_PARTNER_BENEFITS
    16,  // 79 -> BMO_CREDIT_CARD_ALCOHOL_STORE_BENEFITS
    17,  // 80 -> BMO_CREDIT_CARD_DINING_BENEFITS
    18,  // 81 -> BMO_CREDIT_CARD_DRUGSTORE_BENEFITS
    19,  // 82 -> BMO_CREDIT_CARD_ENTERTAINMENT_BENEFITS
    20,  // 83 -> BMO_CREDIT_CARD_GROCERY_BENEFITS
    21,  // 84 -> BMO_CREDIT_CARD_OFFICE_SUPPLY_BENEFITS
    22,  // 85 -> BMO_CREDIT_CARD_RECURRING_BILL_BENEFITS
    23,  // 86 -> BMO_CREDIT_CARD_TRANSIT_BENEFITS
    24,  // 87 -> BMO_CREDIT_CARD_TRAVEL_BENEFITS
    25,  // 88 -> BMO_CREDIT_CARD_WHOLESALE_CLUB_BENEFITS
    58,  // 90 -> GLIC_CONTEXTUAL_CUEING
    59,  // 91 -> GLIC_ZERO_STATE_SUGGESTIONS
    57,  // 92 -> GLIC_ACTION_PAGE_BLOCK
    52,  // 93 -> FEDCM_CLICKTHROUGH_RATE
    49,  // 97 -> DIGITAL_CREDENTIALS_LOW_FRICTION
    0,  // 98 -> A2A_MERCHANT_ALLOWLIST
    109,  // 99 -> WALLETABLE_PASS_DETECTION_ALLOWLIST
    93,  // 100 -> SHARED_CREDIT_CARD_FLAT_RATE_BENEFITS_BLOCKLIST
    28,  // 102 -> BUY_NOW_PAY_LATER_ALLOWLIST_KLARNA
    32,  // 103 -> BUY_NOW_PAY_LATER_BLOCKLIST_AFFIRM
    36,  // 104 -> BUY_NOW_PAY_LATER_BLOCKLIST_ZIP
    34,  // 105 -> BUY_NOW_PAY_LATER_BLOCKLIST_KLARNA
    65,  // 106 -> LENS_OVERLAY_EDU_ACTION_CHIP_BLOCKLIST
    64,  // 107 -> LENS_OVERLAY_EDU_ACTION_CHIP_ALLOWLIST
    112,  // 108 -> WALLETABLE_PASS_DETECTION_LOYALTY_ALLOWLIST
    110,  // 109 -> WALLETABLE_PASS_DETECTION_BOARDING_PASS_ALLOWLIST
    76,  // 110 -> NTP_NEXT_DEEP_DIVE_ACTION_CHIP_BLOCKLIST
    75,  // 111 -> NTP_NEXT_DEEP_DIVE_ACTION_CHIP_ALLOWLIST
    87,  // 112 -> READER_MODE_ELIGIBLE
    27,  // 113 -> BUY_NOW_PAY_LATER_ALLOWLIST_AFFIRM_ANDROID
    31,  // 114 -> BUY_NOW_PAY_LATER_ALLOWLIST_ZIP_ANDROID
    29,  // 115 -> BUY_NOW_PAY_LATER_ALLOWLIST_KLARNA_ANDROID
    11,  // 116 -> AUTOFILL_ACTOR_IFRAME_ORIGIN_ALLOWLIST
    113,  // 117 -> WALLETABLE_PASS_DETECTION_TRANSIT_TICKET_ALLOWLIST
    111,  // 118 -> WALLETABLE_PASS_DETECTION_EVENT_PASS_ALLOWLIST
    101,  // 119 -> SKILLS
    83,  // 120 -> PIX_PSP_ALLOWLIST
    63,  // 121 -> INDIGO
    56,  // 122 -> FINDS_PAGE_THEME
    77,  // 123 -> OMNIBOX_AUTOFILL_IFRAME_ALLOWLIST
    33,  // 124 -> BUY_NOW_PAY_LATER_BLOCKLIST_AFFIRM_ANDROID
    37,  // 125 -> BUY_NOW_PAY_LATER_BLOCKLIST_ZIP_ANDROID
    35,  // 126 -> BUY_NOW_PAY_LATER_BLOCKLIST_KLARNA_ANDROID
    46,  // 127 -> CURINOS_CREDIT_CARD_FLIGHT_BENEFITS
    47,  // 128 -> CURINOS_CREDIT_CARD_HOTEL_BENEFITS
    45,  // 129 -> CURINOS_CREDIT_CARD_CAR_RENTAL_BENEFITS
    55,  // 130 -> FILTER_TASKS_SUPPORTED
    54,  // 131 -> FILTER_EXTRACT_ATTRIBUTES
    12,  // 132 -> AUTOFILL_AT_MEMORY_BLOCKED
    53,  // 133 -> FILTER_EXECUTION_STRATEGY
};

bool OptimizationType_Parse(::absl::string_view name,
                                  OptimizationType* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      OptimizationType_entries, 114, name, &int_value);
  if (success) {
    *value = static_cast<OptimizationType>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    OptimizationType_strings[114] = {};

const ::std::string& OptimizationType_Name(OptimizationType value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      OptimizationType_entries, OptimizationType_entries_by_number, 114,
      OptimizationType_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(OptimizationType_entries,
                                  OptimizationType_entries_by_number,
                                  114, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : OptimizationType_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t KeyRepresentation_internal_data_[] = {
    327680u, 0u, };
static const char KeyRepresentation_names[] = {
    "FULL_URL"
    "HASHED_HOST"
    "HOST"
    "HOST_SUFFIX"
    "REPRESENTATION_UNSPECIFIED"
};

static const ::google::protobuf::internal::EnumEntry KeyRepresentation_entries[] = {
    {{&KeyRepresentation_names[0], 8}, 2},
    {{&KeyRepresentation_names[8], 11}, 4},
    {{&KeyRepresentation_names[19], 4}, 3},
    {{&KeyRepresentation_names[23], 11}, 1},
    {{&KeyRepresentation_names[34], 26}, 0},
};

static const int KeyRepresentation_entries_by_number[] = {
    4,  // 0 -> REPRESENTATION_UNSPECIFIED
    3,  // 1 -> HOST_SUFFIX
    0,  // 2 -> FULL_URL
    2,  // 3 -> HOST
    1,  // 4 -> HASHED_HOST
};

bool KeyRepresentation_Parse(::absl::string_view name,
                                  KeyRepresentation* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      KeyRepresentation_entries, 5, name, &int_value);
  if (success) {
    *value = static_cast<KeyRepresentation>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    KeyRepresentation_strings[5] = {};

const ::std::string& KeyRepresentation_Name(KeyRepresentation value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      KeyRepresentation_entries, KeyRepresentation_entries_by_number, 5,
      KeyRepresentation_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(KeyRepresentation_entries,
                                  KeyRepresentation_entries_by_number,
                                  5, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : KeyRepresentation_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t BloomFilterFormat_internal_data_[] = {
    196608u, 0u, };
static const char BloomFilterFormat_names[] = {
    "BLOOM_FILTER_FORMAT_PLAINTEXT"
    "BLOOM_FILTER_FORMAT_SHA256"
    "BLOOM_FILTER_FORMAT_UNKNOWN"
};

static const ::google::protobuf::internal::EnumEntry BloomFilterFormat_entries[] = {
    {{&BloomFilterFormat_names[0], 29}, 1},
    {{&BloomFilterFormat_names[29], 26}, 2},
    {{&BloomFilterFormat_names[55], 27}, 0},
};

static const int BloomFilterFormat_entries_by_number[] = {
    2,  // 0 -> BLOOM_FILTER_FORMAT_UNKNOWN
    0,  // 1 -> BLOOM_FILTER_FORMAT_PLAINTEXT
    1,  // 2 -> BLOOM_FILTER_FORMAT_SHA256
};

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

const ::std::string& BloomFilterFormat_Name(BloomFilterFormat value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      BloomFilterFormat_entries, BloomFilterFormat_entries_by_number, 3,
      BloomFilterFormat_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(BloomFilterFormat_entries,
                                  BloomFilterFormat_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : BloomFilterFormat_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t HintSource_internal_data_[] = {
    196608u, 0u, };
static const char HintSource_names[] = {
    "HINT_SOURCE_OPTIMIZATION_GUIDE_SERVICE"
    "HINT_SOURCE_OPTIMIZATION_HINTS_COMPONENT"
    "HINT_SOURCE_UNKNOWN"
};

static const ::google::protobuf::internal::EnumEntry HintSource_entries[] = {
    {{&HintSource_names[0], 38}, 2},
    {{&HintSource_names[38], 40}, 1},
    {{&HintSource_names[78], 19}, 0},
};

static const int HintSource_entries_by_number[] = {
    2,  // 0 -> HINT_SOURCE_UNKNOWN
    1,  // 1 -> HINT_SOURCE_OPTIMIZATION_HINTS_COMPONENT
    0,  // 2 -> HINT_SOURCE_OPTIMIZATION_GUIDE_SERVICE
};

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

const ::std::string& HintSource_Name(HintSource value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      HintSource_entries, HintSource_entries_by_number, 3,
      HintSource_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(HintSource_entries,
                                  HintSource_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : HintSource_strings[idx].get();
}
PROTOBUF_CONSTINIT const uint32_t ThemeKey_internal_data_[] = {
    196608u, 0u, };
static const char ThemeKey_names[] = {
    "THEME_KEY_DARK"
    "THEME_KEY_LIGHT"
    "THEME_KEY_UNKNOWN"
};

static const ::google::protobuf::internal::EnumEntry ThemeKey_entries[] = {
    {{&ThemeKey_names[0], 14}, 2},
    {{&ThemeKey_names[14], 15}, 1},
    {{&ThemeKey_names[29], 17}, 0},
};

static const int ThemeKey_entries_by_number[] = {
    2,  // 0 -> THEME_KEY_UNKNOWN
    1,  // 1 -> THEME_KEY_LIGHT
    0,  // 2 -> THEME_KEY_DARK
};

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

const ::std::string& ThemeKey_Name(ThemeKey value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      ThemeKey_entries, ThemeKey_entries_by_number, 3,
      ThemeKey_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(ThemeKey_entries,
                                  ThemeKey_entries_by_number,
                                  3, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : ThemeKey_strings[idx].get();
}
// ===================================================================

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MatchedHintInfo* 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_, version_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, version_),
           offsetof(Impl_, key_representation_) -
               offsetof(Impl_, version_) +
               sizeof(Impl_::key_representation_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite MatchedHintInfo_class_data_ =
    MatchedHintInfo::InternalGenerateClassData_(MatchedHintInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MatchedHintInfo::GetClassData() const {
  return MatchedHintInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MatchedHintInfo::GetClassData() const {
  return MatchedHintInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MatchedHintInfo::ParseTableT_
    MatchedHintInfo::_table_ =
        MatchedHintInfo::InternalGenerateParseTable_(MatchedHintInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MatchedHintInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.MatchedHintInfo)
  ::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_.key_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.version_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.key_representation_) -
        reinterpret_cast<char*>(&_impl_.version_)) + sizeof(_impl_.key_representation_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_key_representation(), target);
  }

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

  // optional int64 version = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<3>(
            stream, this_._internal_version(), 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:optimization_guide.proto.MatchedHintInfo)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MatchedHintInfo::ByteSizeLong(const MessageLite& base) {
  const MatchedHintInfo& this_ = static_cast<const MatchedHintInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MatchedHintInfo::ByteSizeLong() const {
  const MatchedHintInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.MatchedHintInfo)
  ::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 key = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_key());
    }
    // optional int64 version = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_version());
    }
    // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_key_representation());
    }
  }
  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 MatchedHintInfo::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<MatchedHintInfo*>(&to_msg);
  auto& from = static_cast<const MatchedHintInfo&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.MatchedHintInfo)
  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_key(from._internal_key());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.version_ = from._impl_.version_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.key_representation_ = from._impl_.key_representation_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void MatchedHintInfo::InternalSwap(MatchedHintInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.key_, &other->_impl_.key_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.key_representation_)
      + sizeof(MatchedHintInfo::_impl_.key_representation_)
      - PROTOBUF_FIELD_OFFSET(MatchedHintInfo, _impl_.version_)>(
          reinterpret_cast<char*>(&_impl_.version_),
          reinterpret_cast<char*>(&other->_impl_.version_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HostInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.matched_hint_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.matched_hint_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite HostInfo_class_data_ =
    HostInfo::InternalGenerateClassData_(HostInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HostInfo::GetClassData() const {
  return HostInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HostInfo::GetClassData() const {
  return HostInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HostInfo::ParseTableT_
    HostInfo::_table_ =
        HostInfo::InternalGenerateParseTable_(HostInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HostInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HostInfo)
  ::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_.host_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.matched_hint_ != nullptr);
      _impl_.matched_hint_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

  // optional .optimization_guide.proto.MatchedHintInfo matched_hint = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.matched_hint_, this_._impl_.matched_hint_->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:optimization_guide.proto.HostInfo)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HostInfo::ByteSizeLong(const MessageLite& base) {
  const HostInfo& this_ = static_cast<const HostInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HostInfo::ByteSizeLong() const {
  const HostInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.HostInfo)
  ::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)) {
    // optional string host = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_host());
    }
    // optional .optimization_guide.proto.MatchedHintInfo matched_hint = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.matched_hint_);
    }
  }
  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 HostInfo::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HostInfo*>(&to_msg);
  auto& from = static_cast<const HostInfo&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HostInfo)
  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_host(from._internal_host());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.matched_hint_ != nullptr);
      if (_this->_impl_.matched_hint_ == nullptr) {
        _this->_impl_.matched_hint_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.matched_hint_);
      } else {
        _this->_impl_.matched_hint_->MergeFrom(*from._impl_.matched_hint_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  UrlInfo* 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:optimization_guide.proto.UrlInfo)
}
PROTOBUF_NDEBUG_INLINE UrlInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        url_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite UrlInfo_class_data_ =
    UrlInfo::InternalGenerateClassData_(UrlInfo_globals_._default);

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

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string url = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_url();
    target = stream->WriteStringMaybeAliased(1, _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:optimization_guide.proto.UrlInfo)
  return target;
}

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

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

   {
    // optional string url = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_url());
    }
  }
  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 UrlInfo::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<UrlInfo*>(&to_msg);
  auto& from = static_cast<const UrlInfo&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.UrlInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_set_url(from._internal_url());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void UrlInfo::InternalSwap(UrlInfo* 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_.url_, &other->_impl_.url_, arena);
}

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

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

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

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

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

inline void HashedHostInfos::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.num_hash_bits_ = {};
}
HashedHostInfos::~HashedHostInfos() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.HashedHostInfos)
  SharedDtor(*this);
}
inline void HashedHostInfos::SharedDtor(MessageLite& self) {
  HashedHostInfos& this_ = static_cast<HashedHostInfos&>(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 HashedHostInfos_class_data_ =
    HashedHostInfos::InternalGenerateClassData_(HashedHostInfos_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HashedHostInfos::GetClassData() const {
  return HashedHostInfos_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HashedHostInfos::GetClassData() const {
  return HashedHostInfos_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HashedHostInfos::ParseTableT_
    HashedHostInfos::_table_ =
        HashedHostInfos::InternalGenerateParseTable_(HashedHostInfos_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HashedHostInfos::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.HashedHostInfos)
  ::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_.partial_host_hashes_.Clear();
  }
  _impl_.num_hash_bits_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated uint32 partial_host_hashes = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_partial_host_hashes_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_partial_host_hashes().Get(i), target);
    }
  }

  // optional uint32 num_hash_bits = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_num_hash_bits(), 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:optimization_guide.proto.HashedHostInfos)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated uint32 partial_host_hashes = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_partial_host_hashes());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_partial_host_hashes_size());
      total_size += tag_size + data_size;
    }
    // optional uint32 num_hash_bits = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_hash_bits());
    }
  }
  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 HashedHostInfos::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HashedHostInfos*>(&to_msg);
  auto& from = static_cast<const HashedHostInfos&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.HashedHostInfos)
  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_partial_host_hashes()->MergeFrom(from._internal_partial_host_hashes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.num_hash_bits_ = from._impl_.num_hash_bits_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void HashedHostInfos::InternalSwap(HashedHostInfos* 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_.partial_host_hashes_.InternalSwap(&other->_impl_.partial_host_hashes_);
  swap(_impl_.num_hash_bits_, other->_impl_.num_hash_bits_);
}

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

void GetHintsRequest::clear_origin_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.origin_info_ != nullptr) _impl_.origin_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
GetHintsRequest::GetHintsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, GetHintsRequest_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.GetHintsRequest)
}
PROTOBUF_NDEBUG_INLINE GetHintsRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::GetHintsRequest& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        hosts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::GetHintsRequest,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.hosts_)>()
          , from.hosts_
        }
        ,
        supported_optimizations_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::GetHintsRequest,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.supported_optimizations_)>()
          , from.supported_optimizations_
        }
        ,
        urls_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::GetHintsRequest,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.urls_)>()
          , from.urls_
        }
        ,
        supported_key_representations_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::GetHintsRequest,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.supported_key_representations_)>()
          , from.supported_key_representations_
        }
        ,
        locale_(arena, from.locale_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  GetHintsRequest* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.hashed_hosts_ = (CheckHasBit(cached_has_bits, 0x00000020U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.hashed_hosts_)
                : nullptr;
  _impl_.origin_info_ = (CheckHasBit(cached_has_bits, 0x00000040U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.origin_info_)
                : nullptr;
  _impl_.context_metadata_ = (CheckHasBit(cached_has_bits, 0x00000080U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.context_metadata_)
                : nullptr;
  _impl_.context_ = from._impl_.context_;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.GetHintsRequest)
}
PROTOBUF_NDEBUG_INLINE GetHintsRequest::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        hosts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.hosts_)>()
         }
        ,
        supported_optimizations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.supported_optimizations_)>()
         }
        ,
        urls_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.urls_)>()
         }
        ,
        supported_key_representations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::GetHintsRequest,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsRequest, _impl_.supported_key_representations_)>()
         }
        ,
        locale_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite GetHintsRequest_class_data_ =
    GetHintsRequest::InternalGenerateClassData_(GetHintsRequest_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GetHintsRequest::GetClassData() const {
  return GetHintsRequest_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GetHintsRequest::GetClassData() const {
  return GetHintsRequest_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const GetHintsRequest::ParseTableT_
    GetHintsRequest::_table_ =
        GetHintsRequest::InternalGenerateParseTable_(GetHintsRequest_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void GetHintsRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.GetHintsRequest)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.hosts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.supported_optimizations_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.urls_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.supported_key_representations_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.locale_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(_impl_.hashed_hosts_ != nullptr);
      _impl_.hashed_hosts_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(_impl_.origin_info_ != nullptr);
      _impl_.origin_info_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(_impl_.context_metadata_ != nullptr);
      _impl_.context_metadata_->Clear();
    }
  }
  _impl_.context_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

  // repeated .optimization_guide.proto.OptimizationType supported_optimizations = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_supported_optimizations_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, static_cast<::optimization_guide::proto::OptimizationType>(this_._internal_supported_optimizations().Get(i)),
          target);
    }
  }

  // optional .optimization_guide.proto.RequestContext context = 3;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_context(), target);
  }

  // repeated .optimization_guide.proto.UrlInfo urls = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_urls_size());
         i < n; i++) {
      const auto& repfield = this_._internal_urls().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .optimization_guide.proto.KeyRepresentation supported_key_representations = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (int i = 0, n = this_._internal_supported_key_representations_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          5, static_cast<::optimization_guide::proto::KeyRepresentation>(this_._internal_supported_key_representations().Get(i)),
          target);
    }
  }

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

  // optional .optimization_guide.proto.HashedHostInfos hashed_hosts = 8;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.hashed_hosts_, this_._impl_.hashed_hosts_->GetCachedSize(), target,
        stream);
  }

  // optional .optimization_guide.proto.OriginInfo origin_info = 9;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.origin_info_, this_._impl_.origin_info_->GetCachedSize(), target,
        stream);
  }

  // optional .optimization_guide.proto.RequestContextMetadata context_metadata = 11;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        11, *this_._impl_.context_metadata_, this_._impl_.context_metadata_->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:optimization_guide.proto.GetHintsRequest)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .optimization_guide.proto.HostInfo hosts = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_hosts_size();
      for (const auto& msg : this_._internal_hosts()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.OptimizationType supported_optimizations = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_supported_optimizations());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_supported_optimizations_size());
      total_size += data_size + tag_size;
    }
    // repeated .optimization_guide.proto.UrlInfo urls = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_urls_size();
      for (const auto& msg : this_._internal_urls()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.KeyRepresentation supported_key_representations = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_supported_key_representations());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_supported_key_representations_size());
      total_size += data_size + tag_size;
    }
    // optional string locale = 7;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_locale());
    }
    // optional .optimization_guide.proto.HashedHostInfos hashed_hosts = 8;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hashed_hosts_);
    }
    // optional .optimization_guide.proto.OriginInfo origin_info = 9;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.origin_info_);
    }
    // optional .optimization_guide.proto.RequestContextMetadata context_metadata = 11;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.context_metadata_);
    }
  }
   {
    // optional .optimization_guide.proto.RequestContext context = 3;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_context());
    }
  }
  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 GetHintsRequest::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<GetHintsRequest*>(&to_msg);
  auto& from = static_cast<const GetHintsRequest&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.GetHintsRequest)
  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_hosts()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_hosts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_supported_optimizations()->MergeFrom(from._internal_supported_optimizations());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_urls()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_urls());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_supported_key_representations()->MergeFrom(from._internal_supported_key_representations());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_locale(from._internal_locale());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      ABSL_DCHECK(from._impl_.hashed_hosts_ != nullptr);
      if (_this->_impl_.hashed_hosts_ == nullptr) {
        _this->_impl_.hashed_hosts_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.hashed_hosts_);
      } else {
        _this->_impl_.hashed_hosts_->MergeFrom(*from._impl_.hashed_hosts_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      ABSL_DCHECK(from._impl_.origin_info_ != nullptr);
      if (_this->_impl_.origin_info_ == nullptr) {
        _this->_impl_.origin_info_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.origin_info_);
      } else {
        _this->_impl_.origin_info_->MergeFrom(*from._impl_.origin_info_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      ABSL_DCHECK(from._impl_.context_metadata_ != nullptr);
      if (_this->_impl_.context_metadata_ == nullptr) {
        _this->_impl_.context_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.context_metadata_);
      } else {
        _this->_impl_.context_metadata_->MergeFrom(*from._impl_.context_metadata_);
      }
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    _this->_impl_.context_ = from._impl_.context_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void GetHintsRequest::InternalSwap(GetHintsRequest* 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_.hosts_.InternalSwap(&other->_impl_.hosts_);
  _impl_.supported_optimizations_.InternalSwap(&other->_impl_.supported_optimizations_);
  _impl_.urls_.InternalSwap(&other->_impl_.urls_);
  _impl_.supported_key_representations_.InternalSwap(&other->_impl_.supported_key_representations_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.locale_, &other->_impl_.locale_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.context_)
      + sizeof(GetHintsRequest::_impl_.context_)
      - PROTOBUF_FIELD_OFFSET(GetHintsRequest, _impl_.hashed_hosts_)>(
          reinterpret_cast<char*>(&_impl_.hashed_hosts_),
          reinterpret_cast<char*>(&other->_impl_.hashed_hosts_));
}

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

void RequestContextMetadata::set_allocated_page_insights_hub_metadata(::optimization_guide::proto::PageInsightsHubRequestContextMetadata* PROTOBUF_NULLABLE page_insights_hub_metadata) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_metadata();
  if (page_insights_hub_metadata) {
    ::google::protobuf::Arena* submessage_arena = page_insights_hub_metadata->GetArena();
    if (message_arena != submessage_arena) {
      page_insights_hub_metadata = ::google::protobuf::internal::GetOwnedMessage(message_arena, page_insights_hub_metadata, submessage_arena);
    }
    set_has_page_insights_hub_metadata();
    _impl_.metadata_.page_insights_hub_metadata_ = page_insights_hub_metadata;
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.RequestContextMetadata.page_insights_hub_metadata)
}
void RequestContextMetadata::set_allocated_filter_execution_metadata(::optimization_guide::proto::FilterExecutionRequestContextMetadata* PROTOBUF_NULLABLE filter_execution_metadata) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_metadata();
  if (filter_execution_metadata) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(filter_execution_metadata)->GetArena();
    if (message_arena != submessage_arena) {
      filter_execution_metadata = ::google::protobuf::internal::GetOwnedMessage(message_arena, filter_execution_metadata, submessage_arena);
    }
    set_has_filter_execution_metadata();
    _impl_.metadata_.filter_execution_metadata_ = filter_execution_metadata;
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.RequestContextMetadata.filter_execution_metadata)
}
void RequestContextMetadata::clear_filter_execution_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (metadata_case() == kFilterExecutionMetadata) {
    if (GetArena() == nullptr) {
      delete _impl_.metadata_.filter_execution_metadata_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      if (_impl_.metadata_.filter_execution_metadata_ != nullptr) {
        _impl_.metadata_.filter_execution_metadata_->Clear();
      }
    }
    clear_has_metadata();
  }
}
RequestContextMetadata::RequestContextMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RequestContextMetadata_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.RequestContextMetadata)
}
PROTOBUF_NDEBUG_INLINE RequestContextMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::RequestContextMetadata& from_msg)
      : metadata_{},
        _cached_size_{0},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RequestContextMetadata* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (metadata_case()) {
    case METADATA_NOT_SET:
      break;
      case kPageInsightsHubMetadata:
        _impl_.metadata_.page_insights_hub_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.page_insights_hub_metadata_);
        break;
      case kFilterExecutionMetadata:
        _impl_.metadata_.filter_execution_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.filter_execution_metadata_);
        break;
  }

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

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

void RequestContextMetadata::clear_metadata() {
// @@protoc_insertion_point(one_of_clear_start:optimization_guide.proto.RequestContextMetadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (metadata_case()) {
    case kPageInsightsHubMetadata: {
      if (GetArena() == nullptr) {
        delete _impl_.metadata_.page_insights_hub_metadata_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.metadata_.page_insights_hub_metadata_ != nullptr) {
          _impl_.metadata_.page_insights_hub_metadata_->Clear();
        }
      }
      break;
    }
    case kFilterExecutionMetadata: {
      if (GetArena() == nullptr) {
        delete _impl_.metadata_.filter_execution_metadata_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.metadata_.filter_execution_metadata_ != nullptr) {
          _impl_.metadata_.filter_execution_metadata_->Clear();
        }
      }
      break;
    }
    case METADATA_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = METADATA_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite RequestContextMetadata_class_data_ =
    RequestContextMetadata::InternalGenerateClassData_(RequestContextMetadata_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RequestContextMetadata::GetClassData() const {
  return RequestContextMetadata_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RequestContextMetadata::GetClassData() const {
  return RequestContextMetadata_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RequestContextMetadata::ParseTableT_
    RequestContextMetadata::_table_ =
        RequestContextMetadata::InternalGenerateParseTable_(RequestContextMetadata_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RequestContextMetadata::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.RequestContextMetadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_metadata();
  _internal_metadata_.Clear<::std::string>();
}

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

  switch (this_.metadata_case()) {
    case kPageInsightsHubMetadata: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, *this_._impl_.metadata_.page_insights_hub_metadata_, this_._impl_.metadata_.page_insights_hub_metadata_->GetCachedSize(), target,
          stream);
      break;
    }
    case kFilterExecutionMetadata: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          2, *this_._impl_.metadata_.filter_execution_metadata_, this_._impl_.metadata_.filter_execution_metadata_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  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:optimization_guide.proto.RequestContextMetadata)
  return target;
}

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

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

  switch (this_.metadata_case()) {
    // .optimization_guide.proto.PageInsightsHubRequestContextMetadata page_insights_hub_metadata = 1;
    case kPageInsightsHubMetadata: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.metadata_.page_insights_hub_metadata_);
      break;
    }
    // .optimization_guide.proto.FilterExecutionRequestContextMetadata filter_execution_metadata = 2;
    case kFilterExecutionMetadata: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.metadata_.filter_execution_metadata_);
      break;
    }
    case METADATA_NOT_SET: {
      break;
    }
  }
  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 RequestContextMetadata::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<RequestContextMetadata*>(&to_msg);
  auto& from = static_cast<const RequestContextMetadata&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.RequestContextMetadata)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_metadata();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kPageInsightsHubMetadata: {
        if (oneof_needs_init) {
          _this->_impl_.metadata_.page_insights_hub_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.page_insights_hub_metadata_);
        } else {
          _this->_impl_.metadata_.page_insights_hub_metadata_->MergeFrom(*from._impl_.metadata_.page_insights_hub_metadata_);
        }
        break;
      }
      case kFilterExecutionMetadata: {
        if (oneof_needs_init) {
          _this->_impl_.metadata_.filter_execution_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.filter_execution_metadata_);
        } else {
          _this->_impl_.metadata_.filter_execution_metadata_->MergeFrom(*from._impl_.metadata_.filter_execution_metadata_);
        }
        break;
      }
      case METADATA_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

PageInsightsHubRequestContextMetadata::PageInsightsHubRequestContextMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PageInsightsHubRequestContextMetadata_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.PageInsightsHubRequestContextMetadata)
}
PageInsightsHubRequestContextMetadata::PageInsightsHubRequestContextMetadata(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PageInsightsHubRequestContextMetadata& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PageInsightsHubRequestContextMetadata_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE PageInsightsHubRequestContextMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void PageInsightsHubRequestContextMetadata::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, navigation_timestamp_ms_),
           0,
           offsetof(Impl_, should_not_log_or_personalize_) -
               offsetof(Impl_, navigation_timestamp_ms_) +
               sizeof(Impl_::should_not_log_or_personalize_));
}
PageInsightsHubRequestContextMetadata::~PageInsightsHubRequestContextMetadata() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.PageInsightsHubRequestContextMetadata)
  SharedDtor(*this);
}
inline void PageInsightsHubRequestContextMetadata::SharedDtor(MessageLite& self) {
  PageInsightsHubRequestContextMetadata& this_ = static_cast<PageInsightsHubRequestContextMetadata&>(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 PageInsightsHubRequestContextMetadata_class_data_ =
    PageInsightsHubRequestContextMetadata::InternalGenerateClassData_(PageInsightsHubRequestContextMetadata_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PageInsightsHubRequestContextMetadata::GetClassData() const {
  return PageInsightsHubRequestContextMetadata_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PageInsightsHubRequestContextMetadata::GetClassData() const {
  return PageInsightsHubRequestContextMetadata_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PageInsightsHubRequestContextMetadata::ParseTableT_
    PageInsightsHubRequestContextMetadata::_table_ =
        PageInsightsHubRequestContextMetadata::InternalGenerateParseTable_(PageInsightsHubRequestContextMetadata_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PageInsightsHubRequestContextMetadata::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.PageInsightsHubRequestContextMetadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    ::memset(&_impl_.navigation_timestamp_ms_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.should_not_log_or_personalize_) -
        reinterpret_cast<char*>(&_impl_.navigation_timestamp_ms_)) + sizeof(_impl_.should_not_log_or_personalize_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool is_user_initiated = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_is_user_initiated(), target);
  }

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

  // optional bool should_not_log_or_personalize = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_should_not_log_or_personalize(), target);
  }

  // optional int64 navigation_timestamp_ms = 4;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<4>(
            stream, this_._internal_navigation_timestamp_ms(), 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:optimization_guide.proto.PageInsightsHubRequestContextMetadata)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PageInsightsHubRequestContextMetadata::ByteSizeLong(const MessageLite& base) {
  const PageInsightsHubRequestContextMetadata& this_ = static_cast<const PageInsightsHubRequestContextMetadata&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PageInsightsHubRequestContextMetadata::ByteSizeLong() const {
  const PageInsightsHubRequestContextMetadata& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.PageInsightsHubRequestContextMetadata)
  ::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 += ::absl::popcount(0x0000000eU & cached_has_bits) * 2;
   {
    // optional int64 navigation_timestamp_ms = 4;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_navigation_timestamp_ms());
    }
  }
  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 PageInsightsHubRequestContextMetadata::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PageInsightsHubRequestContextMetadata*>(&to_msg);
  auto& from = static_cast<const PageInsightsHubRequestContextMetadata&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.PageInsightsHubRequestContextMetadata)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.navigation_timestamp_ms_ = from._impl_.navigation_timestamp_ms_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.is_user_initiated_ = from._impl_.is_user_initiated_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.is_initial_page_ = from._impl_.is_initial_page_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.should_not_log_or_personalize_ = from._impl_.should_not_log_or_personalize_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

void GetHintsResponse::clear_max_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.max_cache_duration_ != nullptr) _impl_.max_cache_duration_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
GetHintsResponse::GetHintsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, GetHintsResponse_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.GetHintsResponse)
}
PROTOBUF_NDEBUG_INLINE GetHintsResponse::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::GetHintsResponse& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        hints_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::GetHintsResponse,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsResponse, _impl_.hints_)>()
          , from.hints_
        }
        ,
        hints_to_remove_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::GetHintsResponse,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::GetHintsResponse, _impl_.hints_to_remove_)>()
          , from.hints_to_remove_
        }
     {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  GetHintsResponse* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.max_cache_duration_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.max_cache_duration_)
                : nullptr;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite GetHintsResponse_class_data_ =
    GetHintsResponse::InternalGenerateClassData_(GetHintsResponse_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GetHintsResponse::GetClassData() const {
  return GetHintsResponse_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GetHintsResponse::GetClassData() const {
  return GetHintsResponse_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const GetHintsResponse::ParseTableT_
    GetHintsResponse::_table_ =
        GetHintsResponse::InternalGenerateParseTable_(GetHintsResponse_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void GetHintsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.GetHintsResponse)
  ::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_.hints_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.hints_to_remove_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.max_cache_duration_ != nullptr);
      _impl_.max_cache_duration_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

  // optional .optimization_guide.proto.Duration max_cache_duration = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.max_cache_duration_, this_._impl_.max_cache_duration_->GetCachedSize(), target,
        stream);
  }

  // repeated .optimization_guide.proto.MatchedHintInfo hints_to_remove = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_hints_to_remove_size());
         i < n; i++) {
      const auto& repfield = this_._internal_hints_to_remove().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = 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:optimization_guide.proto.GetHintsResponse)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .optimization_guide.proto.Hint hints = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_hints_size();
      for (const auto& msg : this_._internal_hints()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.MatchedHintInfo hints_to_remove = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_hints_to_remove_size();
      for (const auto& msg : this_._internal_hints_to_remove()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional .optimization_guide.proto.Duration max_cache_duration = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.max_cache_duration_);
    }
  }
  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 GetHintsResponse::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<GetHintsResponse*>(&to_msg);
  auto& from = static_cast<const GetHintsResponse&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.GetHintsResponse)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_hints()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_hints());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_hints_to_remove()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_hints_to_remove());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.max_cache_duration_ != nullptr);
      if (_this->_impl_.max_cache_duration_ == nullptr) {
        _this->_impl_.max_cache_duration_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.max_cache_duration_);
      } else {
        _this->_impl_.max_cache_duration_->MergeFrom(*from._impl_.max_cache_duration_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void GetHintsResponse::InternalSwap(GetHintsResponse* 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_.hints_.InternalSwap(&other->_impl_.hints_);
  _impl_.hints_to_remove_.InternalSwap(&other->_impl_.hints_to_remove_);
  swap(_impl_.max_cache_duration_, other->_impl_.max_cache_duration_);
}

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

void Optimization::set_allocated_loading_predictor_metadata(::optimization_guide::proto::LoadingPredictorMetadata* PROTOBUF_NULLABLE loading_predictor_metadata) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_metadata();
  if (loading_predictor_metadata) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(loading_predictor_metadata)->GetArena();
    if (message_arena != submessage_arena) {
      loading_predictor_metadata = ::google::protobuf::internal::GetOwnedMessage(message_arena, loading_predictor_metadata, submessage_arena);
    }
    set_has_loading_predictor_metadata();
    _impl_.metadata_.loading_predictor_metadata_ = loading_predictor_metadata;
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Optimization.loading_predictor_metadata)
}
void Optimization::clear_loading_predictor_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (metadata_case() == kLoadingPredictorMetadata) {
    if (GetArena() == nullptr) {
      delete _impl_.metadata_.loading_predictor_metadata_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      if (_impl_.metadata_.loading_predictor_metadata_ != nullptr) {
        _impl_.metadata_.loading_predictor_metadata_->Clear();
      }
    }
    clear_has_metadata();
  }
}
void Optimization::set_allocated_any_metadata(::optimization_guide::proto::Any* PROTOBUF_NULLABLE any_metadata) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_metadata();
  if (any_metadata) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(any_metadata)->GetArena();
    if (message_arena != submessage_arena) {
      any_metadata = ::google::protobuf::internal::GetOwnedMessage(message_arena, any_metadata, submessage_arena);
    }
    set_has_any_metadata();
    _impl_.metadata_.any_metadata_ = any_metadata;
  }
  // @@protoc_insertion_point(field_set_allocated:optimization_guide.proto.Optimization.any_metadata)
}
void Optimization::clear_any_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (metadata_case() == kAnyMetadata) {
    if (GetArena() == nullptr) {
      delete _impl_.metadata_.any_metadata_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      if (_impl_.metadata_.any_metadata_ != nullptr) {
        _impl_.metadata_.any_metadata_->Clear();
      }
    }
    clear_has_metadata();
  }
}
Optimization::Optimization(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Optimization_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.Optimization)
}
PROTOBUF_NDEBUG_INLINE Optimization::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::Optimization& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        metadata_{},
        _oneof_case_{from._oneof_case_[0]} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Optimization* 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_, tuning_version_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, tuning_version_),
           offsetof(Impl_, optimization_type_) -
               offsetof(Impl_, tuning_version_) +
               sizeof(Impl_::optimization_type_));
  switch (metadata_case()) {
    case METADATA_NOT_SET:
      break;
      case kLoadingPredictorMetadata:
        _impl_.metadata_.loading_predictor_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.loading_predictor_metadata_);
        break;
      case kAnyMetadata:
        _impl_.metadata_.any_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.any_metadata_);
        break;
  }

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

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

void Optimization::clear_metadata() {
// @@protoc_insertion_point(one_of_clear_start:optimization_guide.proto.Optimization)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (metadata_case()) {
    case kLoadingPredictorMetadata: {
      if (GetArena() == nullptr) {
        delete _impl_.metadata_.loading_predictor_metadata_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.metadata_.loading_predictor_metadata_ != nullptr) {
          _impl_.metadata_.loading_predictor_metadata_->Clear();
        }
      }
      break;
    }
    case kAnyMetadata: {
      if (GetArena() == nullptr) {
        delete _impl_.metadata_.any_metadata_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        if (_impl_.metadata_.any_metadata_ != nullptr) {
          _impl_.metadata_.any_metadata_->Clear();
        }
      }
      break;
    }
    case METADATA_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = METADATA_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Optimization_class_data_ =
    Optimization::InternalGenerateClassData_(Optimization_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Optimization::GetClassData() const {
  return Optimization_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Optimization::GetClassData() const {
  return Optimization_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Optimization::ParseTableT_
    Optimization::_table_ =
        Optimization::InternalGenerateParseTable_(Optimization_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Optimization::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.Optimization)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.tuning_version_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.optimization_type_) -
        reinterpret_cast<char*>(&_impl_.tuning_version_)) + sizeof(_impl_.optimization_type_));
  }
  clear_metadata();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_optimization_type(), target);
  }

  // optional uint64 tuning_version = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        6, this_._internal_tuning_version(), target);
  }

  switch (this_.metadata_case()) {
    case kLoadingPredictorMetadata: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          13, *this_._impl_.metadata_.loading_predictor_metadata_, this_._impl_.metadata_.loading_predictor_metadata_->GetCachedSize(), target,
          stream);
      break;
    }
    case kAnyMetadata: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          15, *this_._impl_.metadata_.any_metadata_, this_._impl_.metadata_.any_metadata_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  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:optimization_guide.proto.Optimization)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Optimization::ByteSizeLong(const MessageLite& base) {
  const Optimization& this_ = static_cast<const Optimization&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Optimization::ByteSizeLong() const {
  const Optimization& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.Optimization)
  ::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)) {
    // optional uint64 tuning_version = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
          this_._internal_tuning_version());
    }
    // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_optimization_type());
    }
  }
  switch (this_.metadata_case()) {
    // .optimization_guide.proto.LoadingPredictorMetadata loading_predictor_metadata = 13;
    case kLoadingPredictorMetadata: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.metadata_.loading_predictor_metadata_);
      break;
    }
    // .optimization_guide.proto.Any any_metadata = 15;
    case kAnyMetadata: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.metadata_.any_metadata_);
      break;
    }
    case METADATA_NOT_SET: {
      break;
    }
  }
  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 Optimization::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Optimization*>(&to_msg);
  auto& from = static_cast<const Optimization&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.Optimization)
  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->_impl_.tuning_version_ = from._impl_.tuning_version_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.optimization_type_ = from._impl_.optimization_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_metadata();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kLoadingPredictorMetadata: {
        if (oneof_needs_init) {
          _this->_impl_.metadata_.loading_predictor_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.loading_predictor_metadata_);
        } else {
          _this->_impl_.metadata_.loading_predictor_metadata_->MergeFrom(*from._impl_.metadata_.loading_predictor_metadata_);
        }
        break;
      }
      case kAnyMetadata: {
        if (oneof_needs_init) {
          _this->_impl_.metadata_.any_metadata_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.metadata_.any_metadata_);
        } else {
          _this->_impl_.metadata_.any_metadata_->MergeFrom(*from._impl_.metadata_.any_metadata_);
        }
        break;
      }
      case METADATA_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PageHint* 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:optimization_guide.proto.PageHint)
}
PROTOBUF_NDEBUG_INLINE PageHint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        allowlisted_optimizations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::PageHint,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::PageHint, _impl_.allowlisted_optimizations_)>()
         }
        ,
        page_pattern_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PageHint_class_data_ =
    PageHint::InternalGenerateClassData_(PageHint_globals_._default);

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

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

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

  // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_allowlisted_optimizations_size());
         i < n; i++) {
      const auto& repfield = this_._internal_allowlisted_optimizations().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = 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:optimization_guide.proto.PageHint)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PageHint::ByteSizeLong(const MessageLite& base) {
  const PageHint& this_ = static_cast<const PageHint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PageHint::ByteSizeLong() const {
  const PageHint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.PageHint)
  ::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 .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_allowlisted_optimizations_size();
      for (const auto& msg : this_._internal_allowlisted_optimizations()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional string page_pattern = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_page_pattern());
    }
  }
  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 PageHint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PageHint*>(&to_msg);
  auto& from = static_cast<const PageHint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.PageHint)
  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_allowlisted_optimizations()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_allowlisted_optimizations());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_page_pattern(from._internal_page_pattern());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void PageHint::InternalSwap(PageHint* 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_.allowlisted_optimizations_.InternalSwap(&other->_impl_.allowlisted_optimizations_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.page_pattern_, &other->_impl_.page_pattern_, arena);
}

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

void Hint::clear_max_cache_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.max_cache_duration_ != nullptr) _impl_.max_cache_duration_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
Hint::Hint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Hint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.Hint)
}
PROTOBUF_NDEBUG_INLINE Hint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::Hint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        allowlisted_optimizations_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::Hint,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Hint, _impl_.allowlisted_optimizations_)>()
          , from.allowlisted_optimizations_
        }
        ,
        page_hints_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::optimization_guide::proto::Hint,
              PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Hint, _impl_.page_hints_)>()
          , from.page_hints_
        }
        ,
        key_(arena, from.key_),
        version_(arena, from.version_) {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Hint* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.max_cache_duration_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.max_cache_duration_)
                : nullptr;
  _impl_.key_representation_ = from._impl_.key_representation_;

  // @@protoc_insertion_point(copy_constructor:optimization_guide.proto.Hint)
}
PROTOBUF_NDEBUG_INLINE Hint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        allowlisted_optimizations_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Hint,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Hint, _impl_.allowlisted_optimizations_)>()
         }
        ,
        page_hints_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Hint,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Hint, _impl_.page_hints_)>()
         }
        ,
        key_(arena),
        version_(arena) {}

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Hint_class_data_ =
    Hint::InternalGenerateClassData_(Hint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Hint::GetClassData() const {
  return Hint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Hint::GetClassData() const {
  return Hint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Hint::ParseTableT_
    Hint::_table_ =
        Hint::InternalGenerateParseTable_(Hint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Hint::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.Hint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.allowlisted_optimizations_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.page_hints_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.key_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.version_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.max_cache_duration_ != nullptr);
      _impl_.max_cache_duration_->Clear();
    }
  }
  _impl_.key_representation_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_key_representation(), target);
  }

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

  // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_allowlisted_optimizations_size());
         i < n; i++) {
      const auto& repfield = this_._internal_allowlisted_optimizations().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .optimization_guide.proto.PageHint page_hints = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_page_hints_size());
         i < n; i++) {
      const auto& repfield = this_._internal_page_hints().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

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

  // optional .optimization_guide.proto.Duration max_cache_duration = 6;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.max_cache_duration_, this_._impl_.max_cache_duration_->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:optimization_guide.proto.Hint)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated .optimization_guide.proto.Optimization allowlisted_optimizations = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_allowlisted_optimizations_size();
      for (const auto& msg : this_._internal_allowlisted_optimizations()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.PageHint page_hints = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_page_hints_size();
      for (const auto& msg : this_._internal_page_hints()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional string key = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_key());
    }
    // optional string version = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_version());
    }
    // optional .optimization_guide.proto.Duration max_cache_duration = 6;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.max_cache_duration_);
    }
    // optional .optimization_guide.proto.KeyRepresentation key_representation = 1;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_key_representation());
    }
  }
  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 Hint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Hint*>(&to_msg);
  auto& from = static_cast<const Hint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.Hint)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_allowlisted_optimizations()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_allowlisted_optimizations());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_page_hints()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_page_hints());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_key(from._internal_key());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_version(from._internal_version());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.max_cache_duration_ != nullptr);
      if (_this->_impl_.max_cache_duration_ == nullptr) {
        _this->_impl_.max_cache_duration_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.max_cache_duration_);
      } else {
        _this->_impl_.max_cache_duration_->MergeFrom(*from._impl_.max_cache_duration_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.key_representation_ = from._impl_.key_representation_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void Hint::InternalSwap(Hint* 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_.allowlisted_optimizations_.InternalSwap(&other->_impl_.allowlisted_optimizations_);
  _impl_.page_hints_.InternalSwap(&other->_impl_.page_hints_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.key_, &other->_impl_.key_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.version_, &other->_impl_.version_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Hint, _impl_.key_representation_)
      + sizeof(Hint::_impl_.key_representation_)
      - PROTOBUF_FIELD_OFFSET(Hint, _impl_.max_cache_duration_)>(
          reinterpret_cast<char*>(&_impl_.max_cache_duration_),
          reinterpret_cast<char*>(&other->_impl_.max_cache_duration_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BloomFilter* 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_, num_hash_functions_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, num_hash_functions_),
           offsetof(Impl_, num_bits_) -
               offsetof(Impl_, num_hash_functions_) +
               sizeof(Impl_::num_bits_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite BloomFilter_class_data_ =
    BloomFilter::InternalGenerateClassData_(BloomFilter_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BloomFilter::GetClassData() const {
  return BloomFilter_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BloomFilter::GetClassData() const {
  return BloomFilter_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const BloomFilter::ParseTableT_
    BloomFilter::_table_ =
        BloomFilter::InternalGenerateParseTable_(BloomFilter_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void BloomFilter::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.BloomFilter)
  ::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_.data_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.num_hash_functions_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.num_bits_) -
        reinterpret_cast<char*>(&_impl_.num_hash_functions_)) + sizeof(_impl_.num_bits_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

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

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

  // optional bytes data = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_data();
    target = stream->WriteBytesMaybeAliased(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:optimization_guide.proto.BloomFilter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BloomFilter::ByteSizeLong(const MessageLite& base) {
  const BloomFilter& this_ = static_cast<const BloomFilter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BloomFilter::ByteSizeLong() const {
  const BloomFilter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.BloomFilter)
  ::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 bytes data = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_data());
    }
    // optional uint32 num_hash_functions = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_hash_functions());
    }
    // optional uint32 num_bits = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_bits());
    }
  }
  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 BloomFilter::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<BloomFilter*>(&to_msg);
  auto& from = static_cast<const BloomFilter&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.BloomFilter)
  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_data(from._internal_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.num_hash_functions_ = from._impl_.num_hash_functions_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.num_bits_ = from._impl_.num_bits_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void BloomFilter::InternalSwap(BloomFilter* 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_.data_, &other->_impl_.data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.num_bits_)
      + sizeof(BloomFilter::_impl_.num_bits_)
      - PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.num_hash_functions_)>(
          reinterpret_cast<char*>(&_impl_.num_hash_functions_),
          reinterpret_cast<char*>(&other->_impl_.num_hash_functions_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  OptimizationFilter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.bloom_filter_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.bloom_filter_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, optimization_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, optimization_type_),
           offsetof(Impl_, bloom_filter_format_) -
               offsetof(Impl_, optimization_type_) +
               sizeof(Impl_::bloom_filter_format_));

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite OptimizationFilter_class_data_ =
    OptimizationFilter::InternalGenerateClassData_(OptimizationFilter_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OptimizationFilter::GetClassData() const {
  return OptimizationFilter_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
OptimizationFilter::GetClassData() const {
  return OptimizationFilter_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const OptimizationFilter::ParseTableT_
    OptimizationFilter::_table_ =
        OptimizationFilter::InternalGenerateParseTable_(OptimizationFilter_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void OptimizationFilter::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.OptimizationFilter)
  ::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_.regexps_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.exclusion_regexps_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.bloom_filter_ != nullptr);
      _impl_.bloom_filter_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000038U)) {
    ::memset(&_impl_.optimization_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.bloom_filter_format_) -
        reinterpret_cast<char*>(&_impl_.optimization_type_)) + sizeof(_impl_.bloom_filter_format_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_optimization_type(), target);
  }

  // optional .optimization_guide.proto.BloomFilter bloom_filter = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.bloom_filter_, this_._impl_.bloom_filter_->GetCachedSize(), target,
        stream);
  }

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

  // optional bool skip_host_suffix_checking = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_skip_host_suffix_checking(), target);
  }

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

  // optional .optimization_guide.proto.BloomFilterFormat bloom_filter_format = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this_._internal_bloom_filter_format(), 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:optimization_guide.proto.OptimizationFilter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t OptimizationFilter::ByteSizeLong(const MessageLite& base) {
  const OptimizationFilter& this_ = static_cast<const OptimizationFilter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t OptimizationFilter::ByteSizeLong() const {
  const OptimizationFilter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.OptimizationFilter)
  ::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>(0x00000010U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000002fU)) {
    // repeated string regexps = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_regexps().size());
      for (int i = 0, n = this_._internal_regexps().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_regexps().Get(i));
      }
    }
    // repeated string exclusion_regexps = 5;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_exclusion_regexps().size());
      for (int i = 0, n = this_._internal_exclusion_regexps().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_exclusion_regexps().Get(i));
      }
    }
    // optional .optimization_guide.proto.BloomFilter bloom_filter = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bloom_filter_);
    }
    // optional .optimization_guide.proto.OptimizationType optimization_type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_optimization_type());
    }
    // optional .optimization_guide.proto.BloomFilterFormat bloom_filter_format = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_bloom_filter_format());
    }
  }
  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 OptimizationFilter::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<OptimizationFilter*>(&to_msg);
  auto& from = static_cast<const OptimizationFilter&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.OptimizationFilter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_regexps()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_regexps());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_exclusion_regexps()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_exclusion_regexps());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.bloom_filter_ != nullptr);
      if (_this->_impl_.bloom_filter_ == nullptr) {
        _this->_impl_.bloom_filter_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.bloom_filter_);
      } else {
        _this->_impl_.bloom_filter_->MergeFrom(*from._impl_.bloom_filter_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.optimization_type_ = from._impl_.optimization_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.skip_host_suffix_checking_ = from._impl_.skip_host_suffix_checking_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.bloom_filter_format_ = from._impl_.bloom_filter_format_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void OptimizationFilter::InternalSwap(OptimizationFilter* 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_.regexps_.InternalSwap(&other->_impl_.regexps_);
  _impl_.exclusion_regexps_.InternalSwap(&other->_impl_.exclusion_regexps_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.bloom_filter_format_)
      + sizeof(OptimizationFilter::_impl_.bloom_filter_format_)
      - PROTOBUF_FIELD_OFFSET(OptimizationFilter, _impl_.bloom_filter_)>(
          reinterpret_cast<char*>(&_impl_.bloom_filter_),
          reinterpret_cast<char*>(&other->_impl_.bloom_filter_));
}

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

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

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Configuration* 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:optimization_guide.proto.Configuration)
}
PROTOBUF_NDEBUG_INLINE Configuration::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        hints_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Configuration,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Configuration, _impl_.hints_)>()
         }
        ,
        optimization_blocklists_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Configuration,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Configuration, _impl_.optimization_blocklists_)>()
         }
        ,
        optimization_allowlists_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::optimization_guide::proto::Configuration,
            PROTOBUF_FIELD_OFFSET(::optimization_guide::proto::Configuration, _impl_.optimization_allowlists_)>()
         }
     {}

inline void Configuration::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Configuration::~Configuration() {
  // @@protoc_insertion_point(destructor:optimization_guide.proto.Configuration)
  SharedDtor(*this);
}
inline void Configuration::SharedDtor(MessageLite& self) {
  Configuration& this_ = static_cast<Configuration&>(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 Configuration_class_data_ =
    Configuration::InternalGenerateClassData_(Configuration_globals_._default);

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

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

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

  // repeated .optimization_guide.proto.OptimizationFilter optimization_blocklists = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_optimization_blocklists_size());
         i < n; i++) {
      const auto& repfield = this_._internal_optimization_blocklists().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .optimization_guide.proto.OptimizationFilter optimization_allowlists = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_optimization_allowlists_size());
         i < n; i++) {
      const auto& repfield = this_._internal_optimization_allowlists().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = 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:optimization_guide.proto.Configuration)
  return target;
}

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

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

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .optimization_guide.proto.Hint hints = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_hints_size();
      for (const auto& msg : this_._internal_hints()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.OptimizationFilter optimization_blocklists = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_optimization_blocklists_size();
      for (const auto& msg : this_._internal_optimization_blocklists()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .optimization_guide.proto.OptimizationFilter optimization_allowlists = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_optimization_allowlists_size();
      for (const auto& msg : this_._internal_optimization_allowlists()) {
        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 Configuration::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Configuration*>(&to_msg);
  auto& from = static_cast<const Configuration&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.Configuration)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_hints()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_hints());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_optimization_blocklists()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_optimization_blocklists());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_optimization_allowlists()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_optimization_allowlists());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


void Configuration::InternalSwap(Configuration* 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_.hints_.InternalSwap(&other->_impl_.hints_);
  _impl_.optimization_blocklists_.InternalSwap(&other->_impl_.optimization_blocklists_);
  _impl_.optimization_allowlists_.InternalSwap(&other->_impl_.optimization_allowlists_);
}

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

void Version::clear_generation_timestamp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.generation_timestamp_ != nullptr) _impl_.generation_timestamp_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
Version::Version(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Version_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:optimization_guide.proto.Version)
}
PROTOBUF_NDEBUG_INLINE Version::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::optimization_guide::proto::Version& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

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

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Version* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.generation_timestamp_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.generation_timestamp_)
                : nullptr;
  _impl_.hint_source_ = from._impl_.hint_source_;

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

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

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Version_class_data_ =
    Version::InternalGenerateClassData_(Version_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Version::GetClassData() const {
  return Version_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Version::GetClassData() const {
  return Version_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Version::ParseTableT_
    Version::_table_ =
        Version::InternalGenerateParseTable_(Version_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Version::Clear() {
// @@protoc_insertion_point(message_clear_start:optimization_guide.proto.Version)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.generation_timestamp_ != nullptr);
    _impl_.generation_timestamp_->Clear();
  }
  _impl_.hint_source_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

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

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .optimization_guide.proto.Timestamp generation_timestamp = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.generation_timestamp_, this_._impl_.generation_timestamp_->GetCachedSize(), target,
        stream);
  }

  // optional .optimization_guide.proto.HintSource hint_source = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_hint_source(), 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:optimization_guide.proto.Version)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Version::ByteSizeLong(const MessageLite& base) {
  const Version& this_ = static_cast<const Version&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Version::ByteSizeLong() const {
  const Version& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:optimization_guide.proto.Version)
  ::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)) {
    // optional .optimization_guide.proto.Timestamp generation_timestamp = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.generation_timestamp_);
    }
    // optional .optimization_guide.proto.HintSource hint_source = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_hint_source());
    }
  }
  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 Version::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Version*>(&to_msg);
  auto& from = static_cast<const Version&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:optimization_guide.proto.Version)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.generation_timestamp_ != nullptr);
      if (_this->_impl_.generation_timestamp_ == nullptr) {
        _this->_impl_.generation_timestamp_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.generation_timestamp_);
      } else {
        _this->_impl_.generation_timestamp_->MergeFrom(*from._impl_.generation_timestamp_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.hint_source_ = from._impl_.hint_source_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

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


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

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