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

#ifndef components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto_2epb_2eh
#define components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto_2epb_2eh

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

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

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

#define PROTOBUF_INTERNAL_EXPORT_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto

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

// Internal implementation detail -- do not use these members.
struct TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto {
  static const ::uint32_t offsets[];
};
namespace sync_pb {
enum FormField_AutofillFieldType : int;
extern const uint32_t FormField_AutofillFieldType_internal_data_[];
class FormField;
struct FormFieldGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FormFieldGlobalsTypeInternal FormField_globals_;
extern const ::google::protobuf::internal::ClassDataLite FormField_class_data_;
#else
extern const FormFieldGlobalsTypeInternal FormField_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class FormFieldInfo;
struct FormFieldInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern FormFieldInfoGlobalsTypeInternal FormFieldInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite FormFieldInfo_class_data_;
#else
extern const FormFieldInfoGlobalsTypeInternal FormFieldInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PageContext;
struct PageContextGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PageContextGlobalsTypeInternal PageContext_globals_;
extern const ::google::protobuf::internal::ClassDataLite PageContext_class_data_;
#else
extern const PageContextGlobalsTypeInternal PageContext_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ScrollPosition;
struct ScrollPositionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ScrollPositionGlobalsTypeInternal ScrollPosition_globals_;
extern const ::google::protobuf::internal::ClassDataLite ScrollPosition_class_data_;
#else
extern const ScrollPositionGlobalsTypeInternal ScrollPosition_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SendTabToSelfSpecifics;
struct SendTabToSelfSpecificsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SendTabToSelfSpecificsGlobalsTypeInternal SendTabToSelfSpecifics_globals_;
extern const ::google::protobuf::internal::ClassDataLite SendTabToSelfSpecifics_class_data_;
#else
extern const SendTabToSelfSpecificsGlobalsTypeInternal SendTabToSelfSpecifics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TextFragmentData;
struct TextFragmentDataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TextFragmentDataGlobalsTypeInternal TextFragmentData_globals_;
extern const ::google::protobuf::internal::ClassDataLite TextFragmentData_class_data_;
#else
extern const TextFragmentDataGlobalsTypeInternal TextFragmentData_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace sync_pb
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::sync_pb::FormField_AutofillFieldType_internal_data_>
    internal::EnumTraitsImpl::value<::sync_pb::FormField_AutofillFieldType>;
}  // namespace protobuf
}  // namespace google

namespace sync_pb {
enum FormField_AutofillFieldType : int {
  FormField_AutofillFieldType_NO_SERVER_DATA = 0,
  FormField_AutofillFieldType_UNKNOWN_TYPE = 1,
  FormField_AutofillFieldType_EMPTY_TYPE = 2,
  FormField_AutofillFieldType_NAME_FIRST = 3,
  FormField_AutofillFieldType_NAME_MIDDLE = 4,
  FormField_AutofillFieldType_NAME_LAST = 5,
  FormField_AutofillFieldType_NAME_MIDDLE_INITIAL = 6,
  FormField_AutofillFieldType_NAME_FULL = 7,
  FormField_AutofillFieldType_NAME_SUFFIX = 8,
  FormField_AutofillFieldType_EMAIL_ADDRESS = 9,
  FormField_AutofillFieldType_PHONE_HOME_NUMBER = 10,
  FormField_AutofillFieldType_PHONE_HOME_CITY_CODE = 11,
  FormField_AutofillFieldType_PHONE_HOME_COUNTRY_CODE = 12,
  FormField_AutofillFieldType_PHONE_HOME_CITY_AND_NUMBER = 13,
  FormField_AutofillFieldType_PHONE_HOME_WHOLE_NUMBER = 14,
  FormField_AutofillFieldType_ADDRESS_HOME_LINE1 = 15,
  FormField_AutofillFieldType_ADDRESS_HOME_LINE2 = 16,
  FormField_AutofillFieldType_ADDRESS_HOME_APT_NUM = 17,
  FormField_AutofillFieldType_ADDRESS_HOME_CITY = 18,
  FormField_AutofillFieldType_ADDRESS_HOME_STATE = 19,
  FormField_AutofillFieldType_ADDRESS_HOME_ZIP = 20,
  FormField_AutofillFieldType_ADDRESS_HOME_COUNTRY = 21,
  FormField_AutofillFieldType_CREDIT_CARD_NAME_FULL = 22,
  FormField_AutofillFieldType_CREDIT_CARD_NUMBER = 23,
  FormField_AutofillFieldType_CREDIT_CARD_EXP_MONTH = 24,
  FormField_AutofillFieldType_CREDIT_CARD_EXP_2_DIGIT_YEAR = 25,
  FormField_AutofillFieldType_CREDIT_CARD_EXP_4_DIGIT_YEAR = 26,
  FormField_AutofillFieldType_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR = 27,
  FormField_AutofillFieldType_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR = 28,
  FormField_AutofillFieldType_CREDIT_CARD_TYPE = 29,
  FormField_AutofillFieldType_CREDIT_CARD_VERIFICATION_CODE = 30,
  FormField_AutofillFieldType_COMPANY_NAME = 31,
  FormField_AutofillFieldType_MERCHANT_EMAIL_SIGNUP = 32,
  FormField_AutofillFieldType_MERCHANT_PROMO_CODE = 33,
  FormField_AutofillFieldType_PASSWORD = 34,
  FormField_AutofillFieldType_ACCOUNT_CREATION_PASSWORD = 35,
  FormField_AutofillFieldType_ADDRESS_HOME_STREET_ADDRESS = 36,
  FormField_AutofillFieldType_ADDRESS_HOME_SORTING_CODE = 37,
  FormField_AutofillFieldType_ADDRESS_HOME_DEPENDENT_LOCALITY = 38,
  FormField_AutofillFieldType_ADDRESS_HOME_LINE3 = 39,
  FormField_AutofillFieldType_NOT_ACCOUNT_CREATION_PASSWORD = 40,
  FormField_AutofillFieldType_USERNAME = 41,
  FormField_AutofillFieldType_USERNAME_AND_EMAIL_ADDRESS = 42,
  FormField_AutofillFieldType_NEW_PASSWORD = 43,
  FormField_AutofillFieldType_PROBABLY_NEW_PASSWORD = 44,
  FormField_AutofillFieldType_NOT_NEW_PASSWORD = 45,
  FormField_AutofillFieldType_CREDIT_CARD_NAME_FIRST = 46,
  FormField_AutofillFieldType_CREDIT_CARD_NAME_LAST = 47,
  FormField_AutofillFieldType_PHONE_HOME_EXTENSION = 48,
  FormField_AutofillFieldType_CONFIRMATION_PASSWORD = 49,
  FormField_AutofillFieldType_AMBIGUOUS_TYPE = 50,
  FormField_AutofillFieldType_SEARCH_TERM = 51,
  FormField_AutofillFieldType_PRICE = 52,
  FormField_AutofillFieldType_NOT_PASSWORD = 53,
  FormField_AutofillFieldType_SINGLE_USERNAME = 54,
  FormField_AutofillFieldType_NOT_USERNAME = 55,
  FormField_AutofillFieldType_ADDRESS_HOME_STREET_NAME = 56,
  FormField_AutofillFieldType_ADDRESS_HOME_HOUSE_NUMBER = 57,
  FormField_AutofillFieldType_ADDRESS_HOME_SUBPREMISE = 58,
  FormField_AutofillFieldType_ADDRESS_HOME_OTHER_SUBUNIT = 59,
  FormField_AutofillFieldType_NAME_LAST_FIRST = 60,
  FormField_AutofillFieldType_NAME_LAST_CONJUNCTION = 61,
  FormField_AutofillFieldType_NAME_LAST_SECOND = 62,
  FormField_AutofillFieldType_NAME_HONORIFIC_PREFIX = 63,
  FormField_AutofillFieldType_ADDRESS_HOME_ADDRESS = 64,
  FormField_AutofillFieldType_ADDRESS_HOME_ADDRESS_WITH_NAME = 65,
  FormField_AutofillFieldType_ADDRESS_HOME_FLOOR = 66,
  FormField_AutofillFieldType_PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX = 67,
  FormField_AutofillFieldType_PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX = 68,
  FormField_AutofillFieldType_PHONE_HOME_NUMBER_PREFIX = 69,
  FormField_AutofillFieldType_PHONE_HOME_NUMBER_SUFFIX = 70,
  FormField_AutofillFieldType_IBAN_VALUE = 71,
  FormField_AutofillFieldType_CREDIT_CARD_STANDALONE_VERIFICATION_CODE = 72,
  FormField_AutofillFieldType_NUMERIC_QUANTITY = 73,
  FormField_AutofillFieldType_ONE_TIME_CODE = 74,
  FormField_AutofillFieldType_DELIVERY_INSTRUCTIONS = 75,
  FormField_AutofillFieldType_ADDRESS_HOME_OVERFLOW = 76,
  FormField_AutofillFieldType_ADDRESS_HOME_LANDMARK = 77,
  FormField_AutofillFieldType_ADDRESS_HOME_OVERFLOW_AND_LANDMARK = 78,
  FormField_AutofillFieldType_ADDRESS_HOME_ADMIN_LEVEL2 = 79,
  FormField_AutofillFieldType_ADDRESS_HOME_STREET_LOCATION = 80,
  FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS = 81,
  FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK = 82,
  FormField_AutofillFieldType_ADDRESS_HOME_STREET_LOCATION_AND_LOCALITY = 83,
  FormField_AutofillFieldType_ADDRESS_HOME_STREET_LOCATION_AND_LANDMARK = 84,
  FormField_AutofillFieldType_ADDRESS_HOME_DEPENDENT_LOCALITY_AND_LANDMARK = 85,
  FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS_1 = 86,
  FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS_2 = 87,
  FormField_AutofillFieldType_ADDRESS_HOME_HOUSE_NUMBER_AND_APT = 88,
  FormField_AutofillFieldType_SINGLE_USERNAME_FORGOT_PASSWORD = 89,
  FormField_AutofillFieldType_ADDRESS_HOME_APT = 90,
  FormField_AutofillFieldType_ADDRESS_HOME_APT_TYPE = 91,
  FormField_AutofillFieldType_LOYALTY_MEMBERSHIP_ID = 92,
  FormField_AutofillFieldType_SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES = 93,
  FormField_AutofillFieldType_ALTERNATIVE_FULL_NAME = 94,
  FormField_AutofillFieldType_ALTERNATIVE_GIVEN_NAME = 95,
  FormField_AutofillFieldType_ALTERNATIVE_FAMILY_NAME = 96,
  FormField_AutofillFieldType_DEPRECATED_NAME_LAST_PREFIX = 97,
  FormField_AutofillFieldType_DEPRECATED_NAME_LAST_CORE = 98,
  FormField_AutofillFieldType_PASSPORT_NUMBER = 99,
  FormField_AutofillFieldType_PASSPORT_ISSUING_COUNTRY = 100,
  FormField_AutofillFieldType_PASSPORT_EXPIRATION_DATE = 101,
  FormField_AutofillFieldType_PASSPORT_ISSUE_DATE = 102,
  FormField_AutofillFieldType_LOYALTY_MEMBERSHIP_PROGRAM = 103,
  FormField_AutofillFieldType_LOYALTY_MEMBERSHIP_PROVIDER = 104,
  FormField_AutofillFieldType_VEHICLE_LICENSE_PLATE = 105,
  FormField_AutofillFieldType_VEHICLE_VIN = 106,
  FormField_AutofillFieldType_VEHICLE_MAKE = 107,
  FormField_AutofillFieldType_VEHICLE_MODEL = 108,
  FormField_AutofillFieldType_DRIVERS_LICENSE_REGION = 109,
  FormField_AutofillFieldType_DRIVERS_LICENSE_NUMBER = 110,
  FormField_AutofillFieldType_DRIVERS_LICENSE_EXPIRATION_DATE = 111,
  FormField_AutofillFieldType_DRIVERS_LICENSE_ISSUE_DATE = 112,
  FormField_AutofillFieldType_VEHICLE_YEAR = 113,
  FormField_AutofillFieldType_VEHICLE_PLATE_STATE = 114,
  FormField_AutofillFieldType_EMAIL_OR_LOYALTY_MEMBERSHIP_ID = 115,
  FormField_AutofillFieldType_NATIONAL_ID_CARD_NUMBER = 116,
  FormField_AutofillFieldType_NATIONAL_ID_CARD_EXPIRATION_DATE = 117,
  FormField_AutofillFieldType_NATIONAL_ID_CARD_ISSUE_DATE = 118,
  FormField_AutofillFieldType_NATIONAL_ID_CARD_ISSUING_COUNTRY = 119,
  FormField_AutofillFieldType_KNOWN_TRAVELER_NUMBER = 120,
  FormField_AutofillFieldType_KNOWN_TRAVELER_NUMBER_EXPIRATION_DATE = 121,
  FormField_AutofillFieldType_REDRESS_NUMBER = 122,
  FormField_AutofillFieldType_ADDRESS_HOME_ZIP_PREFIX = 123,
  FormField_AutofillFieldType_ADDRESS_HOME_ZIP_SUFFIX = 124,
  FormField_AutofillFieldType_FLIGHT_RESERVATION_FLIGHT_NUMBER = 125,
  FormField_AutofillFieldType_FLIGHT_RESERVATION_CONFIRMATION_CODE = 126,
  FormField_AutofillFieldType_FLIGHT_RESERVATION_TICKET_NUMBER = 127,
  FormField_AutofillFieldType_FLIGHT_RESERVATION_DEPARTURE_DATE = 128,
  FormField_AutofillFieldType_ADDRESS_HOME_ZIP_AND_CITY = 129,
  FormField_AutofillFieldType_ORDER_ID = 130,
  FormField_AutofillFieldType_ORDER_DATE = 131,
  FormField_AutofillFieldType_ORDER_MERCHANT_NAME = 132,
  FormField_AutofillFieldType_SHIPMENT_TRACKING_NUMBER = 133,
  FormField_AutofillFieldType_FLIGHT_RESERVATION_DEPARTURE_AIRPORT = 134,
  FormField_AutofillFieldType_FLIGHT_RESERVATION_ARRIVAL_AIRPORT = 135,
};

extern const uint32_t FormField_AutofillFieldType_internal_data_[];
inline constexpr FormField_AutofillFieldType FormField_AutofillFieldType_AutofillFieldType_MIN =
    static_cast<FormField_AutofillFieldType>(0);
inline constexpr FormField_AutofillFieldType FormField_AutofillFieldType_AutofillFieldType_MAX =
    static_cast<FormField_AutofillFieldType>(135);
inline bool FormField_AutofillFieldType_IsValid(int value) {
  return 0 <= value && value <= 135;
}
inline constexpr int FormField_AutofillFieldType_AutofillFieldType_ARRAYSIZE = 135 + 1;
const ::std::string& FormField_AutofillFieldType_Name(FormField_AutofillFieldType value);
template <typename T>
const ::std::string& FormField_AutofillFieldType_Name(T value) {
  static_assert(::std::is_same<T, FormField_AutofillFieldType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to AutofillFieldType_Name().");
  return FormField_AutofillFieldType_Name(static_cast<FormField_AutofillFieldType>(value));
}
bool FormField_AutofillFieldType_Parse(
    ::absl::string_view name, FormField_AutofillFieldType* PROTOBUF_NONNULL value);
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

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


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

class  TextFragmentData final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:sync_pb.TextFragmentData) */ {
 public:
  inline TextFragmentData() : TextFragmentData(nullptr) {}
  ~TextFragmentData() PROTOBUF_FINAL;

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

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

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

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

  static const TextFragmentData& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TextFragmentData>(&TextFragmentData_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(TextFragmentData& a, TextFragmentData& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(TextFragmentData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TextFragmentData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

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

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

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

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

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kTextStartFieldNumber = 1,
    kTextEndFieldNumber = 2,
    kPrefixFieldNumber = 3,
    kSuffixFieldNumber = 4,
  };
  // optional string text_start = 1;
  bool has_text_start()
      const;
  void clear_text_start() ;
  const ::std::string& text_start() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_text_start(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_text_start();
  ::std::string* PROTOBUF_NULLABLE release_text_start();
  void set_allocated_text_start(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_text_start() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_text_start(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_text_start();

  public:
  // optional string text_end = 2;
  bool has_text_end()
      const;
  void clear_text_end() ;
  const ::std::string& text_end() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_text_end(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_text_end();
  ::std::string* PROTOBUF_NULLABLE release_text_end();
  void set_allocated_text_end(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_text_end() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_text_end(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_text_end();

  public:
  // optional string prefix = 3;
  bool has_prefix()
      const;
  void clear_prefix() ;
  const ::std::string& prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_prefix();
  ::std::string* PROTOBUF_NULLABLE release_prefix();
  void set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_prefix();

  public:
  // optional string suffix = 4;
  bool has_suffix()
      const;
  void clear_suffix() ;
  const ::std::string& suffix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_suffix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_suffix();
  ::std::string* PROTOBUF_NULLABLE release_suffix();
  void set_allocated_suffix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_suffix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_suffix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_suffix();

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TextFragmentData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr text_start_;
    ::google::protobuf::internal::ArenaStringPtr text_end_;
    ::google::protobuf::internal::ArenaStringPtr prefix_;
    ::google::protobuf::internal::ArenaStringPtr suffix_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

class  FormField final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:sync_pb.FormField) */ {
 public:
  inline FormField() : FormField(nullptr) {}
  ~FormField() PROTOBUF_FINAL;

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

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

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

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

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

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

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

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

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

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

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

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

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

  // nested types ----------------------------------------------------
  using AutofillFieldType = FormField_AutofillFieldType;
  static constexpr AutofillFieldType NO_SERVER_DATA = FormField_AutofillFieldType_NO_SERVER_DATA;
  static constexpr AutofillFieldType UNKNOWN_TYPE = FormField_AutofillFieldType_UNKNOWN_TYPE;
  static constexpr AutofillFieldType EMPTY_TYPE = FormField_AutofillFieldType_EMPTY_TYPE;
  static constexpr AutofillFieldType NAME_FIRST = FormField_AutofillFieldType_NAME_FIRST;
  static constexpr AutofillFieldType NAME_MIDDLE = FormField_AutofillFieldType_NAME_MIDDLE;
  static constexpr AutofillFieldType NAME_LAST = FormField_AutofillFieldType_NAME_LAST;
  static constexpr AutofillFieldType NAME_MIDDLE_INITIAL = FormField_AutofillFieldType_NAME_MIDDLE_INITIAL;
  static constexpr AutofillFieldType NAME_FULL = FormField_AutofillFieldType_NAME_FULL;
  static constexpr AutofillFieldType NAME_SUFFIX = FormField_AutofillFieldType_NAME_SUFFIX;
  static constexpr AutofillFieldType EMAIL_ADDRESS = FormField_AutofillFieldType_EMAIL_ADDRESS;
  static constexpr AutofillFieldType PHONE_HOME_NUMBER = FormField_AutofillFieldType_PHONE_HOME_NUMBER;
  static constexpr AutofillFieldType PHONE_HOME_CITY_CODE = FormField_AutofillFieldType_PHONE_HOME_CITY_CODE;
  static constexpr AutofillFieldType PHONE_HOME_COUNTRY_CODE = FormField_AutofillFieldType_PHONE_HOME_COUNTRY_CODE;
  static constexpr AutofillFieldType PHONE_HOME_CITY_AND_NUMBER = FormField_AutofillFieldType_PHONE_HOME_CITY_AND_NUMBER;
  static constexpr AutofillFieldType PHONE_HOME_WHOLE_NUMBER = FormField_AutofillFieldType_PHONE_HOME_WHOLE_NUMBER;
  static constexpr AutofillFieldType ADDRESS_HOME_LINE1 = FormField_AutofillFieldType_ADDRESS_HOME_LINE1;
  static constexpr AutofillFieldType ADDRESS_HOME_LINE2 = FormField_AutofillFieldType_ADDRESS_HOME_LINE2;
  static constexpr AutofillFieldType ADDRESS_HOME_APT_NUM = FormField_AutofillFieldType_ADDRESS_HOME_APT_NUM;
  static constexpr AutofillFieldType ADDRESS_HOME_CITY = FormField_AutofillFieldType_ADDRESS_HOME_CITY;
  static constexpr AutofillFieldType ADDRESS_HOME_STATE = FormField_AutofillFieldType_ADDRESS_HOME_STATE;
  static constexpr AutofillFieldType ADDRESS_HOME_ZIP = FormField_AutofillFieldType_ADDRESS_HOME_ZIP;
  static constexpr AutofillFieldType ADDRESS_HOME_COUNTRY = FormField_AutofillFieldType_ADDRESS_HOME_COUNTRY;
  static constexpr AutofillFieldType CREDIT_CARD_NAME_FULL = FormField_AutofillFieldType_CREDIT_CARD_NAME_FULL;
  static constexpr AutofillFieldType CREDIT_CARD_NUMBER = FormField_AutofillFieldType_CREDIT_CARD_NUMBER;
  static constexpr AutofillFieldType CREDIT_CARD_EXP_MONTH = FormField_AutofillFieldType_CREDIT_CARD_EXP_MONTH;
  static constexpr AutofillFieldType CREDIT_CARD_EXP_2_DIGIT_YEAR = FormField_AutofillFieldType_CREDIT_CARD_EXP_2_DIGIT_YEAR;
  static constexpr AutofillFieldType CREDIT_CARD_EXP_4_DIGIT_YEAR = FormField_AutofillFieldType_CREDIT_CARD_EXP_4_DIGIT_YEAR;
  static constexpr AutofillFieldType CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR = FormField_AutofillFieldType_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR;
  static constexpr AutofillFieldType CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR = FormField_AutofillFieldType_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR;
  static constexpr AutofillFieldType CREDIT_CARD_TYPE = FormField_AutofillFieldType_CREDIT_CARD_TYPE;
  static constexpr AutofillFieldType CREDIT_CARD_VERIFICATION_CODE = FormField_AutofillFieldType_CREDIT_CARD_VERIFICATION_CODE;
  static constexpr AutofillFieldType COMPANY_NAME = FormField_AutofillFieldType_COMPANY_NAME;
  static constexpr AutofillFieldType MERCHANT_EMAIL_SIGNUP = FormField_AutofillFieldType_MERCHANT_EMAIL_SIGNUP;
  static constexpr AutofillFieldType MERCHANT_PROMO_CODE = FormField_AutofillFieldType_MERCHANT_PROMO_CODE;
  static constexpr AutofillFieldType PASSWORD = FormField_AutofillFieldType_PASSWORD;
  static constexpr AutofillFieldType ACCOUNT_CREATION_PASSWORD = FormField_AutofillFieldType_ACCOUNT_CREATION_PASSWORD;
  static constexpr AutofillFieldType ADDRESS_HOME_STREET_ADDRESS = FormField_AutofillFieldType_ADDRESS_HOME_STREET_ADDRESS;
  static constexpr AutofillFieldType ADDRESS_HOME_SORTING_CODE = FormField_AutofillFieldType_ADDRESS_HOME_SORTING_CODE;
  static constexpr AutofillFieldType ADDRESS_HOME_DEPENDENT_LOCALITY = FormField_AutofillFieldType_ADDRESS_HOME_DEPENDENT_LOCALITY;
  static constexpr AutofillFieldType ADDRESS_HOME_LINE3 = FormField_AutofillFieldType_ADDRESS_HOME_LINE3;
  static constexpr AutofillFieldType NOT_ACCOUNT_CREATION_PASSWORD = FormField_AutofillFieldType_NOT_ACCOUNT_CREATION_PASSWORD;
  static constexpr AutofillFieldType USERNAME = FormField_AutofillFieldType_USERNAME;
  static constexpr AutofillFieldType USERNAME_AND_EMAIL_ADDRESS = FormField_AutofillFieldType_USERNAME_AND_EMAIL_ADDRESS;
  static constexpr AutofillFieldType NEW_PASSWORD = FormField_AutofillFieldType_NEW_PASSWORD;
  static constexpr AutofillFieldType PROBABLY_NEW_PASSWORD = FormField_AutofillFieldType_PROBABLY_NEW_PASSWORD;
  static constexpr AutofillFieldType NOT_NEW_PASSWORD = FormField_AutofillFieldType_NOT_NEW_PASSWORD;
  static constexpr AutofillFieldType CREDIT_CARD_NAME_FIRST = FormField_AutofillFieldType_CREDIT_CARD_NAME_FIRST;
  static constexpr AutofillFieldType CREDIT_CARD_NAME_LAST = FormField_AutofillFieldType_CREDIT_CARD_NAME_LAST;
  static constexpr AutofillFieldType PHONE_HOME_EXTENSION = FormField_AutofillFieldType_PHONE_HOME_EXTENSION;
  static constexpr AutofillFieldType CONFIRMATION_PASSWORD = FormField_AutofillFieldType_CONFIRMATION_PASSWORD;
  static constexpr AutofillFieldType AMBIGUOUS_TYPE = FormField_AutofillFieldType_AMBIGUOUS_TYPE;
  static constexpr AutofillFieldType SEARCH_TERM = FormField_AutofillFieldType_SEARCH_TERM;
  static constexpr AutofillFieldType PRICE = FormField_AutofillFieldType_PRICE;
  static constexpr AutofillFieldType NOT_PASSWORD = FormField_AutofillFieldType_NOT_PASSWORD;
  static constexpr AutofillFieldType SINGLE_USERNAME = FormField_AutofillFieldType_SINGLE_USERNAME;
  static constexpr AutofillFieldType NOT_USERNAME = FormField_AutofillFieldType_NOT_USERNAME;
  static constexpr AutofillFieldType ADDRESS_HOME_STREET_NAME = FormField_AutofillFieldType_ADDRESS_HOME_STREET_NAME;
  static constexpr AutofillFieldType ADDRESS_HOME_HOUSE_NUMBER = FormField_AutofillFieldType_ADDRESS_HOME_HOUSE_NUMBER;
  static constexpr AutofillFieldType ADDRESS_HOME_SUBPREMISE = FormField_AutofillFieldType_ADDRESS_HOME_SUBPREMISE;
  static constexpr AutofillFieldType ADDRESS_HOME_OTHER_SUBUNIT = FormField_AutofillFieldType_ADDRESS_HOME_OTHER_SUBUNIT;
  static constexpr AutofillFieldType NAME_LAST_FIRST = FormField_AutofillFieldType_NAME_LAST_FIRST;
  static constexpr AutofillFieldType NAME_LAST_CONJUNCTION = FormField_AutofillFieldType_NAME_LAST_CONJUNCTION;
  static constexpr AutofillFieldType NAME_LAST_SECOND = FormField_AutofillFieldType_NAME_LAST_SECOND;
  static constexpr AutofillFieldType NAME_HONORIFIC_PREFIX = FormField_AutofillFieldType_NAME_HONORIFIC_PREFIX;
  static constexpr AutofillFieldType ADDRESS_HOME_ADDRESS = FormField_AutofillFieldType_ADDRESS_HOME_ADDRESS;
  static constexpr AutofillFieldType ADDRESS_HOME_ADDRESS_WITH_NAME = FormField_AutofillFieldType_ADDRESS_HOME_ADDRESS_WITH_NAME;
  static constexpr AutofillFieldType ADDRESS_HOME_FLOOR = FormField_AutofillFieldType_ADDRESS_HOME_FLOOR;
  static constexpr AutofillFieldType PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX = FormField_AutofillFieldType_PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX;
  static constexpr AutofillFieldType PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX = FormField_AutofillFieldType_PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX;
  static constexpr AutofillFieldType PHONE_HOME_NUMBER_PREFIX = FormField_AutofillFieldType_PHONE_HOME_NUMBER_PREFIX;
  static constexpr AutofillFieldType PHONE_HOME_NUMBER_SUFFIX = FormField_AutofillFieldType_PHONE_HOME_NUMBER_SUFFIX;
  static constexpr AutofillFieldType IBAN_VALUE = FormField_AutofillFieldType_IBAN_VALUE;
  static constexpr AutofillFieldType CREDIT_CARD_STANDALONE_VERIFICATION_CODE = FormField_AutofillFieldType_CREDIT_CARD_STANDALONE_VERIFICATION_CODE;
  static constexpr AutofillFieldType NUMERIC_QUANTITY = FormField_AutofillFieldType_NUMERIC_QUANTITY;
  static constexpr AutofillFieldType ONE_TIME_CODE = FormField_AutofillFieldType_ONE_TIME_CODE;
  static constexpr AutofillFieldType DELIVERY_INSTRUCTIONS = FormField_AutofillFieldType_DELIVERY_INSTRUCTIONS;
  static constexpr AutofillFieldType ADDRESS_HOME_OVERFLOW = FormField_AutofillFieldType_ADDRESS_HOME_OVERFLOW;
  static constexpr AutofillFieldType ADDRESS_HOME_LANDMARK = FormField_AutofillFieldType_ADDRESS_HOME_LANDMARK;
  static constexpr AutofillFieldType ADDRESS_HOME_OVERFLOW_AND_LANDMARK = FormField_AutofillFieldType_ADDRESS_HOME_OVERFLOW_AND_LANDMARK;
  static constexpr AutofillFieldType ADDRESS_HOME_ADMIN_LEVEL2 = FormField_AutofillFieldType_ADDRESS_HOME_ADMIN_LEVEL2;
  static constexpr AutofillFieldType ADDRESS_HOME_STREET_LOCATION = FormField_AutofillFieldType_ADDRESS_HOME_STREET_LOCATION;
  static constexpr AutofillFieldType ADDRESS_HOME_BETWEEN_STREETS = FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS;
  static constexpr AutofillFieldType ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK = FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK;
  static constexpr AutofillFieldType ADDRESS_HOME_STREET_LOCATION_AND_LOCALITY = FormField_AutofillFieldType_ADDRESS_HOME_STREET_LOCATION_AND_LOCALITY;
  static constexpr AutofillFieldType ADDRESS_HOME_STREET_LOCATION_AND_LANDMARK = FormField_AutofillFieldType_ADDRESS_HOME_STREET_LOCATION_AND_LANDMARK;
  static constexpr AutofillFieldType ADDRESS_HOME_DEPENDENT_LOCALITY_AND_LANDMARK = FormField_AutofillFieldType_ADDRESS_HOME_DEPENDENT_LOCALITY_AND_LANDMARK;
  static constexpr AutofillFieldType ADDRESS_HOME_BETWEEN_STREETS_1 = FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS_1;
  static constexpr AutofillFieldType ADDRESS_HOME_BETWEEN_STREETS_2 = FormField_AutofillFieldType_ADDRESS_HOME_BETWEEN_STREETS_2;
  static constexpr AutofillFieldType ADDRESS_HOME_HOUSE_NUMBER_AND_APT = FormField_AutofillFieldType_ADDRESS_HOME_HOUSE_NUMBER_AND_APT;
  static constexpr AutofillFieldType SINGLE_USERNAME_FORGOT_PASSWORD = FormField_AutofillFieldType_SINGLE_USERNAME_FORGOT_PASSWORD;
  static constexpr AutofillFieldType ADDRESS_HOME_APT = FormField_AutofillFieldType_ADDRESS_HOME_APT;
  static constexpr AutofillFieldType ADDRESS_HOME_APT_TYPE = FormField_AutofillFieldType_ADDRESS_HOME_APT_TYPE;
  static constexpr AutofillFieldType LOYALTY_MEMBERSHIP_ID = FormField_AutofillFieldType_LOYALTY_MEMBERSHIP_ID;
  static constexpr AutofillFieldType SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES = FormField_AutofillFieldType_SINGLE_USERNAME_WITH_INTERMEDIATE_VALUES;
  static constexpr AutofillFieldType ALTERNATIVE_FULL_NAME = FormField_AutofillFieldType_ALTERNATIVE_FULL_NAME;
  static constexpr AutofillFieldType ALTERNATIVE_GIVEN_NAME = FormField_AutofillFieldType_ALTERNATIVE_GIVEN_NAME;
  static constexpr AutofillFieldType ALTERNATIVE_FAMILY_NAME = FormField_AutofillFieldType_ALTERNATIVE_FAMILY_NAME;
  static constexpr AutofillFieldType DEPRECATED_NAME_LAST_PREFIX = FormField_AutofillFieldType_DEPRECATED_NAME_LAST_PREFIX;
  static constexpr AutofillFieldType DEPRECATED_NAME_LAST_CORE = FormField_AutofillFieldType_DEPRECATED_NAME_LAST_CORE;
  static constexpr AutofillFieldType PASSPORT_NUMBER = FormField_AutofillFieldType_PASSPORT_NUMBER;
  static constexpr AutofillFieldType PASSPORT_ISSUING_COUNTRY = FormField_AutofillFieldType_PASSPORT_ISSUING_COUNTRY;
  static constexpr AutofillFieldType PASSPORT_EXPIRATION_DATE = FormField_AutofillFieldType_PASSPORT_EXPIRATION_DATE;
  static constexpr AutofillFieldType PASSPORT_ISSUE_DATE = FormField_AutofillFieldType_PASSPORT_ISSUE_DATE;
  static constexpr AutofillFieldType LOYALTY_MEMBERSHIP_PROGRAM = FormField_AutofillFieldType_LOYALTY_MEMBERSHIP_PROGRAM;
  static constexpr AutofillFieldType LOYALTY_MEMBERSHIP_PROVIDER = FormField_AutofillFieldType_LOYALTY_MEMBERSHIP_PROVIDER;
  static constexpr AutofillFieldType VEHICLE_LICENSE_PLATE = FormField_AutofillFieldType_VEHICLE_LICENSE_PLATE;
  static constexpr AutofillFieldType VEHICLE_VIN = FormField_AutofillFieldType_VEHICLE_VIN;
  static constexpr AutofillFieldType VEHICLE_MAKE = FormField_AutofillFieldType_VEHICLE_MAKE;
  static constexpr AutofillFieldType VEHICLE_MODEL = FormField_AutofillFieldType_VEHICLE_MODEL;
  static constexpr AutofillFieldType DRIVERS_LICENSE_REGION = FormField_AutofillFieldType_DRIVERS_LICENSE_REGION;
  static constexpr AutofillFieldType DRIVERS_LICENSE_NUMBER = FormField_AutofillFieldType_DRIVERS_LICENSE_NUMBER;
  static constexpr AutofillFieldType DRIVERS_LICENSE_EXPIRATION_DATE = FormField_AutofillFieldType_DRIVERS_LICENSE_EXPIRATION_DATE;
  static constexpr AutofillFieldType DRIVERS_LICENSE_ISSUE_DATE = FormField_AutofillFieldType_DRIVERS_LICENSE_ISSUE_DATE;
  static constexpr AutofillFieldType VEHICLE_YEAR = FormField_AutofillFieldType_VEHICLE_YEAR;
  static constexpr AutofillFieldType VEHICLE_PLATE_STATE = FormField_AutofillFieldType_VEHICLE_PLATE_STATE;
  static constexpr AutofillFieldType EMAIL_OR_LOYALTY_MEMBERSHIP_ID = FormField_AutofillFieldType_EMAIL_OR_LOYALTY_MEMBERSHIP_ID;
  static constexpr AutofillFieldType NATIONAL_ID_CARD_NUMBER = FormField_AutofillFieldType_NATIONAL_ID_CARD_NUMBER;
  static constexpr AutofillFieldType NATIONAL_ID_CARD_EXPIRATION_DATE = FormField_AutofillFieldType_NATIONAL_ID_CARD_EXPIRATION_DATE;
  static constexpr AutofillFieldType NATIONAL_ID_CARD_ISSUE_DATE = FormField_AutofillFieldType_NATIONAL_ID_CARD_ISSUE_DATE;
  static constexpr AutofillFieldType NATIONAL_ID_CARD_ISSUING_COUNTRY = FormField_AutofillFieldType_NATIONAL_ID_CARD_ISSUING_COUNTRY;
  static constexpr AutofillFieldType KNOWN_TRAVELER_NUMBER = FormField_AutofillFieldType_KNOWN_TRAVELER_NUMBER;
  static constexpr AutofillFieldType KNOWN_TRAVELER_NUMBER_EXPIRATION_DATE = FormField_AutofillFieldType_KNOWN_TRAVELER_NUMBER_EXPIRATION_DATE;
  static constexpr AutofillFieldType REDRESS_NUMBER = FormField_AutofillFieldType_REDRESS_NUMBER;
  static constexpr AutofillFieldType ADDRESS_HOME_ZIP_PREFIX = FormField_AutofillFieldType_ADDRESS_HOME_ZIP_PREFIX;
  static constexpr AutofillFieldType ADDRESS_HOME_ZIP_SUFFIX = FormField_AutofillFieldType_ADDRESS_HOME_ZIP_SUFFIX;
  static constexpr AutofillFieldType FLIGHT_RESERVATION_FLIGHT_NUMBER = FormField_AutofillFieldType_FLIGHT_RESERVATION_FLIGHT_NUMBER;
  static constexpr AutofillFieldType FLIGHT_RESERVATION_CONFIRMATION_CODE = FormField_AutofillFieldType_FLIGHT_RESERVATION_CONFIRMATION_CODE;
  static constexpr AutofillFieldType FLIGHT_RESERVATION_TICKET_NUMBER = FormField_AutofillFieldType_FLIGHT_RESERVATION_TICKET_NUMBER;
  static constexpr AutofillFieldType FLIGHT_RESERVATION_DEPARTURE_DATE = FormField_AutofillFieldType_FLIGHT_RESERVATION_DEPARTURE_DATE;
  static constexpr AutofillFieldType ADDRESS_HOME_ZIP_AND_CITY = FormField_AutofillFieldType_ADDRESS_HOME_ZIP_AND_CITY;
  static constexpr AutofillFieldType ORDER_ID = FormField_AutofillFieldType_ORDER_ID;
  static constexpr AutofillFieldType ORDER_DATE = FormField_AutofillFieldType_ORDER_DATE;
  static constexpr AutofillFieldType ORDER_MERCHANT_NAME = FormField_AutofillFieldType_ORDER_MERCHANT_NAME;
  static constexpr AutofillFieldType SHIPMENT_TRACKING_NUMBER = FormField_AutofillFieldType_SHIPMENT_TRACKING_NUMBER;
  static constexpr AutofillFieldType FLIGHT_RESERVATION_DEPARTURE_AIRPORT = FormField_AutofillFieldType_FLIGHT_RESERVATION_DEPARTURE_AIRPORT;
  static constexpr AutofillFieldType FLIGHT_RESERVATION_ARRIVAL_AIRPORT = FormField_AutofillFieldType_FLIGHT_RESERVATION_ARRIVAL_AIRPORT;
  static inline bool AutofillFieldType_IsValid(int value) {
    return FormField_AutofillFieldType_IsValid(value);
  }
  static constexpr AutofillFieldType AutofillFieldType_MIN = FormField_AutofillFieldType_AutofillFieldType_MIN;
  static constexpr AutofillFieldType AutofillFieldType_MAX = FormField_AutofillFieldType_AutofillFieldType_MAX;
  static constexpr int AutofillFieldType_ARRAYSIZE = FormField_AutofillFieldType_AutofillFieldType_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& AutofillFieldType_Name(T value) {
    return FormField_AutofillFieldType_Name(value);
  }
  static inline bool AutofillFieldType_Parse(
      ::absl::string_view name, AutofillFieldType* PROTOBUF_NONNULL value) {
    return FormField_AutofillFieldType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kAutofillTypesFieldNumber = 8,
    kIdAttributeFieldNumber = 1,
    kNameAttributeFieldNumber = 2,
    kFormControlTypeFieldNumber = 4,
    kValueFieldNumber = 5,
    kFormSignatureFieldNumber = 6,
    kFieldSignatureFieldNumber = 7,
  };
  // repeated .sync_pb.FormField.AutofillFieldType autofill_types = 8;
  int autofill_types_size()
      const;
  private:
  int _internal_autofill_types_size() const;

  public:
  void clear_autofill_types() ;
  public:
  ::sync_pb::FormField_AutofillFieldType autofill_types(int index) const;
  void set_autofill_types(int index, ::sync_pb::FormField_AutofillFieldType value);
  void add_autofill_types(::sync_pb::FormField_AutofillFieldType value);
  const ::google::protobuf::RepeatedField<int>& autofill_types()
      const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_autofill_types();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_autofill_types() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_autofill_types();

  public:
  // optional string id_attribute = 1;
  bool has_id_attribute()
      const;
  void clear_id_attribute() ;
  const ::std::string& id_attribute() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_id_attribute(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_id_attribute();
  ::std::string* PROTOBUF_NULLABLE release_id_attribute();
  void set_allocated_id_attribute(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_id_attribute() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_id_attribute(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_id_attribute();

  public:
  // optional string name_attribute = 2;
  bool has_name_attribute()
      const;
  void clear_name_attribute() ;
  const ::std::string& name_attribute() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name_attribute(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name_attribute();
  ::std::string* PROTOBUF_NULLABLE release_name_attribute();
  void set_allocated_name_attribute(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name_attribute() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name_attribute(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name_attribute();

  public:
  // optional string form_control_type = 4;
  bool has_form_control_type()
      const;
  void clear_form_control_type() ;
  const ::std::string& form_control_type() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_form_control_type(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_form_control_type();
  ::std::string* PROTOBUF_NULLABLE release_form_control_type();
  void set_allocated_form_control_type(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_form_control_type() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_form_control_type(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_form_control_type();

  public:
  // optional string value = 5;
  bool has_value()
      const;
  void clear_value() ;
  const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // optional uint64 form_signature = 6;
  bool has_form_signature()
      const;
  void clear_form_signature() ;
  ::uint64_t form_signature() const;
  void set_form_signature(::uint64_t value);

  private:
  ::uint64_t _internal_form_signature() const;
  void _internal_set_form_signature(::uint64_t value);

  public:
  // optional uint32 field_signature = 7;
  bool has_field_signature()
      const;
  void clear_field_signature() ;
  ::uint32_t field_signature() const;
  void set_field_signature(::uint32_t value);

  private:
  ::uint32_t _internal_field_signature() const;
  void _internal_set_field_signature(::uint32_t value);

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FormField& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> autofill_types_;
    ::google::protobuf::internal::ArenaStringPtr id_attribute_;
    ::google::protobuf::internal::ArenaStringPtr name_attribute_;
    ::google::protobuf::internal::ArenaStringPtr form_control_type_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    ::uint64_t form_signature_;
    ::uint32_t field_signature_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

class  ScrollPosition final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:sync_pb.ScrollPosition) */ {
 public:
  inline ScrollPosition() : ScrollPosition(nullptr) {}
  ~ScrollPosition() PROTOBUF_FINAL;

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

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

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

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

  static const ScrollPosition& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ScrollPosition>(&ScrollPosition_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(ScrollPosition& a, ScrollPosition& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ScrollPosition* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ScrollPosition* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

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

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

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

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

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kTextFragmentFieldNumber = 1,
  };
  // optional .sync_pb.TextFragmentData text_fragment = 1;
  bool has_text_fragment()
      const;
  void clear_text_fragment() ;
  const ::sync_pb::TextFragmentData& text_fragment() const;
  ::sync_pb::TextFragmentData* PROTOBUF_NULLABLE release_text_fragment();
  ::sync_pb::TextFragmentData* PROTOBUF_NONNULL mutable_text_fragment();
  void set_allocated_text_fragment(::sync_pb::TextFragmentData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_text_fragment(::sync_pb::TextFragmentData* PROTOBUF_NULLABLE value);
  ::sync_pb::TextFragmentData* PROTOBUF_NULLABLE unsafe_arena_release_text_fragment();

  private:
  const ::sync_pb::TextFragmentData& _internal_text_fragment() const;
  ::sync_pb::TextFragmentData* PROTOBUF_NONNULL _internal_mutable_text_fragment();

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ScrollPosition& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::sync_pb::TextFragmentData* PROTOBUF_NULLABLE text_fragment_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

class  FormFieldInfo final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:sync_pb.FormFieldInfo) */ {
 public:
  inline FormFieldInfo() : FormFieldInfo(nullptr) {}
  ~FormFieldInfo() PROTOBUF_FINAL;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kFieldsFieldNumber = 1,
  };
  // repeated .sync_pb.FormField fields = 1;
  int fields_size()
      const;
  private:
  int _internal_fields_size() const;

  public:
  void clear_fields() ;
  const ::sync_pb::FormField& fields(int index) const;
  ::sync_pb::FormField* PROTOBUF_NONNULL mutable_fields(int index);
  ::sync_pb::FormField* PROTOBUF_NONNULL add_fields();
  const ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>&
  fields() const;
  ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>* PROTOBUF_NONNULL
  mutable_fields();

  private:
  const ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>& _internal_fields() const;
  ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>* PROTOBUF_NONNULL _internal_mutable_fields();

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const FormFieldInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::sync_pb::FormField > fields_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

class  PageContext final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:sync_pb.PageContext) */ {
 public:
  inline PageContext() : PageContext(nullptr) {}
  ~PageContext() PROTOBUF_FINAL;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kFormFieldInfoFieldNumber = 1,
    kScrollPositionFieldNumber = 2,
  };
  // optional .sync_pb.FormFieldInfo form_field_info = 1;
  bool has_form_field_info()
      const;
  void clear_form_field_info() ;
  const ::sync_pb::FormFieldInfo& form_field_info() const;
  ::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE release_form_field_info();
  ::sync_pb::FormFieldInfo* PROTOBUF_NONNULL mutable_form_field_info();
  void set_allocated_form_field_info(::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_form_field_info(::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE value);
  ::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE unsafe_arena_release_form_field_info();

  private:
  const ::sync_pb::FormFieldInfo& _internal_form_field_info() const;
  ::sync_pb::FormFieldInfo* PROTOBUF_NONNULL _internal_mutable_form_field_info();

  public:
  // optional .sync_pb.ScrollPosition scroll_position = 2;
  bool has_scroll_position()
      const;
  void clear_scroll_position() ;
  const ::sync_pb::ScrollPosition& scroll_position() const;
  ::sync_pb::ScrollPosition* PROTOBUF_NULLABLE release_scroll_position();
  ::sync_pb::ScrollPosition* PROTOBUF_NONNULL mutable_scroll_position();
  void set_allocated_scroll_position(::sync_pb::ScrollPosition* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_scroll_position(::sync_pb::ScrollPosition* PROTOBUF_NULLABLE value);
  ::sync_pb::ScrollPosition* PROTOBUF_NULLABLE unsafe_arena_release_scroll_position();

  private:
  const ::sync_pb::ScrollPosition& _internal_scroll_position() const;
  ::sync_pb::ScrollPosition* PROTOBUF_NONNULL _internal_mutable_scroll_position();

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PageContext& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE form_field_info_;
    ::sync_pb::ScrollPosition* PROTOBUF_NULLABLE scroll_position_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

class  SendTabToSelfSpecifics final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:sync_pb.SendTabToSelfSpecifics) */ {
 public:
  inline SendTabToSelfSpecifics() : SendTabToSelfSpecifics(nullptr) {}
  ~SendTabToSelfSpecifics() PROTOBUF_FINAL;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kNavigationFieldNumber = 11,
    kTitleFieldNumber = 1,
    kUrlFieldNumber = 2,
    kDeviceNameFieldNumber = 4,
    kGuidFieldNumber = 5,
    kTargetDeviceSyncCacheGuidFieldNumber = 7,
    kPageContextFieldNumber = 10,
    kEncryptedPageContextFieldNumber = 15,
    kSharedTimeUsecFieldNumber = 3,
    kOpenedFieldNumber = 8,
    kNotificationDismissedFieldNumber = 9,
    kCurrentNavigationIndexFieldNumber = 12,
    kReceivedTimeWindowsEpochMicrosFieldNumber = 13,
    kOpenedTimeWindowsEpochMicrosFieldNumber = 14,
    kActivatedTimeWindowsEpochMicrosFieldNumber = 16,
  };
  // repeated .sync_pb.TabNavigation navigation = 11;
  int navigation_size()
      const;
  private:
  int _internal_navigation_size() const;

  public:
  void clear_navigation() ;
  const ::sync_pb::TabNavigation& navigation(int index) const;
  ::sync_pb::TabNavigation* PROTOBUF_NONNULL mutable_navigation(int index);
  ::sync_pb::TabNavigation* PROTOBUF_NONNULL add_navigation();
  const ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>&
  navigation() const;
  ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>* PROTOBUF_NONNULL
  mutable_navigation();

  private:
  const ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>& _internal_navigation() const;
  ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>* PROTOBUF_NONNULL _internal_mutable_navigation();

  public:
  // optional string title = 1;
  bool has_title()
      const;
  void clear_title() ;
  const ::std::string& title() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_title(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_title();
  ::std::string* PROTOBUF_NULLABLE release_title();
  void set_allocated_title(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_title() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_title(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_title();

  public:
  // optional string url = 2;
  bool has_url()
      const;
  void clear_url() ;
  const ::std::string& url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_url();
  ::std::string* PROTOBUF_NULLABLE release_url();
  void set_allocated_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_url();

  public:
  // optional string device_name = 4;
  bool has_device_name()
      const;
  void clear_device_name() ;
  const ::std::string& device_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_device_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_device_name();
  ::std::string* PROTOBUF_NULLABLE release_device_name();
  void set_allocated_device_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_device_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_device_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_device_name();

  public:
  // optional string guid = 5;
  bool has_guid()
      const;
  void clear_guid() ;
  const ::std::string& guid() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_guid(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_guid();
  ::std::string* PROTOBUF_NULLABLE release_guid();
  void set_allocated_guid(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_guid() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_guid(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_guid();

  public:
  // optional string target_device_sync_cache_guid = 7;
  bool has_target_device_sync_cache_guid()
      const;
  void clear_target_device_sync_cache_guid() ;
  const ::std::string& target_device_sync_cache_guid() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_target_device_sync_cache_guid(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_target_device_sync_cache_guid();
  ::std::string* PROTOBUF_NULLABLE release_target_device_sync_cache_guid();
  void set_allocated_target_device_sync_cache_guid(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_target_device_sync_cache_guid() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_target_device_sync_cache_guid(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_target_device_sync_cache_guid();

  public:
  // optional .sync_pb.PageContext page_context = 10;
  bool has_page_context()
      const;
  void clear_page_context() ;
  const ::sync_pb::PageContext& page_context() const;
  ::sync_pb::PageContext* PROTOBUF_NULLABLE release_page_context();
  ::sync_pb::PageContext* PROTOBUF_NONNULL mutable_page_context();
  void set_allocated_page_context(::sync_pb::PageContext* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_page_context(::sync_pb::PageContext* PROTOBUF_NULLABLE value);
  ::sync_pb::PageContext* PROTOBUF_NULLABLE unsafe_arena_release_page_context();

  private:
  const ::sync_pb::PageContext& _internal_page_context() const;
  ::sync_pb::PageContext* PROTOBUF_NONNULL _internal_mutable_page_context();

  public:
  // optional .sync_pb.EncryptedData encrypted_page_context = 15;
  bool has_encrypted_page_context()
      const;
  void clear_encrypted_page_context() ;
  const ::sync_pb::EncryptedData& encrypted_page_context() const;
  ::sync_pb::EncryptedData* PROTOBUF_NULLABLE release_encrypted_page_context();
  ::sync_pb::EncryptedData* PROTOBUF_NONNULL mutable_encrypted_page_context();
  void set_allocated_encrypted_page_context(::sync_pb::EncryptedData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_encrypted_page_context(::sync_pb::EncryptedData* PROTOBUF_NULLABLE value);
  ::sync_pb::EncryptedData* PROTOBUF_NULLABLE unsafe_arena_release_encrypted_page_context();

  private:
  const ::sync_pb::EncryptedData& _internal_encrypted_page_context() const;
  ::sync_pb::EncryptedData* PROTOBUF_NONNULL _internal_mutable_encrypted_page_context();

  public:
  // optional int64 shared_time_usec = 3;
  bool has_shared_time_usec()
      const;
  void clear_shared_time_usec() ;
  ::int64_t shared_time_usec() const;
  void set_shared_time_usec(::int64_t value);

  private:
  ::int64_t _internal_shared_time_usec() const;
  void _internal_set_shared_time_usec(::int64_t value);

  public:
  // optional bool opened = 8;
  bool has_opened()
      const;
  void clear_opened() ;
  bool opened() const;
  void set_opened(bool value);

  private:
  bool _internal_opened() const;
  void _internal_set_opened(bool value);

  public:
  // optional bool notification_dismissed = 9;
  bool has_notification_dismissed()
      const;
  void clear_notification_dismissed() ;
  bool notification_dismissed() const;
  void set_notification_dismissed(bool value);

  private:
  bool _internal_notification_dismissed() const;
  void _internal_set_notification_dismissed(bool value);

  public:
  // optional int32 current_navigation_index = 12;
  bool has_current_navigation_index()
      const;
  void clear_current_navigation_index() ;
  ::int32_t current_navigation_index() const;
  void set_current_navigation_index(::int32_t value);

  private:
  ::int32_t _internal_current_navigation_index() const;
  void _internal_set_current_navigation_index(::int32_t value);

  public:
  // optional int64 received_time_windows_epoch_micros = 13;
  bool has_received_time_windows_epoch_micros()
      const;
  void clear_received_time_windows_epoch_micros() ;
  ::int64_t received_time_windows_epoch_micros() const;
  void set_received_time_windows_epoch_micros(::int64_t value);

  private:
  ::int64_t _internal_received_time_windows_epoch_micros() const;
  void _internal_set_received_time_windows_epoch_micros(::int64_t value);

  public:
  // optional int64 opened_time_windows_epoch_micros = 14;
  bool has_opened_time_windows_epoch_micros()
      const;
  void clear_opened_time_windows_epoch_micros() ;
  ::int64_t opened_time_windows_epoch_micros() const;
  void set_opened_time_windows_epoch_micros(::int64_t value);

  private:
  ::int64_t _internal_opened_time_windows_epoch_micros() const;
  void _internal_set_opened_time_windows_epoch_micros(::int64_t value);

  public:
  // optional int64 activated_time_windows_epoch_micros = 16;
  bool has_activated_time_windows_epoch_micros()
      const;
  void clear_activated_time_windows_epoch_micros() ;
  ::int64_t activated_time_windows_epoch_micros() const;
  void set_activated_time_windows_epoch_micros(::int64_t value);

  private:
  ::int64_t _internal_activated_time_windows_epoch_micros() const;
  void _internal_set_activated_time_windows_epoch_micros(::int64_t value);

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const SendTabToSelfSpecifics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::sync_pb::TabNavigation > navigation_;
    ::google::protobuf::internal::ArenaStringPtr title_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    ::google::protobuf::internal::ArenaStringPtr device_name_;
    ::google::protobuf::internal::ArenaStringPtr guid_;
    ::google::protobuf::internal::ArenaStringPtr target_device_sync_cache_guid_;
    ::sync_pb::PageContext* PROTOBUF_NULLABLE page_context_;
    ::sync_pb::EncryptedData* PROTOBUF_NULLABLE encrypted_page_context_;
    ::int64_t shared_time_usec_;
    bool opened_;
    bool notification_dismissed_;
    ::int32_t current_navigation_index_;
    ::int64_t received_time_windows_epoch_micros_;
    ::int64_t opened_time_windows_epoch_micros_;
    ::int64_t activated_time_windows_epoch_micros_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto;
};

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




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


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

// SendTabToSelfSpecifics

// optional string guid = 5;
inline bool SendTabToSelfSpecifics::has_guid() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_guid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.guid_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& SendTabToSelfSpecifics::guid() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.guid)
  return _internal_guid();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SendTabToSelfSpecifics::set_guid(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.guid_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.guid)
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_guid()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_guid();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.guid)
  return _s;
}
inline const ::std::string& SendTabToSelfSpecifics::_internal_guid() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.guid_.Get();
}
inline void SendTabToSelfSpecifics::_internal_set_guid(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.guid_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_guid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.guid_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_guid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.guid)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.guid_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.guid_.Set("", GetArena());
  }
  return released;
}
inline void SendTabToSelfSpecifics::set_allocated_guid(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.guid_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.guid_.IsDefault()) {
    _impl_.guid_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.guid)
}

// optional string title = 1;
inline bool SendTabToSelfSpecifics::has_title() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.title_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& SendTabToSelfSpecifics::title() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.title)
  return _internal_title();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SendTabToSelfSpecifics::set_title(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.title_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.title)
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_title()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_title();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.title)
  return _s;
}
inline const ::std::string& SendTabToSelfSpecifics::_internal_title() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.title_.Get();
}
inline void SendTabToSelfSpecifics::_internal_set_title(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.title_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.title_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.title)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.title_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.title_.Set("", GetArena());
  }
  return released;
}
inline void SendTabToSelfSpecifics::set_allocated_title(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.title_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.title_.IsDefault()) {
    _impl_.title_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.title)
}

// optional string url = 2;
inline bool SendTabToSelfSpecifics::has_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& SendTabToSelfSpecifics::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SendTabToSelfSpecifics::set_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.url)
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.url)
  return _s;
}
inline const ::std::string& SendTabToSelfSpecifics::_internal_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.url_.Get();
}
inline void SendTabToSelfSpecifics::_internal_set_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.url_.Set("", GetArena());
  }
  return released;
}
inline void SendTabToSelfSpecifics::set_allocated_url(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.url_.IsDefault()) {
    _impl_.url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.url)
}

// optional int64 shared_time_usec = 3;
inline bool SendTabToSelfSpecifics::has_shared_time_usec() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_shared_time_usec() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shared_time_usec_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::int64_t SendTabToSelfSpecifics::shared_time_usec() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.shared_time_usec)
  return _internal_shared_time_usec();
}
inline void SendTabToSelfSpecifics::set_shared_time_usec(::int64_t value) {
  _internal_set_shared_time_usec(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.shared_time_usec)
}
inline ::int64_t SendTabToSelfSpecifics::_internal_shared_time_usec() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.shared_time_usec_;
}
inline void SendTabToSelfSpecifics::_internal_set_shared_time_usec(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shared_time_usec_ = value;
}

// optional string device_name = 4;
inline bool SendTabToSelfSpecifics::has_device_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_device_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.device_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& SendTabToSelfSpecifics::device_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.device_name)
  return _internal_device_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SendTabToSelfSpecifics::set_device_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.device_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.device_name)
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_device_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_device_name();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.device_name)
  return _s;
}
inline const ::std::string& SendTabToSelfSpecifics::_internal_device_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.device_name_.Get();
}
inline void SendTabToSelfSpecifics::_internal_set_device_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.device_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_device_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.device_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_device_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.device_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.device_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.device_name_.Set("", GetArena());
  }
  return released;
}
inline void SendTabToSelfSpecifics::set_allocated_device_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.device_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.device_name_.IsDefault()) {
    _impl_.device_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.device_name)
}

// optional string target_device_sync_cache_guid = 7;
inline bool SendTabToSelfSpecifics::has_target_device_sync_cache_guid() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_target_device_sync_cache_guid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.target_device_sync_cache_guid_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& SendTabToSelfSpecifics::target_device_sync_cache_guid() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.target_device_sync_cache_guid)
  return _internal_target_device_sync_cache_guid();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SendTabToSelfSpecifics::set_target_device_sync_cache_guid(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.target_device_sync_cache_guid_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.target_device_sync_cache_guid)
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_target_device_sync_cache_guid()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_target_device_sync_cache_guid();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.target_device_sync_cache_guid)
  return _s;
}
inline const ::std::string& SendTabToSelfSpecifics::_internal_target_device_sync_cache_guid() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.target_device_sync_cache_guid_.Get();
}
inline void SendTabToSelfSpecifics::_internal_set_target_device_sync_cache_guid(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.target_device_sync_cache_guid_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_target_device_sync_cache_guid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.target_device_sync_cache_guid_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_target_device_sync_cache_guid() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.target_device_sync_cache_guid)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.target_device_sync_cache_guid_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.target_device_sync_cache_guid_.Set("", GetArena());
  }
  return released;
}
inline void SendTabToSelfSpecifics::set_allocated_target_device_sync_cache_guid(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.target_device_sync_cache_guid_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.target_device_sync_cache_guid_.IsDefault()) {
    _impl_.target_device_sync_cache_guid_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.target_device_sync_cache_guid)
}

// optional bool opened = 8;
inline bool SendTabToSelfSpecifics::has_opened() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_opened() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.opened_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline bool SendTabToSelfSpecifics::opened() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.opened)
  return _internal_opened();
}
inline void SendTabToSelfSpecifics::set_opened(bool value) {
  _internal_set_opened(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.opened)
}
inline bool SendTabToSelfSpecifics::_internal_opened() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.opened_;
}
inline void SendTabToSelfSpecifics::_internal_set_opened(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.opened_ = value;
}

// optional bool notification_dismissed = 9;
inline bool SendTabToSelfSpecifics::has_notification_dismissed() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_notification_dismissed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.notification_dismissed_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline bool SendTabToSelfSpecifics::notification_dismissed() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.notification_dismissed)
  return _internal_notification_dismissed();
}
inline void SendTabToSelfSpecifics::set_notification_dismissed(bool value) {
  _internal_set_notification_dismissed(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.notification_dismissed)
}
inline bool SendTabToSelfSpecifics::_internal_notification_dismissed() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.notification_dismissed_;
}
inline void SendTabToSelfSpecifics::_internal_set_notification_dismissed(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.notification_dismissed_ = value;
}

// optional .sync_pb.PageContext page_context = 10;
inline bool SendTabToSelfSpecifics::has_page_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.page_context_ != nullptr);
  return value;
}
inline void SendTabToSelfSpecifics::clear_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.page_context_ != nullptr) _impl_.page_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::sync_pb::PageContext& SendTabToSelfSpecifics::_internal_page_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::PageContext* p = _impl_.page_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::PageContext>(&::sync_pb::PageContext_globals_);
}
inline const ::sync_pb::PageContext& SendTabToSelfSpecifics::page_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.page_context)
  return _internal_page_context();
}
inline void SendTabToSelfSpecifics::unsafe_arena_set_allocated_page_context(
    ::sync_pb::PageContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.page_context_);
  }
  _impl_.page_context_ = reinterpret_cast<::sync_pb::PageContext*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.SendTabToSelfSpecifics.page_context)
}
inline ::sync_pb::PageContext* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::sync_pb::PageContext* released = _impl_.page_context_;
  _impl_.page_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::sync_pb::PageContext* PROTOBUF_NULLABLE SendTabToSelfSpecifics::unsafe_arena_release_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.page_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::sync_pb::PageContext* temp = _impl_.page_context_;
  _impl_.page_context_ = nullptr;
  return temp;
}
inline ::sync_pb::PageContext* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.page_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::PageContext>(GetArena());
    _impl_.page_context_ = reinterpret_cast<::sync_pb::PageContext*>(p);
  }
  return _impl_.page_context_;
}
inline ::sync_pb::PageContext* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_page_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::sync_pb::PageContext* _msg = _internal_mutable_page_context();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.page_context)
  return _msg;
}
inline void SendTabToSelfSpecifics::set_allocated_page_context(::sync_pb::PageContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.page_context_);
  }

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

  _impl_.page_context_ = reinterpret_cast<::sync_pb::PageContext*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.page_context)
}

// optional .sync_pb.EncryptedData encrypted_page_context = 15;
inline bool SendTabToSelfSpecifics::has_encrypted_page_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.encrypted_page_context_ != nullptr);
  return value;
}
inline const ::sync_pb::EncryptedData& SendTabToSelfSpecifics::_internal_encrypted_page_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::EncryptedData* p = _impl_.encrypted_page_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::EncryptedData>(&::sync_pb::EncryptedData_globals_);
}
inline const ::sync_pb::EncryptedData& SendTabToSelfSpecifics::encrypted_page_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.encrypted_page_context)
  return _internal_encrypted_page_context();
}
inline void SendTabToSelfSpecifics::unsafe_arena_set_allocated_encrypted_page_context(
    ::sync_pb::EncryptedData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.encrypted_page_context_);
  }
  _impl_.encrypted_page_context_ = reinterpret_cast<::sync_pb::EncryptedData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.SendTabToSelfSpecifics.encrypted_page_context)
}
inline ::sync_pb::EncryptedData* PROTOBUF_NULLABLE SendTabToSelfSpecifics::release_encrypted_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::sync_pb::EncryptedData* released = _impl_.encrypted_page_context_;
  _impl_.encrypted_page_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::sync_pb::EncryptedData* PROTOBUF_NULLABLE SendTabToSelfSpecifics::unsafe_arena_release_encrypted_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.SendTabToSelfSpecifics.encrypted_page_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::sync_pb::EncryptedData* temp = _impl_.encrypted_page_context_;
  _impl_.encrypted_page_context_ = nullptr;
  return temp;
}
inline ::sync_pb::EncryptedData* PROTOBUF_NONNULL SendTabToSelfSpecifics::_internal_mutable_encrypted_page_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.encrypted_page_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::EncryptedData>(GetArena());
    _impl_.encrypted_page_context_ = reinterpret_cast<::sync_pb::EncryptedData*>(p);
  }
  return _impl_.encrypted_page_context_;
}
inline ::sync_pb::EncryptedData* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_encrypted_page_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::sync_pb::EncryptedData* _msg = _internal_mutable_encrypted_page_context();
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.encrypted_page_context)
  return _msg;
}
inline void SendTabToSelfSpecifics::set_allocated_encrypted_page_context(::sync_pb::EncryptedData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.encrypted_page_context_);
  }

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

  _impl_.encrypted_page_context_ = reinterpret_cast<::sync_pb::EncryptedData*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.SendTabToSelfSpecifics.encrypted_page_context)
}

// repeated .sync_pb.TabNavigation navigation = 11;
inline int SendTabToSelfSpecifics::_internal_navigation_size() const {
  return _internal_navigation().size();
}
inline int SendTabToSelfSpecifics::navigation_size() const {
  return _internal_navigation_size();
}
inline const ::sync_pb::TabNavigation& SendTabToSelfSpecifics::navigation(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.navigation)
  return _internal_navigation().Get(index);
}
inline ::sync_pb::TabNavigation* PROTOBUF_NONNULL SendTabToSelfSpecifics::mutable_navigation(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:sync_pb.SendTabToSelfSpecifics.navigation)
  return _internal_mutable_navigation()->Mutable(index);
}
inline ::sync_pb::TabNavigation* PROTOBUF_NONNULL SendTabToSelfSpecifics::add_navigation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::sync_pb::TabNavigation* _add =
      _internal_mutable_navigation()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:sync_pb.SendTabToSelfSpecifics.navigation)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>& SendTabToSelfSpecifics::navigation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:sync_pb.SendTabToSelfSpecifics.navigation)
  return _internal_navigation();
}
inline ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>* PROTOBUF_NONNULL
SendTabToSelfSpecifics::mutable_navigation() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:sync_pb.SendTabToSelfSpecifics.navigation)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_navigation();
}
inline const ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>&
SendTabToSelfSpecifics::_internal_navigation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.navigation_;
}
inline ::google::protobuf::RepeatedPtrField<::sync_pb::TabNavigation>* PROTOBUF_NONNULL
SendTabToSelfSpecifics::_internal_mutable_navigation() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.navigation_;
}

// optional int32 current_navigation_index = 12;
inline bool SendTabToSelfSpecifics::has_current_navigation_index() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_current_navigation_index() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.current_navigation_index_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::int32_t SendTabToSelfSpecifics::current_navigation_index() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.current_navigation_index)
  return _internal_current_navigation_index();
}
inline void SendTabToSelfSpecifics::set_current_navigation_index(::int32_t value) {
  _internal_set_current_navigation_index(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.current_navigation_index)
}
inline ::int32_t SendTabToSelfSpecifics::_internal_current_navigation_index() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.current_navigation_index_;
}
inline void SendTabToSelfSpecifics::_internal_set_current_navigation_index(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.current_navigation_index_ = value;
}

// optional int64 received_time_windows_epoch_micros = 13;
inline bool SendTabToSelfSpecifics::has_received_time_windows_epoch_micros() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_received_time_windows_epoch_micros() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_time_windows_epoch_micros_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::int64_t SendTabToSelfSpecifics::received_time_windows_epoch_micros() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.received_time_windows_epoch_micros)
  return _internal_received_time_windows_epoch_micros();
}
inline void SendTabToSelfSpecifics::set_received_time_windows_epoch_micros(::int64_t value) {
  _internal_set_received_time_windows_epoch_micros(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.received_time_windows_epoch_micros)
}
inline ::int64_t SendTabToSelfSpecifics::_internal_received_time_windows_epoch_micros() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_time_windows_epoch_micros_;
}
inline void SendTabToSelfSpecifics::_internal_set_received_time_windows_epoch_micros(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_time_windows_epoch_micros_ = value;
}

// optional int64 opened_time_windows_epoch_micros = 14;
inline bool SendTabToSelfSpecifics::has_opened_time_windows_epoch_micros() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00002000U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_opened_time_windows_epoch_micros() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.opened_time_windows_epoch_micros_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline ::int64_t SendTabToSelfSpecifics::opened_time_windows_epoch_micros() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.opened_time_windows_epoch_micros)
  return _internal_opened_time_windows_epoch_micros();
}
inline void SendTabToSelfSpecifics::set_opened_time_windows_epoch_micros(::int64_t value) {
  _internal_set_opened_time_windows_epoch_micros(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.opened_time_windows_epoch_micros)
}
inline ::int64_t SendTabToSelfSpecifics::_internal_opened_time_windows_epoch_micros() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.opened_time_windows_epoch_micros_;
}
inline void SendTabToSelfSpecifics::_internal_set_opened_time_windows_epoch_micros(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.opened_time_windows_epoch_micros_ = value;
}

// optional int64 activated_time_windows_epoch_micros = 16;
inline bool SendTabToSelfSpecifics::has_activated_time_windows_epoch_micros() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00004000U);
  return value;
}
inline void SendTabToSelfSpecifics::clear_activated_time_windows_epoch_micros() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.activated_time_windows_epoch_micros_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::int64_t SendTabToSelfSpecifics::activated_time_windows_epoch_micros() const {
  // @@protoc_insertion_point(field_get:sync_pb.SendTabToSelfSpecifics.activated_time_windows_epoch_micros)
  return _internal_activated_time_windows_epoch_micros();
}
inline void SendTabToSelfSpecifics::set_activated_time_windows_epoch_micros(::int64_t value) {
  _internal_set_activated_time_windows_epoch_micros(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:sync_pb.SendTabToSelfSpecifics.activated_time_windows_epoch_micros)
}
inline ::int64_t SendTabToSelfSpecifics::_internal_activated_time_windows_epoch_micros() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.activated_time_windows_epoch_micros_;
}
inline void SendTabToSelfSpecifics::_internal_set_activated_time_windows_epoch_micros(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.activated_time_windows_epoch_micros_ = value;
}

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

// PageContext

// optional .sync_pb.FormFieldInfo form_field_info = 1;
inline bool PageContext::has_form_field_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.form_field_info_ != nullptr);
  return value;
}
inline void PageContext::clear_form_field_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.form_field_info_ != nullptr) _impl_.form_field_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::sync_pb::FormFieldInfo& PageContext::_internal_form_field_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::FormFieldInfo* p = _impl_.form_field_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::FormFieldInfo>(&::sync_pb::FormFieldInfo_globals_);
}
inline const ::sync_pb::FormFieldInfo& PageContext::form_field_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PageContext.form_field_info)
  return _internal_form_field_info();
}
inline void PageContext::unsafe_arena_set_allocated_form_field_info(
    ::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.form_field_info_);
  }
  _impl_.form_field_info_ = reinterpret_cast<::sync_pb::FormFieldInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.PageContext.form_field_info)
}
inline ::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE PageContext::release_form_field_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::FormFieldInfo* released = _impl_.form_field_info_;
  _impl_.form_field_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE PageContext::unsafe_arena_release_form_field_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PageContext.form_field_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::FormFieldInfo* temp = _impl_.form_field_info_;
  _impl_.form_field_info_ = nullptr;
  return temp;
}
inline ::sync_pb::FormFieldInfo* PROTOBUF_NONNULL PageContext::_internal_mutable_form_field_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.form_field_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::FormFieldInfo>(GetArena());
    _impl_.form_field_info_ = reinterpret_cast<::sync_pb::FormFieldInfo*>(p);
  }
  return _impl_.form_field_info_;
}
inline ::sync_pb::FormFieldInfo* PROTOBUF_NONNULL PageContext::mutable_form_field_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::FormFieldInfo* _msg = _internal_mutable_form_field_info();
  // @@protoc_insertion_point(field_mutable:sync_pb.PageContext.form_field_info)
  return _msg;
}
inline void PageContext::set_allocated_form_field_info(::sync_pb::FormFieldInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.form_field_info_);
  }

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

  _impl_.form_field_info_ = reinterpret_cast<::sync_pb::FormFieldInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PageContext.form_field_info)
}

// optional .sync_pb.ScrollPosition scroll_position = 2;
inline bool PageContext::has_scroll_position() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.scroll_position_ != nullptr);
  return value;
}
inline void PageContext::clear_scroll_position() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.scroll_position_ != nullptr) _impl_.scroll_position_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::sync_pb::ScrollPosition& PageContext::_internal_scroll_position() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::ScrollPosition* p = _impl_.scroll_position_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::ScrollPosition>(&::sync_pb::ScrollPosition_globals_);
}
inline const ::sync_pb::ScrollPosition& PageContext::scroll_position() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PageContext.scroll_position)
  return _internal_scroll_position();
}
inline void PageContext::unsafe_arena_set_allocated_scroll_position(
    ::sync_pb::ScrollPosition* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.scroll_position_);
  }
  _impl_.scroll_position_ = reinterpret_cast<::sync_pb::ScrollPosition*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.PageContext.scroll_position)
}
inline ::sync_pb::ScrollPosition* PROTOBUF_NULLABLE PageContext::release_scroll_position() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::sync_pb::ScrollPosition* released = _impl_.scroll_position_;
  _impl_.scroll_position_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::sync_pb::ScrollPosition* PROTOBUF_NULLABLE PageContext::unsafe_arena_release_scroll_position() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PageContext.scroll_position)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::sync_pb::ScrollPosition* temp = _impl_.scroll_position_;
  _impl_.scroll_position_ = nullptr;
  return temp;
}
inline ::sync_pb::ScrollPosition* PROTOBUF_NONNULL PageContext::_internal_mutable_scroll_position() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.scroll_position_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::ScrollPosition>(GetArena());
    _impl_.scroll_position_ = reinterpret_cast<::sync_pb::ScrollPosition*>(p);
  }
  return _impl_.scroll_position_;
}
inline ::sync_pb::ScrollPosition* PROTOBUF_NONNULL PageContext::mutable_scroll_position()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::sync_pb::ScrollPosition* _msg = _internal_mutable_scroll_position();
  // @@protoc_insertion_point(field_mutable:sync_pb.PageContext.scroll_position)
  return _msg;
}
inline void PageContext::set_allocated_scroll_position(::sync_pb::ScrollPosition* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.scroll_position_);
  }

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

  _impl_.scroll_position_ = reinterpret_cast<::sync_pb::ScrollPosition*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PageContext.scroll_position)
}

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

// FormFieldInfo

// repeated .sync_pb.FormField fields = 1;
inline int FormFieldInfo::_internal_fields_size() const {
  return _internal_fields().size();
}
inline int FormFieldInfo::fields_size() const {
  return _internal_fields_size();
}
inline void FormFieldInfo::clear_fields() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.fields_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::sync_pb::FormField& FormFieldInfo::fields(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.FormFieldInfo.fields)
  return _internal_fields().Get(index);
}
inline ::sync_pb::FormField* PROTOBUF_NONNULL FormFieldInfo::mutable_fields(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:sync_pb.FormFieldInfo.fields)
  return _internal_mutable_fields()->Mutable(index);
}
inline ::sync_pb::FormField* PROTOBUF_NONNULL FormFieldInfo::add_fields()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::sync_pb::FormField* _add =
      _internal_mutable_fields()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:sync_pb.FormFieldInfo.fields)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>& FormFieldInfo::fields() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:sync_pb.FormFieldInfo.fields)
  return _internal_fields();
}
inline ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>* PROTOBUF_NONNULL
FormFieldInfo::mutable_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:sync_pb.FormFieldInfo.fields)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_fields();
}
inline const ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>&
FormFieldInfo::_internal_fields() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.fields_;
}
inline ::google::protobuf::RepeatedPtrField<::sync_pb::FormField>* PROTOBUF_NONNULL
FormFieldInfo::_internal_mutable_fields() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.fields_;
}

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

// FormField

// optional string id_attribute = 1;
inline bool FormField::has_id_attribute() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void FormField::clear_id_attribute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_attribute_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& FormField::id_attribute() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.id_attribute)
  return _internal_id_attribute();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FormField::set_id_attribute(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.id_attribute_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.FormField.id_attribute)
}
inline ::std::string* PROTOBUF_NONNULL FormField::mutable_id_attribute()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_id_attribute();
  // @@protoc_insertion_point(field_mutable:sync_pb.FormField.id_attribute)
  return _s;
}
inline const ::std::string& FormField::_internal_id_attribute() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_attribute_.Get();
}
inline void FormField::_internal_set_id_attribute(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_attribute_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FormField::_internal_mutable_id_attribute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.id_attribute_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FormField::release_id_attribute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.FormField.id_attribute)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.id_attribute_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.id_attribute_.Set("", GetArena());
  }
  return released;
}
inline void FormField::set_allocated_id_attribute(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.id_attribute_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.id_attribute_.IsDefault()) {
    _impl_.id_attribute_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.FormField.id_attribute)
}

// optional string name_attribute = 2;
inline bool FormField::has_name_attribute() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void FormField::clear_name_attribute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_attribute_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& FormField::name_attribute() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.name_attribute)
  return _internal_name_attribute();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FormField::set_name_attribute(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_attribute_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.FormField.name_attribute)
}
inline ::std::string* PROTOBUF_NONNULL FormField::mutable_name_attribute()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name_attribute();
  // @@protoc_insertion_point(field_mutable:sync_pb.FormField.name_attribute)
  return _s;
}
inline const ::std::string& FormField::_internal_name_attribute() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_attribute_.Get();
}
inline void FormField::_internal_set_name_attribute(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_attribute_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FormField::_internal_mutable_name_attribute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_attribute_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FormField::release_name_attribute() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.FormField.name_attribute)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_attribute_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_attribute_.Set("", GetArena());
  }
  return released;
}
inline void FormField::set_allocated_name_attribute(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_attribute_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_attribute_.IsDefault()) {
    _impl_.name_attribute_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.FormField.name_attribute)
}

// optional string form_control_type = 4;
inline bool FormField::has_form_control_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void FormField::clear_form_control_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.form_control_type_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& FormField::form_control_type() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.form_control_type)
  return _internal_form_control_type();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FormField::set_form_control_type(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.form_control_type_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.FormField.form_control_type)
}
inline ::std::string* PROTOBUF_NONNULL FormField::mutable_form_control_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_form_control_type();
  // @@protoc_insertion_point(field_mutable:sync_pb.FormField.form_control_type)
  return _s;
}
inline const ::std::string& FormField::_internal_form_control_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.form_control_type_.Get();
}
inline void FormField::_internal_set_form_control_type(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.form_control_type_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FormField::_internal_mutable_form_control_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.form_control_type_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FormField::release_form_control_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.FormField.form_control_type)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.form_control_type_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.form_control_type_.Set("", GetArena());
  }
  return released;
}
inline void FormField::set_allocated_form_control_type(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.form_control_type_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.form_control_type_.IsDefault()) {
    _impl_.form_control_type_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.FormField.form_control_type)
}

// optional string value = 5;
inline bool FormField::has_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void FormField::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& FormField::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void FormField::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.value_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.FormField.value)
}
inline ::std::string* PROTOBUF_NONNULL FormField::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:sync_pb.FormField.value)
  return _s;
}
inline const ::std::string& FormField::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void FormField::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL FormField::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE FormField::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.FormField.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void FormField::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.FormField.value)
}

// optional uint64 form_signature = 6;
inline bool FormField::has_form_signature() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void FormField::clear_form_signature() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.form_signature_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint64_t FormField::form_signature() const {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.form_signature)
  return _internal_form_signature();
}
inline void FormField::set_form_signature(::uint64_t value) {
  _internal_set_form_signature(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:sync_pb.FormField.form_signature)
}
inline ::uint64_t FormField::_internal_form_signature() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.form_signature_;
}
inline void FormField::_internal_set_form_signature(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.form_signature_ = value;
}

// optional uint32 field_signature = 7;
inline bool FormField::has_field_signature() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void FormField::clear_field_signature() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.field_signature_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t FormField::field_signature() const {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.field_signature)
  return _internal_field_signature();
}
inline void FormField::set_field_signature(::uint32_t value) {
  _internal_set_field_signature(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:sync_pb.FormField.field_signature)
}
inline ::uint32_t FormField::_internal_field_signature() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.field_signature_;
}
inline void FormField::_internal_set_field_signature(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.field_signature_ = value;
}

// repeated .sync_pb.FormField.AutofillFieldType autofill_types = 8;
inline int FormField::_internal_autofill_types_size() const {
  return _internal_autofill_types().size();
}
inline int FormField::autofill_types_size() const {
  return _internal_autofill_types_size();
}
inline void FormField::clear_autofill_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.autofill_types_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::sync_pb::FormField_AutofillFieldType FormField::autofill_types(int index) const {
  // @@protoc_insertion_point(field_get:sync_pb.FormField.autofill_types)
  return static_cast<::sync_pb::FormField_AutofillFieldType>(_internal_autofill_types().Get(index));
}
inline void FormField::set_autofill_types(int index, ::sync_pb::FormField_AutofillFieldType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::sync_pb::FormField_AutofillFieldType_internal_data_));
                                          _internal_mutable_autofill_types()->Set(index, value);
  // @@protoc_insertion_point(field_set:sync_pb.FormField.autofill_types)
}
inline void FormField::add_autofill_types(::sync_pb::FormField_AutofillFieldType value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::sync_pb::FormField_AutofillFieldType_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_autofill_types()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:sync_pb.FormField.autofill_types)
}
inline const ::google::protobuf::RepeatedField<int>& FormField::autofill_types() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:sync_pb.FormField.autofill_types)
  return _internal_autofill_types();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL FormField::mutable_autofill_types()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:sync_pb.FormField.autofill_types)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_autofill_types();
}
inline const ::google::protobuf::RepeatedField<int>& FormField::_internal_autofill_types()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.autofill_types_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
FormField::_internal_mutable_autofill_types() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.autofill_types_;
}

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

// ScrollPosition

// optional .sync_pb.TextFragmentData text_fragment = 1;
inline bool ScrollPosition::has_text_fragment() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.text_fragment_ != nullptr);
  return value;
}
inline void ScrollPosition::clear_text_fragment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.text_fragment_ != nullptr) _impl_.text_fragment_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::sync_pb::TextFragmentData& ScrollPosition::_internal_text_fragment() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::TextFragmentData* p = _impl_.text_fragment_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::TextFragmentData>(&::sync_pb::TextFragmentData_globals_);
}
inline const ::sync_pb::TextFragmentData& ScrollPosition::text_fragment() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.ScrollPosition.text_fragment)
  return _internal_text_fragment();
}
inline void ScrollPosition::unsafe_arena_set_allocated_text_fragment(
    ::sync_pb::TextFragmentData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.text_fragment_);
  }
  _impl_.text_fragment_ = reinterpret_cast<::sync_pb::TextFragmentData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.ScrollPosition.text_fragment)
}
inline ::sync_pb::TextFragmentData* PROTOBUF_NULLABLE ScrollPosition::release_text_fragment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::TextFragmentData* released = _impl_.text_fragment_;
  _impl_.text_fragment_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::sync_pb::TextFragmentData* PROTOBUF_NULLABLE ScrollPosition::unsafe_arena_release_text_fragment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.ScrollPosition.text_fragment)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::TextFragmentData* temp = _impl_.text_fragment_;
  _impl_.text_fragment_ = nullptr;
  return temp;
}
inline ::sync_pb::TextFragmentData* PROTOBUF_NONNULL ScrollPosition::_internal_mutable_text_fragment() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.text_fragment_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::TextFragmentData>(GetArena());
    _impl_.text_fragment_ = reinterpret_cast<::sync_pb::TextFragmentData*>(p);
  }
  return _impl_.text_fragment_;
}
inline ::sync_pb::TextFragmentData* PROTOBUF_NONNULL ScrollPosition::mutable_text_fragment()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::TextFragmentData* _msg = _internal_mutable_text_fragment();
  // @@protoc_insertion_point(field_mutable:sync_pb.ScrollPosition.text_fragment)
  return _msg;
}
inline void ScrollPosition::set_allocated_text_fragment(::sync_pb::TextFragmentData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.text_fragment_);
  }

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

  _impl_.text_fragment_ = reinterpret_cast<::sync_pb::TextFragmentData*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.ScrollPosition.text_fragment)
}

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

// TextFragmentData

// optional string text_start = 1;
inline bool TextFragmentData::has_text_start() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void TextFragmentData::clear_text_start() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_start_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& TextFragmentData::text_start() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.TextFragmentData.text_start)
  return _internal_text_start();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TextFragmentData::set_text_start(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.text_start_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.TextFragmentData.text_start)
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::mutable_text_start()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_text_start();
  // @@protoc_insertion_point(field_mutable:sync_pb.TextFragmentData.text_start)
  return _s;
}
inline const ::std::string& TextFragmentData::_internal_text_start() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.text_start_.Get();
}
inline void TextFragmentData::_internal_set_text_start(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_start_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::_internal_mutable_text_start() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.text_start_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TextFragmentData::release_text_start() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.TextFragmentData.text_start)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.text_start_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.text_start_.Set("", GetArena());
  }
  return released;
}
inline void TextFragmentData::set_allocated_text_start(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.text_start_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.text_start_.IsDefault()) {
    _impl_.text_start_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.TextFragmentData.text_start)
}

// optional string text_end = 2;
inline bool TextFragmentData::has_text_end() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void TextFragmentData::clear_text_end() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_end_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& TextFragmentData::text_end() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.TextFragmentData.text_end)
  return _internal_text_end();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TextFragmentData::set_text_end(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.text_end_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.TextFragmentData.text_end)
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::mutable_text_end()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_text_end();
  // @@protoc_insertion_point(field_mutable:sync_pb.TextFragmentData.text_end)
  return _s;
}
inline const ::std::string& TextFragmentData::_internal_text_end() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.text_end_.Get();
}
inline void TextFragmentData::_internal_set_text_end(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_end_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::_internal_mutable_text_end() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.text_end_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TextFragmentData::release_text_end() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.TextFragmentData.text_end)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.text_end_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.text_end_.Set("", GetArena());
  }
  return released;
}
inline void TextFragmentData::set_allocated_text_end(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.text_end_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.text_end_.IsDefault()) {
    _impl_.text_end_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.TextFragmentData.text_end)
}

// optional string prefix = 3;
inline bool TextFragmentData::has_prefix() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void TextFragmentData::clear_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& TextFragmentData::prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.TextFragmentData.prefix)
  return _internal_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TextFragmentData::set_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.TextFragmentData.prefix)
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::mutable_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_prefix();
  // @@protoc_insertion_point(field_mutable:sync_pb.TextFragmentData.prefix)
  return _s;
}
inline const ::std::string& TextFragmentData::_internal_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.prefix_.Get();
}
inline void TextFragmentData::_internal_set_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::_internal_mutable_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TextFragmentData::release_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.TextFragmentData.prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.prefix_.Set("", GetArena());
  }
  return released;
}
inline void TextFragmentData::set_allocated_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.prefix_.IsDefault()) {
    _impl_.prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.TextFragmentData.prefix)
}

// optional string suffix = 4;
inline bool TextFragmentData::has_suffix() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void TextFragmentData::clear_suffix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.suffix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& TextFragmentData::suffix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.TextFragmentData.suffix)
  return _internal_suffix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TextFragmentData::set_suffix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.suffix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.TextFragmentData.suffix)
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::mutable_suffix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_suffix();
  // @@protoc_insertion_point(field_mutable:sync_pb.TextFragmentData.suffix)
  return _s;
}
inline const ::std::string& TextFragmentData::_internal_suffix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.suffix_.Get();
}
inline void TextFragmentData::_internal_set_suffix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.suffix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TextFragmentData::_internal_mutable_suffix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.suffix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TextFragmentData::release_suffix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.TextFragmentData.suffix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.suffix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.suffix_.Set("", GetArena());
  }
  return released;
}
inline void TextFragmentData::set_allocated_suffix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.suffix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.suffix_.IsDefault()) {
    _impl_.suffix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.TextFragmentData.suffix)
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace sync_pb


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::sync_pb::FormField_AutofillFieldType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::sync_pb::FormField_AutofillFieldType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::sync_pb::FormField_AutofillFieldType_Parse;
  static constexpr auto kNameFunc = ::sync_pb::FormField_AutofillFieldType_Name<int>;
};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

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

#endif  // components_2fsync_2fprotocol_2fsend_5ftab_5fto_5fself_5fspecifics_2eproto_2epb_2eh
