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

#ifndef components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto_2epb_2eh
#define components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_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/nigori_specifics.pb.h"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_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_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto {
  static const ::uint32_t offsets[];
};
namespace sync_pb {
enum OutgoingPasswordSharingInvitationCommitError_ErrorCode : int;
extern const uint32_t OutgoingPasswordSharingInvitationCommitError_ErrorCode_internal_data_[];
class IncomingPasswordSharingInvitationSpecifics;
struct IncomingPasswordSharingInvitationSpecificsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IncomingPasswordSharingInvitationSpecificsGlobalsTypeInternal IncomingPasswordSharingInvitationSpecifics_globals_;
extern const ::google::protobuf::internal::ClassDataLite IncomingPasswordSharingInvitationSpecifics_class_data_;
#else
extern const IncomingPasswordSharingInvitationSpecificsGlobalsTypeInternal IncomingPasswordSharingInvitationSpecifics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class OutgoingPasswordSharingInvitationCommitError;
struct OutgoingPasswordSharingInvitationCommitErrorGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern OutgoingPasswordSharingInvitationCommitErrorGlobalsTypeInternal OutgoingPasswordSharingInvitationCommitError_globals_;
extern const ::google::protobuf::internal::ClassDataLite OutgoingPasswordSharingInvitationCommitError_class_data_;
#else
extern const OutgoingPasswordSharingInvitationCommitErrorGlobalsTypeInternal OutgoingPasswordSharingInvitationCommitError_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class OutgoingPasswordSharingInvitationSpecifics;
struct OutgoingPasswordSharingInvitationSpecificsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern OutgoingPasswordSharingInvitationSpecificsGlobalsTypeInternal OutgoingPasswordSharingInvitationSpecifics_globals_;
extern const ::google::protobuf::internal::ClassDataLite OutgoingPasswordSharingInvitationSpecifics_class_data_;
#else
extern const OutgoingPasswordSharingInvitationSpecificsGlobalsTypeInternal OutgoingPasswordSharingInvitationSpecifics_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PasswordSharingInvitationData;
struct PasswordSharingInvitationDataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PasswordSharingInvitationDataGlobalsTypeInternal PasswordSharingInvitationData_globals_;
extern const ::google::protobuf::internal::ClassDataLite PasswordSharingInvitationData_class_data_;
#else
extern const PasswordSharingInvitationDataGlobalsTypeInternal PasswordSharingInvitationData_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PasswordSharingInvitationData_PasswordGroupData;
struct PasswordSharingInvitationData_PasswordGroupDataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PasswordSharingInvitationData_PasswordGroupDataGlobalsTypeInternal PasswordSharingInvitationData_PasswordGroupData_globals_;
extern const ::google::protobuf::internal::ClassDataLite PasswordSharingInvitationData_PasswordGroupData_class_data_;
#else
extern const PasswordSharingInvitationData_PasswordGroupDataGlobalsTypeInternal PasswordSharingInvitationData_PasswordGroupData_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PasswordSharingInvitationData_PasswordGroupElementData;
struct PasswordSharingInvitationData_PasswordGroupElementDataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PasswordSharingInvitationData_PasswordGroupElementDataGlobalsTypeInternal PasswordSharingInvitationData_PasswordGroupElementData_globals_;
extern const ::google::protobuf::internal::ClassDataLite PasswordSharingInvitationData_PasswordGroupElementData_class_data_;
#else
extern const PasswordSharingInvitationData_PasswordGroupElementDataGlobalsTypeInternal PasswordSharingInvitationData_PasswordGroupElementData_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UserDisplayInfo;
struct UserDisplayInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UserDisplayInfoGlobalsTypeInternal UserDisplayInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite UserDisplayInfo_class_data_;
#else
extern const UserDisplayInfoGlobalsTypeInternal UserDisplayInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UserInfo;
struct UserInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UserInfoGlobalsTypeInternal UserInfo_globals_;
extern const ::google::protobuf::internal::ClassDataLite UserInfo_class_data_;
#else
extern const UserInfoGlobalsTypeInternal UserInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace sync_pb
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode_internal_data_>
    internal::EnumTraitsImpl::value<::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode>;
}  // namespace protobuf
}  // namespace google

namespace sync_pb {
enum OutgoingPasswordSharingInvitationCommitError_ErrorCode : int {
  OutgoingPasswordSharingInvitationCommitError_ErrorCode_UNKNOWN = 0,
  OutgoingPasswordSharingInvitationCommitError_ErrorCode_PUBLIC_KEY_VERSION_MISMATCH = 1,
  OutgoingPasswordSharingInvitationCommitError_ErrorCode_NOT_FAMILY_MEMBER = 2,
};

extern const uint32_t OutgoingPasswordSharingInvitationCommitError_ErrorCode_internal_data_[];
inline constexpr OutgoingPasswordSharingInvitationCommitError_ErrorCode OutgoingPasswordSharingInvitationCommitError_ErrorCode_ErrorCode_MIN =
    static_cast<OutgoingPasswordSharingInvitationCommitError_ErrorCode>(0);
inline constexpr OutgoingPasswordSharingInvitationCommitError_ErrorCode OutgoingPasswordSharingInvitationCommitError_ErrorCode_ErrorCode_MAX =
    static_cast<OutgoingPasswordSharingInvitationCommitError_ErrorCode>(2);
inline bool OutgoingPasswordSharingInvitationCommitError_ErrorCode_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int OutgoingPasswordSharingInvitationCommitError_ErrorCode_ErrorCode_ARRAYSIZE = 2 + 1;
const ::std::string& OutgoingPasswordSharingInvitationCommitError_ErrorCode_Name(OutgoingPasswordSharingInvitationCommitError_ErrorCode value);
template <typename T>
const ::std::string& OutgoingPasswordSharingInvitationCommitError_ErrorCode_Name(T value) {
  static_assert(::std::is_same<T, OutgoingPasswordSharingInvitationCommitError_ErrorCode>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ErrorCode_Name().");
  return OutgoingPasswordSharingInvitationCommitError_ErrorCode_Name(static_cast<OutgoingPasswordSharingInvitationCommitError_ErrorCode>(value));
}
bool OutgoingPasswordSharingInvitationCommitError_ErrorCode_Parse(
    ::absl::string_view name, OutgoingPasswordSharingInvitationCommitError_ErrorCode* PROTOBUF_NONNULL value);
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

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


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

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

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

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

  inline UserDisplayInfo(const UserDisplayInfo& from) : UserDisplayInfo(nullptr, from) {}
  inline UserDisplayInfo(UserDisplayInfo&& from) noexcept : UserDisplayInfo(nullptr, ::std::move(from)) {}
  inline UserDisplayInfo& operator=(const UserDisplayInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserDisplayInfo& operator=(UserDisplayInfo&& 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 UserDisplayInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UserDisplayInfo>(&UserDisplayInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(UserDisplayInfo& a, UserDisplayInfo& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(UserDisplayInfo* 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(UserDisplayInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  UserDisplayInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<UserDisplayInfo>(arena);
  }
  void CopyFrom(const UserDisplayInfo& from);
  void MergeFrom(const UserDisplayInfo& from) { UserDisplayInfo::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(UserDisplayInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.UserDisplayInfo"; }

  explicit UserDisplayInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UserDisplayInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UserDisplayInfo& from);
  UserDisplayInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UserDisplayInfo&& from) noexcept
      : UserDisplayInfo(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 {
    kEmailFieldNumber = 1,
    kDisplayNameFieldNumber = 2,
    kProfileImageUrlFieldNumber = 3,
  };
  // optional string email = 1;
  bool has_email()
      const;
  void clear_email() ;
  const ::std::string& email() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_email(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_email();
  ::std::string* PROTOBUF_NULLABLE release_email();
  void set_allocated_email(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_email() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_email(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_email();

  public:
  // optional string display_name = 2;
  bool has_display_name()
      const;
  void clear_display_name() ;
  const ::std::string& display_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_display_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_display_name();
  ::std::string* PROTOBUF_NULLABLE release_display_name();
  void set_allocated_display_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_display_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_display_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_display_name();

  public:
  // optional string profile_image_url = 3;
  bool has_profile_image_url()
      const;
  void clear_profile_image_url() ;
  const ::std::string& profile_image_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_profile_image_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_profile_image_url();
  ::std::string* PROTOBUF_NULLABLE release_profile_image_url();
  void set_allocated_profile_image_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_profile_image_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_profile_image_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_profile_image_url();

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.UserDisplayInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          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 UserDisplayInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr email_;
    ::google::protobuf::internal::ArenaStringPtr display_name_;
    ::google::protobuf::internal::ArenaStringPtr profile_image_url_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline PasswordSharingInvitationData_PasswordGroupElementData(const PasswordSharingInvitationData_PasswordGroupElementData& from) : PasswordSharingInvitationData_PasswordGroupElementData(nullptr, from) {}
  inline PasswordSharingInvitationData_PasswordGroupElementData(PasswordSharingInvitationData_PasswordGroupElementData&& from) noexcept : PasswordSharingInvitationData_PasswordGroupElementData(nullptr, ::std::move(from)) {}
  inline PasswordSharingInvitationData_PasswordGroupElementData& operator=(const PasswordSharingInvitationData_PasswordGroupElementData& from) {
    CopyFrom(from);
    return *this;
  }
  inline PasswordSharingInvitationData_PasswordGroupElementData& operator=(PasswordSharingInvitationData_PasswordGroupElementData&& 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 PasswordSharingInvitationData_PasswordGroupElementData& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PasswordSharingInvitationData_PasswordGroupElementData>(&PasswordSharingInvitationData_PasswordGroupElementData_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(PasswordSharingInvitationData_PasswordGroupElementData& a, PasswordSharingInvitationData_PasswordGroupElementData& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(PasswordSharingInvitationData_PasswordGroupElementData* 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(PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<PasswordSharingInvitationData_PasswordGroupElementData>(arena);
  }
  void CopyFrom(const PasswordSharingInvitationData_PasswordGroupElementData& from);
  void MergeFrom(const PasswordSharingInvitationData_PasswordGroupElementData& from) { PasswordSharingInvitationData_PasswordGroupElementData::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(PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.PasswordSharingInvitationData.PasswordGroupElementData"; }

  explicit PasswordSharingInvitationData_PasswordGroupElementData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PasswordSharingInvitationData_PasswordGroupElementData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PasswordSharingInvitationData_PasswordGroupElementData& from);
  PasswordSharingInvitationData_PasswordGroupElementData(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PasswordSharingInvitationData_PasswordGroupElementData&& from) noexcept
      : PasswordSharingInvitationData_PasswordGroupElementData(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 {
    kSignonRealmFieldNumber = 3,
    kOriginFieldNumber = 4,
    kUsernameElementFieldNumber = 5,
    kPasswordElementFieldNumber = 7,
    kDisplayNameFieldNumber = 8,
    kAvatarUrlFieldNumber = 9,
    kSchemeFieldNumber = 2,
  };
  // optional string signon_realm = 3;
  bool has_signon_realm()
      const;
  void clear_signon_realm() ;
  const ::std::string& signon_realm() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_signon_realm(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_signon_realm();
  ::std::string* PROTOBUF_NULLABLE release_signon_realm();
  void set_allocated_signon_realm(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_signon_realm() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_signon_realm(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_signon_realm();

  public:
  // optional string origin = 4;
  bool has_origin()
      const;
  void clear_origin() ;
  const ::std::string& origin() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_origin(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_origin();
  ::std::string* PROTOBUF_NULLABLE release_origin();
  void set_allocated_origin(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_origin() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_origin(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_origin();

  public:
  // optional string username_element = 5;
  bool has_username_element()
      const;
  void clear_username_element() ;
  const ::std::string& username_element() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_username_element(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_username_element();
  ::std::string* PROTOBUF_NULLABLE release_username_element();
  void set_allocated_username_element(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_username_element() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_username_element(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_username_element();

  public:
  // optional string password_element = 7;
  bool has_password_element()
      const;
  void clear_password_element() ;
  const ::std::string& password_element() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_password_element(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_password_element();
  ::std::string* PROTOBUF_NULLABLE release_password_element();
  void set_allocated_password_element(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_password_element() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_password_element(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_password_element();

  public:
  // optional string display_name = 8;
  bool has_display_name()
      const;
  void clear_display_name() ;
  const ::std::string& display_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_display_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_display_name();
  ::std::string* PROTOBUF_NULLABLE release_display_name();
  void set_allocated_display_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_display_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_display_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_display_name();

  public:
  // optional string avatar_url = 9;
  bool has_avatar_url()
      const;
  void clear_avatar_url() ;
  const ::std::string& avatar_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_avatar_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_avatar_url();
  ::std::string* PROTOBUF_NULLABLE release_avatar_url();
  void set_allocated_avatar_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_avatar_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_avatar_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_avatar_url();

  public:
  // optional int32 scheme = 2;
  bool has_scheme()
      const;
  void clear_scheme() ;
  ::int32_t scheme() const;
  void set_scheme(::int32_t value);

  private:
  ::int32_t _internal_scheme() const;
  void _internal_set_scheme(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          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 PasswordSharingInvitationData_PasswordGroupElementData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr signon_realm_;
    ::google::protobuf::internal::ArenaStringPtr origin_;
    ::google::protobuf::internal::ArenaStringPtr username_element_;
    ::google::protobuf::internal::ArenaStringPtr password_element_;
    ::google::protobuf::internal::ArenaStringPtr display_name_;
    ::google::protobuf::internal::ArenaStringPtr avatar_url_;
    ::int32_t scheme_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline OutgoingPasswordSharingInvitationCommitError(const OutgoingPasswordSharingInvitationCommitError& from) : OutgoingPasswordSharingInvitationCommitError(nullptr, from) {}
  inline OutgoingPasswordSharingInvitationCommitError(OutgoingPasswordSharingInvitationCommitError&& from) noexcept : OutgoingPasswordSharingInvitationCommitError(nullptr, ::std::move(from)) {}
  inline OutgoingPasswordSharingInvitationCommitError& operator=(const OutgoingPasswordSharingInvitationCommitError& from) {
    CopyFrom(from);
    return *this;
  }
  inline OutgoingPasswordSharingInvitationCommitError& operator=(OutgoingPasswordSharingInvitationCommitError&& 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 OutgoingPasswordSharingInvitationCommitError& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<OutgoingPasswordSharingInvitationCommitError>(&OutgoingPasswordSharingInvitationCommitError_globals_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(OutgoingPasswordSharingInvitationCommitError& a, OutgoingPasswordSharingInvitationCommitError& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(OutgoingPasswordSharingInvitationCommitError* 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(OutgoingPasswordSharingInvitationCommitError* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  OutgoingPasswordSharingInvitationCommitError* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<OutgoingPasswordSharingInvitationCommitError>(arena);
  }
  void CopyFrom(const OutgoingPasswordSharingInvitationCommitError& from);
  void MergeFrom(const OutgoingPasswordSharingInvitationCommitError& from) { OutgoingPasswordSharingInvitationCommitError::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(OutgoingPasswordSharingInvitationCommitError* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.OutgoingPasswordSharingInvitationCommitError"; }

  explicit OutgoingPasswordSharingInvitationCommitError(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  OutgoingPasswordSharingInvitationCommitError(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const OutgoingPasswordSharingInvitationCommitError& from);
  OutgoingPasswordSharingInvitationCommitError(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, OutgoingPasswordSharingInvitationCommitError&& from) noexcept
      : OutgoingPasswordSharingInvitationCommitError(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 ErrorCode = OutgoingPasswordSharingInvitationCommitError_ErrorCode;
  static constexpr ErrorCode UNKNOWN = OutgoingPasswordSharingInvitationCommitError_ErrorCode_UNKNOWN;
  static constexpr ErrorCode PUBLIC_KEY_VERSION_MISMATCH = OutgoingPasswordSharingInvitationCommitError_ErrorCode_PUBLIC_KEY_VERSION_MISMATCH;
  static constexpr ErrorCode NOT_FAMILY_MEMBER = OutgoingPasswordSharingInvitationCommitError_ErrorCode_NOT_FAMILY_MEMBER;
  static inline bool ErrorCode_IsValid(int value) {
    return OutgoingPasswordSharingInvitationCommitError_ErrorCode_IsValid(value);
  }
  static constexpr ErrorCode ErrorCode_MIN = OutgoingPasswordSharingInvitationCommitError_ErrorCode_ErrorCode_MIN;
  static constexpr ErrorCode ErrorCode_MAX = OutgoingPasswordSharingInvitationCommitError_ErrorCode_ErrorCode_MAX;
  static constexpr int ErrorCode_ARRAYSIZE = OutgoingPasswordSharingInvitationCommitError_ErrorCode_ErrorCode_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& ErrorCode_Name(T value) {
    return OutgoingPasswordSharingInvitationCommitError_ErrorCode_Name(value);
  }
  static inline bool ErrorCode_Parse(
      ::absl::string_view name, ErrorCode* PROTOBUF_NONNULL value) {
    return OutgoingPasswordSharingInvitationCommitError_ErrorCode_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kErrorCodeFieldNumber = 1,
  };
  // optional .sync_pb.OutgoingPasswordSharingInvitationCommitError.ErrorCode error_code = 1;
  bool has_error_code()
      const;
  void clear_error_code() ;
  ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode error_code() const;
  void set_error_code(::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode value);

  private:
  ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode _internal_error_code() const;
  void _internal_set_error_code(::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode value);

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.OutgoingPasswordSharingInvitationCommitError)
 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 OutgoingPasswordSharingInvitationCommitError& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int error_code_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline UserInfo(const UserInfo& from) : UserInfo(nullptr, from) {}
  inline UserInfo(UserInfo&& from) noexcept : UserInfo(nullptr, ::std::move(from)) {}
  inline UserInfo& operator=(const UserInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserInfo& operator=(UserInfo&& 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 UserInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UserInfo>(&UserInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(UserInfo& a, UserInfo& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(UserInfo* 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(UserInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  UserInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<UserInfo>(arena);
  }
  void CopyFrom(const UserInfo& from);
  void MergeFrom(const UserInfo& from) { UserInfo::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(UserInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.UserInfo"; }

  explicit UserInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UserInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UserInfo& from);
  UserInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UserInfo&& from) noexcept
      : UserInfo(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 {
    kUserIdFieldNumber = 1,
    kUserDisplayInfoFieldNumber = 2,
    kCrossUserSharingPublicKeyFieldNumber = 3,
  };
  // optional string user_id = 1;
  bool has_user_id()
      const;
  void clear_user_id() ;
  const ::std::string& user_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_user_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_user_id();
  ::std::string* PROTOBUF_NULLABLE release_user_id();
  void set_allocated_user_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_user_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_user_id();

  public:
  // optional .sync_pb.UserDisplayInfo user_display_info = 2;
  bool has_user_display_info()
      const;
  void clear_user_display_info() ;
  const ::sync_pb::UserDisplayInfo& user_display_info() const;
  ::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE release_user_display_info();
  ::sync_pb::UserDisplayInfo* PROTOBUF_NONNULL mutable_user_display_info();
  void set_allocated_user_display_info(::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_user_display_info(::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE value);
  ::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE unsafe_arena_release_user_display_info();

  private:
  const ::sync_pb::UserDisplayInfo& _internal_user_display_info() const;
  ::sync_pb::UserDisplayInfo* PROTOBUF_NONNULL _internal_mutable_user_display_info();

  public:
  // optional .sync_pb.CrossUserSharingPublicKey cross_user_sharing_public_key = 3;
  bool has_cross_user_sharing_public_key()
      const;
  void clear_cross_user_sharing_public_key() ;
  const ::sync_pb::CrossUserSharingPublicKey& cross_user_sharing_public_key() const;
  ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE release_cross_user_sharing_public_key();
  ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NONNULL mutable_cross_user_sharing_public_key();
  void set_allocated_cross_user_sharing_public_key(::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cross_user_sharing_public_key(::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE value);
  ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE unsafe_arena_release_cross_user_sharing_public_key();

  private:
  const ::sync_pb::CrossUserSharingPublicKey& _internal_cross_user_sharing_public_key() const;
  ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NONNULL _internal_mutable_cross_user_sharing_public_key();

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.UserInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          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 UserInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr user_id_;
    ::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE user_display_info_;
    ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE cross_user_sharing_public_key_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline PasswordSharingInvitationData_PasswordGroupData(const PasswordSharingInvitationData_PasswordGroupData& from) : PasswordSharingInvitationData_PasswordGroupData(nullptr, from) {}
  inline PasswordSharingInvitationData_PasswordGroupData(PasswordSharingInvitationData_PasswordGroupData&& from) noexcept : PasswordSharingInvitationData_PasswordGroupData(nullptr, ::std::move(from)) {}
  inline PasswordSharingInvitationData_PasswordGroupData& operator=(const PasswordSharingInvitationData_PasswordGroupData& from) {
    CopyFrom(from);
    return *this;
  }
  inline PasswordSharingInvitationData_PasswordGroupData& operator=(PasswordSharingInvitationData_PasswordGroupData&& 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 PasswordSharingInvitationData_PasswordGroupData& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PasswordSharingInvitationData_PasswordGroupData>(&PasswordSharingInvitationData_PasswordGroupData_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(PasswordSharingInvitationData_PasswordGroupData& a, PasswordSharingInvitationData_PasswordGroupData& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(PasswordSharingInvitationData_PasswordGroupData* 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(PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<PasswordSharingInvitationData_PasswordGroupData>(arena);
  }
  void CopyFrom(const PasswordSharingInvitationData_PasswordGroupData& from);
  void MergeFrom(const PasswordSharingInvitationData_PasswordGroupData& from) { PasswordSharingInvitationData_PasswordGroupData::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(PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.PasswordSharingInvitationData.PasswordGroupData"; }

  explicit PasswordSharingInvitationData_PasswordGroupData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PasswordSharingInvitationData_PasswordGroupData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PasswordSharingInvitationData_PasswordGroupData& from);
  PasswordSharingInvitationData_PasswordGroupData(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PasswordSharingInvitationData_PasswordGroupData&& from) noexcept
      : PasswordSharingInvitationData_PasswordGroupData(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 {
    kElementDataFieldNumber = 3,
    kUsernameValueFieldNumber = 1,
    kPasswordValueFieldNumber = 2,
  };
  // repeated .sync_pb.PasswordSharingInvitationData.PasswordGroupElementData element_data = 3;
  int element_data_size()
      const;
  private:
  int _internal_element_data_size() const;

  public:
  void clear_element_data() ;
  const ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData& element_data(int index) const;
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL mutable_element_data(int index);
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL add_element_data();
  const ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>&
  element_data() const;
  ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>* PROTOBUF_NONNULL
  mutable_element_data();

  private:
  const ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>& _internal_element_data() const;
  ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>* PROTOBUF_NONNULL _internal_mutable_element_data();

  public:
  // optional string username_value = 1;
  bool has_username_value()
      const;
  void clear_username_value() ;
  const ::std::string& username_value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_username_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_username_value();
  ::std::string* PROTOBUF_NULLABLE release_username_value();
  void set_allocated_username_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_username_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_username_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_username_value();

  public:
  // optional string password_value = 2;
  bool has_password_value()
      const;
  void clear_password_value() ;
  const ::std::string& password_value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_password_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_password_value();
  ::std::string* PROTOBUF_NULLABLE release_password_value();
  void set_allocated_password_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_password_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_password_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_password_value();

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.PasswordSharingInvitationData.PasswordGroupData)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          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 PasswordSharingInvitationData_PasswordGroupData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData > element_data_;
    ::google::protobuf::internal::ArenaStringPtr username_value_;
    ::google::protobuf::internal::ArenaStringPtr password_value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline PasswordSharingInvitationData(const PasswordSharingInvitationData& from) : PasswordSharingInvitationData(nullptr, from) {}
  inline PasswordSharingInvitationData(PasswordSharingInvitationData&& from) noexcept : PasswordSharingInvitationData(nullptr, ::std::move(from)) {}
  inline PasswordSharingInvitationData& operator=(const PasswordSharingInvitationData& from) {
    CopyFrom(from);
    return *this;
  }
  inline PasswordSharingInvitationData& operator=(PasswordSharingInvitationData&& 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 PasswordSharingInvitationData& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PasswordSharingInvitationData>(&PasswordSharingInvitationData_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(PasswordSharingInvitationData& a, PasswordSharingInvitationData& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(PasswordSharingInvitationData* 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(PasswordSharingInvitationData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  PasswordSharingInvitationData* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<PasswordSharingInvitationData>(arena);
  }
  void CopyFrom(const PasswordSharingInvitationData& from);
  void MergeFrom(const PasswordSharingInvitationData& from) { PasswordSharingInvitationData::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(PasswordSharingInvitationData* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.PasswordSharingInvitationData"; }

  explicit PasswordSharingInvitationData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PasswordSharingInvitationData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PasswordSharingInvitationData& from);
  PasswordSharingInvitationData(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PasswordSharingInvitationData&& from) noexcept
      : PasswordSharingInvitationData(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 PasswordGroupElementData = PasswordSharingInvitationData_PasswordGroupElementData;
  using PasswordGroupData = PasswordSharingInvitationData_PasswordGroupData;

  // accessors -------------------------------------------------------
  enum : int {
    kPasswordGroupDataFieldNumber = 2,
  };
  // optional .sync_pb.PasswordSharingInvitationData.PasswordGroupData password_group_data = 2;
  bool has_password_group_data()
      const;
  void clear_password_group_data() ;
  const ::sync_pb::PasswordSharingInvitationData_PasswordGroupData& password_group_data() const;
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE release_password_group_data();
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL mutable_password_group_data();
  void set_allocated_password_group_data(::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_password_group_data(::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE value);
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE unsafe_arena_release_password_group_data();

  private:
  const ::sync_pb::PasswordSharingInvitationData_PasswordGroupData& _internal_password_group_data() const;
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL _internal_mutable_password_group_data();

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.PasswordSharingInvitationData)
 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 PasswordSharingInvitationData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE password_group_data_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline OutgoingPasswordSharingInvitationSpecifics(const OutgoingPasswordSharingInvitationSpecifics& from) : OutgoingPasswordSharingInvitationSpecifics(nullptr, from) {}
  inline OutgoingPasswordSharingInvitationSpecifics(OutgoingPasswordSharingInvitationSpecifics&& from) noexcept : OutgoingPasswordSharingInvitationSpecifics(nullptr, ::std::move(from)) {}
  inline OutgoingPasswordSharingInvitationSpecifics& operator=(const OutgoingPasswordSharingInvitationSpecifics& from) {
    CopyFrom(from);
    return *this;
  }
  inline OutgoingPasswordSharingInvitationSpecifics& operator=(OutgoingPasswordSharingInvitationSpecifics&& 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 OutgoingPasswordSharingInvitationSpecifics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<OutgoingPasswordSharingInvitationSpecifics>(&OutgoingPasswordSharingInvitationSpecifics_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(OutgoingPasswordSharingInvitationSpecifics& a, OutgoingPasswordSharingInvitationSpecifics& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(OutgoingPasswordSharingInvitationSpecifics* 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(OutgoingPasswordSharingInvitationSpecifics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  OutgoingPasswordSharingInvitationSpecifics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<OutgoingPasswordSharingInvitationSpecifics>(arena);
  }
  void CopyFrom(const OutgoingPasswordSharingInvitationSpecifics& from);
  void MergeFrom(const OutgoingPasswordSharingInvitationSpecifics& from) { OutgoingPasswordSharingInvitationSpecifics::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(OutgoingPasswordSharingInvitationSpecifics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.OutgoingPasswordSharingInvitationSpecifics"; }

  explicit OutgoingPasswordSharingInvitationSpecifics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  OutgoingPasswordSharingInvitationSpecifics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const OutgoingPasswordSharingInvitationSpecifics& from);
  OutgoingPasswordSharingInvitationSpecifics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, OutgoingPasswordSharingInvitationSpecifics&& from) noexcept
      : OutgoingPasswordSharingInvitationSpecifics(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 {
    kGuidFieldNumber = 1,
    kRecipientUserIdFieldNumber = 2,
    kEncryptedPasswordSharingInvitationDataFieldNumber = 3,
    kClientOnlyUnencryptedDataFieldNumber = 4,
    kRecipientKeyVersionFieldNumber = 6,
    kSenderKeyVersionFieldNumber = 7,
  };
  // optional string guid = 1;
  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 recipient_user_id = 2;
  bool has_recipient_user_id()
      const;
  void clear_recipient_user_id() ;
  const ::std::string& recipient_user_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_recipient_user_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_recipient_user_id();
  ::std::string* PROTOBUF_NULLABLE release_recipient_user_id();
  void set_allocated_recipient_user_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_recipient_user_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_recipient_user_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_recipient_user_id();

  public:
  // optional bytes encrypted_password_sharing_invitation_data = 3;
  bool has_encrypted_password_sharing_invitation_data()
      const;
  void clear_encrypted_password_sharing_invitation_data() ;
  const ::std::string& encrypted_password_sharing_invitation_data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encrypted_password_sharing_invitation_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_encrypted_password_sharing_invitation_data();
  ::std::string* PROTOBUF_NULLABLE release_encrypted_password_sharing_invitation_data();
  void set_allocated_encrypted_password_sharing_invitation_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_encrypted_password_sharing_invitation_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_encrypted_password_sharing_invitation_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_encrypted_password_sharing_invitation_data();

  public:
  // optional .sync_pb.PasswordSharingInvitationData client_only_unencrypted_data = 4;
  bool has_client_only_unencrypted_data()
      const;
  void clear_client_only_unencrypted_data() ;
  const ::sync_pb::PasswordSharingInvitationData& client_only_unencrypted_data() const;
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE release_client_only_unencrypted_data();
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL mutable_client_only_unencrypted_data();
  void set_allocated_client_only_unencrypted_data(::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client_only_unencrypted_data(::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE value);
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE unsafe_arena_release_client_only_unencrypted_data();

  private:
  const ::sync_pb::PasswordSharingInvitationData& _internal_client_only_unencrypted_data() const;
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL _internal_mutable_client_only_unencrypted_data();

  public:
  // optional uint32 recipient_key_version = 6;
  bool has_recipient_key_version()
      const;
  void clear_recipient_key_version() ;
  ::uint32_t recipient_key_version() const;
  void set_recipient_key_version(::uint32_t value);

  private:
  ::uint32_t _internal_recipient_key_version() const;
  void _internal_set_recipient_key_version(::uint32_t value);

  public:
  // optional uint32 sender_key_version = 7;
  bool has_sender_key_version()
      const;
  void clear_sender_key_version() ;
  ::uint32_t sender_key_version() const;
  void set_sender_key_version(::uint32_t value);

  private:
  ::uint32_t _internal_sender_key_version() const;
  void _internal_set_sender_key_version(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.OutgoingPasswordSharingInvitationSpecifics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          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 OutgoingPasswordSharingInvitationSpecifics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr guid_;
    ::google::protobuf::internal::ArenaStringPtr recipient_user_id_;
    ::google::protobuf::internal::ArenaStringPtr encrypted_password_sharing_invitation_data_;
    ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE client_only_unencrypted_data_;
    ::uint32_t recipient_key_version_;
    ::uint32_t sender_key_version_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline IncomingPasswordSharingInvitationSpecifics(const IncomingPasswordSharingInvitationSpecifics& from) : IncomingPasswordSharingInvitationSpecifics(nullptr, from) {}
  inline IncomingPasswordSharingInvitationSpecifics(IncomingPasswordSharingInvitationSpecifics&& from) noexcept : IncomingPasswordSharingInvitationSpecifics(nullptr, ::std::move(from)) {}
  inline IncomingPasswordSharingInvitationSpecifics& operator=(const IncomingPasswordSharingInvitationSpecifics& from) {
    CopyFrom(from);
    return *this;
  }
  inline IncomingPasswordSharingInvitationSpecifics& operator=(IncomingPasswordSharingInvitationSpecifics&& 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 IncomingPasswordSharingInvitationSpecifics& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IncomingPasswordSharingInvitationSpecifics>(&IncomingPasswordSharingInvitationSpecifics_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(IncomingPasswordSharingInvitationSpecifics& a, IncomingPasswordSharingInvitationSpecifics& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(IncomingPasswordSharingInvitationSpecifics* 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(IncomingPasswordSharingInvitationSpecifics* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  IncomingPasswordSharingInvitationSpecifics* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<IncomingPasswordSharingInvitationSpecifics>(arena);
  }
  void CopyFrom(const IncomingPasswordSharingInvitationSpecifics& from);
  void MergeFrom(const IncomingPasswordSharingInvitationSpecifics& from) { IncomingPasswordSharingInvitationSpecifics::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(IncomingPasswordSharingInvitationSpecifics* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "sync_pb.IncomingPasswordSharingInvitationSpecifics"; }

  explicit IncomingPasswordSharingInvitationSpecifics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IncomingPasswordSharingInvitationSpecifics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IncomingPasswordSharingInvitationSpecifics& from);
  IncomingPasswordSharingInvitationSpecifics(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IncomingPasswordSharingInvitationSpecifics&& from) noexcept
      : IncomingPasswordSharingInvitationSpecifics(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 {
    kGuidFieldNumber = 1,
    kEncryptedPasswordSharingInvitationDataFieldNumber = 3,
    kSenderInfoFieldNumber = 2,
    kClientOnlyUnencryptedDataFieldNumber = 4,
    kRecipientKeyVersionFieldNumber = 6,
  };
  // optional string guid = 1;
  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 bytes encrypted_password_sharing_invitation_data = 3;
  bool has_encrypted_password_sharing_invitation_data()
      const;
  void clear_encrypted_password_sharing_invitation_data() ;
  const ::std::string& encrypted_password_sharing_invitation_data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encrypted_password_sharing_invitation_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_encrypted_password_sharing_invitation_data();
  ::std::string* PROTOBUF_NULLABLE release_encrypted_password_sharing_invitation_data();
  void set_allocated_encrypted_password_sharing_invitation_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_encrypted_password_sharing_invitation_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_encrypted_password_sharing_invitation_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_encrypted_password_sharing_invitation_data();

  public:
  // optional .sync_pb.UserInfo sender_info = 2;
  bool has_sender_info()
      const;
  void clear_sender_info() ;
  const ::sync_pb::UserInfo& sender_info() const;
  ::sync_pb::UserInfo* PROTOBUF_NULLABLE release_sender_info();
  ::sync_pb::UserInfo* PROTOBUF_NONNULL mutable_sender_info();
  void set_allocated_sender_info(::sync_pb::UserInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_sender_info(::sync_pb::UserInfo* PROTOBUF_NULLABLE value);
  ::sync_pb::UserInfo* PROTOBUF_NULLABLE unsafe_arena_release_sender_info();

  private:
  const ::sync_pb::UserInfo& _internal_sender_info() const;
  ::sync_pb::UserInfo* PROTOBUF_NONNULL _internal_mutable_sender_info();

  public:
  // optional .sync_pb.PasswordSharingInvitationData client_only_unencrypted_data = 4;
  bool has_client_only_unencrypted_data()
      const;
  void clear_client_only_unencrypted_data() ;
  const ::sync_pb::PasswordSharingInvitationData& client_only_unencrypted_data() const;
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE release_client_only_unencrypted_data();
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL mutable_client_only_unencrypted_data();
  void set_allocated_client_only_unencrypted_data(::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client_only_unencrypted_data(::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE value);
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE unsafe_arena_release_client_only_unencrypted_data();

  private:
  const ::sync_pb::PasswordSharingInvitationData& _internal_client_only_unencrypted_data() const;
  ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL _internal_mutable_client_only_unencrypted_data();

  public:
  // optional uint32 recipient_key_version = 6;
  bool has_recipient_key_version()
      const;
  void clear_recipient_key_version() ;
  ::uint32_t recipient_key_version() const;
  void set_recipient_key_version(::uint32_t value);

  private:
  ::uint32_t _internal_recipient_key_version() const;
  void _internal_set_recipient_key_version(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:sync_pb.IncomingPasswordSharingInvitationSpecifics)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          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 IncomingPasswordSharingInvitationSpecifics& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr guid_;
    ::google::protobuf::internal::ArenaStringPtr encrypted_password_sharing_invitation_data_;
    ::sync_pb::UserInfo* PROTOBUF_NULLABLE sender_info_;
    ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE client_only_unencrypted_data_;
    ::uint32_t recipient_key_version_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto;
};

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




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


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

// PasswordSharingInvitationData_PasswordGroupElementData

// optional int32 scheme = 2;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_scheme() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_scheme() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.scheme_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::int32_t PasswordSharingInvitationData_PasswordGroupElementData::scheme() const {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.scheme)
  return _internal_scheme();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_scheme(::int32_t value) {
  _internal_set_scheme(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.scheme)
}
inline ::int32_t PasswordSharingInvitationData_PasswordGroupElementData::_internal_scheme() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.scheme_;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_scheme(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.scheme_ = value;
}

// optional string signon_realm = 3;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_signon_realm() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_signon_realm() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.signon_realm_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::signon_realm() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.signon_realm)
  return _internal_signon_realm();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupElementData::set_signon_realm(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.signon_realm_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.signon_realm)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::mutable_signon_realm()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_signon_realm();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.signon_realm)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::_internal_signon_realm() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.signon_realm_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_signon_realm(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.signon_realm_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::_internal_mutable_signon_realm() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.signon_realm_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupElementData::release_signon_realm() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.signon_realm)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.signon_realm_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.signon_realm_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_allocated_signon_realm(::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_.signon_realm_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.signon_realm_.IsDefault()) {
    _impl_.signon_realm_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.signon_realm)
}

// optional string origin = 4;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_origin() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_origin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.origin_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::origin() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.origin)
  return _internal_origin();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupElementData::set_origin(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.origin_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.origin)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::mutable_origin()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_origin();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.origin)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::_internal_origin() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.origin_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_origin(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.origin_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::_internal_mutable_origin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.origin_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupElementData::release_origin() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.origin)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.origin_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.origin_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_allocated_origin(::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_.origin_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.origin_.IsDefault()) {
    _impl_.origin_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.origin)
}

// optional string username_element = 5;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_username_element() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_username_element() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.username_element_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::username_element() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.username_element)
  return _internal_username_element();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupElementData::set_username_element(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.username_element_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.username_element)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::mutable_username_element()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_username_element();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.username_element)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::_internal_username_element() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.username_element_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_username_element(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.username_element_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::_internal_mutable_username_element() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.username_element_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupElementData::release_username_element() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.username_element)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.username_element_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.username_element_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_allocated_username_element(::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_.username_element_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.username_element_.IsDefault()) {
    _impl_.username_element_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.username_element)
}

// optional string password_element = 7;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_password_element() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_password_element() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.password_element_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::password_element() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.password_element)
  return _internal_password_element();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupElementData::set_password_element(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.password_element_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.password_element)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::mutable_password_element()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_password_element();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.password_element)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::_internal_password_element() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.password_element_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_password_element(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.password_element_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::_internal_mutable_password_element() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.password_element_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupElementData::release_password_element() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.password_element)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.password_element_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.password_element_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_allocated_password_element(::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_.password_element_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.password_element_.IsDefault()) {
    _impl_.password_element_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.password_element)
}

// optional string display_name = 8;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_display_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::display_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.display_name)
  return _internal_display_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupElementData::set_display_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.display_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.display_name)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::mutable_display_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_display_name();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.display_name)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::_internal_display_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.display_name_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_display_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::_internal_mutable_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.display_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupElementData::release_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.display_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.display_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.display_name_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_allocated_display_name(::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_.display_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.display_name_.IsDefault()) {
    _impl_.display_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.display_name)
}

// optional string avatar_url = 9;
inline bool PasswordSharingInvitationData_PasswordGroupElementData::has_avatar_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::clear_avatar_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.avatar_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::avatar_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.avatar_url)
  return _internal_avatar_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupElementData::set_avatar_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.avatar_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.avatar_url)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::mutable_avatar_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_avatar_url();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.avatar_url)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupElementData::_internal_avatar_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.avatar_url_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::_internal_set_avatar_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.avatar_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupElementData::_internal_mutable_avatar_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.avatar_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupElementData::release_avatar_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.avatar_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.avatar_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.avatar_url_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupElementData::set_allocated_avatar_url(::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_.avatar_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.avatar_url_.IsDefault()) {
    _impl_.avatar_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupElementData.avatar_url)
}

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

// PasswordSharingInvitationData_PasswordGroupData

// optional string username_value = 1;
inline bool PasswordSharingInvitationData_PasswordGroupData::has_username_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupData::clear_username_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.username_value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupData::username_value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupData.username_value)
  return _internal_username_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupData::set_username_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.username_value_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupData.username_value)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupData::mutable_username_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_username_value();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupData.username_value)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupData::_internal_username_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.username_value_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupData::_internal_set_username_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.username_value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupData::_internal_mutable_username_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.username_value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupData::release_username_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupData.username_value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.username_value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.username_value_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupData::set_allocated_username_value(::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_.username_value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.username_value_.IsDefault()) {
    _impl_.username_value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupData.username_value)
}

// optional string password_value = 2;
inline bool PasswordSharingInvitationData_PasswordGroupData::has_password_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void PasswordSharingInvitationData_PasswordGroupData::clear_password_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.password_value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupData::password_value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupData.password_value)
  return _internal_password_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PasswordSharingInvitationData_PasswordGroupData::set_password_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.password_value_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.PasswordSharingInvitationData.PasswordGroupData.password_value)
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupData::mutable_password_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_password_value();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupData.password_value)
  return _s;
}
inline const ::std::string& PasswordSharingInvitationData_PasswordGroupData::_internal_password_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.password_value_.Get();
}
inline void PasswordSharingInvitationData_PasswordGroupData::_internal_set_password_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.password_value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupData::_internal_mutable_password_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.password_value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PasswordSharingInvitationData_PasswordGroupData::release_password_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.PasswordGroupData.password_value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.password_value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.password_value_.Set("", GetArena());
  }
  return released;
}
inline void PasswordSharingInvitationData_PasswordGroupData::set_allocated_password_value(::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_.password_value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.password_value_.IsDefault()) {
    _impl_.password_value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.PasswordGroupData.password_value)
}

// repeated .sync_pb.PasswordSharingInvitationData.PasswordGroupElementData element_data = 3;
inline int PasswordSharingInvitationData_PasswordGroupData::_internal_element_data_size() const {
  return _internal_element_data().size();
}
inline int PasswordSharingInvitationData_PasswordGroupData::element_data_size() const {
  return _internal_element_data_size();
}
inline void PasswordSharingInvitationData_PasswordGroupData::clear_element_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.element_data_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData& PasswordSharingInvitationData_PasswordGroupData::element_data(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.PasswordGroupData.element_data)
  return _internal_element_data().Get(index);
}
inline ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupData::mutable_element_data(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.PasswordGroupData.element_data)
  return _internal_mutable_element_data()->Mutable(index);
}
inline ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData* PROTOBUF_NONNULL PasswordSharingInvitationData_PasswordGroupData::add_element_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData* _add =
      _internal_mutable_element_data()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:sync_pb.PasswordSharingInvitationData.PasswordGroupData.element_data)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>& PasswordSharingInvitationData_PasswordGroupData::element_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:sync_pb.PasswordSharingInvitationData.PasswordGroupData.element_data)
  return _internal_element_data();
}
inline ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>* PROTOBUF_NONNULL
PasswordSharingInvitationData_PasswordGroupData::mutable_element_data() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:sync_pb.PasswordSharingInvitationData.PasswordGroupData.element_data)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_element_data();
}
inline const ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>&
PasswordSharingInvitationData_PasswordGroupData::_internal_element_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.element_data_;
}
inline ::google::protobuf::RepeatedPtrField<::sync_pb::PasswordSharingInvitationData_PasswordGroupElementData>* PROTOBUF_NONNULL
PasswordSharingInvitationData_PasswordGroupData::_internal_mutable_element_data() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.element_data_;
}

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

// PasswordSharingInvitationData

// optional .sync_pb.PasswordSharingInvitationData.PasswordGroupData password_group_data = 2;
inline bool PasswordSharingInvitationData::has_password_group_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.password_group_data_ != nullptr);
  return value;
}
inline void PasswordSharingInvitationData::clear_password_group_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.password_group_data_ != nullptr) _impl_.password_group_data_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::sync_pb::PasswordSharingInvitationData_PasswordGroupData& PasswordSharingInvitationData::_internal_password_group_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* p = _impl_.password_group_data_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::PasswordSharingInvitationData_PasswordGroupData>(&::sync_pb::PasswordSharingInvitationData_PasswordGroupData_globals_);
}
inline const ::sync_pb::PasswordSharingInvitationData_PasswordGroupData& PasswordSharingInvitationData::password_group_data() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.PasswordSharingInvitationData.password_group_data)
  return _internal_password_group_data();
}
inline void PasswordSharingInvitationData::unsafe_arena_set_allocated_password_group_data(
    ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.password_group_data_);
  }
  _impl_.password_group_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData_PasswordGroupData*>(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.PasswordSharingInvitationData.password_group_data)
}
inline ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE PasswordSharingInvitationData::release_password_group_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* released = _impl_.password_group_data_;
  _impl_.password_group_data_ = 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::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NULLABLE PasswordSharingInvitationData::unsafe_arena_release_password_group_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.PasswordSharingInvitationData.password_group_data)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* temp = _impl_.password_group_data_;
  _impl_.password_group_data_ = nullptr;
  return temp;
}
inline ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL PasswordSharingInvitationData::_internal_mutable_password_group_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.password_group_data_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::PasswordSharingInvitationData_PasswordGroupData>(GetArena());
    _impl_.password_group_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData_PasswordGroupData*>(p);
  }
  return _impl_.password_group_data_;
}
inline ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* PROTOBUF_NONNULL PasswordSharingInvitationData::mutable_password_group_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::sync_pb::PasswordSharingInvitationData_PasswordGroupData* _msg = _internal_mutable_password_group_data();
  // @@protoc_insertion_point(field_mutable:sync_pb.PasswordSharingInvitationData.password_group_data)
  return _msg;
}
inline void PasswordSharingInvitationData::set_allocated_password_group_data(::sync_pb::PasswordSharingInvitationData_PasswordGroupData* 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_.password_group_data_);
  }

  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_.password_group_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData_PasswordGroupData*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.PasswordSharingInvitationData.password_group_data)
}

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

// UserDisplayInfo

// optional string email = 1;
inline bool UserDisplayInfo::has_email() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void UserDisplayInfo::clear_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.email_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& UserDisplayInfo::email() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.UserDisplayInfo.email)
  return _internal_email();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void UserDisplayInfo::set_email(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.email_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.UserDisplayInfo.email)
}
inline ::std::string* PROTOBUF_NONNULL UserDisplayInfo::mutable_email()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_email();
  // @@protoc_insertion_point(field_mutable:sync_pb.UserDisplayInfo.email)
  return _s;
}
inline const ::std::string& UserDisplayInfo::_internal_email() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.email_.Get();
}
inline void UserDisplayInfo::_internal_set_email(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.email_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL UserDisplayInfo::_internal_mutable_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.email_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE UserDisplayInfo::release_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.UserDisplayInfo.email)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.email_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.email_.Set("", GetArena());
  }
  return released;
}
inline void UserDisplayInfo::set_allocated_email(::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_.email_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.email_.IsDefault()) {
    _impl_.email_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.UserDisplayInfo.email)
}

// optional string display_name = 2;
inline bool UserDisplayInfo::has_display_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void UserDisplayInfo::clear_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& UserDisplayInfo::display_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.UserDisplayInfo.display_name)
  return _internal_display_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void UserDisplayInfo::set_display_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.display_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.UserDisplayInfo.display_name)
}
inline ::std::string* PROTOBUF_NONNULL UserDisplayInfo::mutable_display_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_display_name();
  // @@protoc_insertion_point(field_mutable:sync_pb.UserDisplayInfo.display_name)
  return _s;
}
inline const ::std::string& UserDisplayInfo::_internal_display_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.display_name_.Get();
}
inline void UserDisplayInfo::_internal_set_display_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL UserDisplayInfo::_internal_mutable_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.display_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE UserDisplayInfo::release_display_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.UserDisplayInfo.display_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.display_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.display_name_.Set("", GetArena());
  }
  return released;
}
inline void UserDisplayInfo::set_allocated_display_name(::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_.display_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.display_name_.IsDefault()) {
    _impl_.display_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.UserDisplayInfo.display_name)
}

// optional string profile_image_url = 3;
inline bool UserDisplayInfo::has_profile_image_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void UserDisplayInfo::clear_profile_image_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.profile_image_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& UserDisplayInfo::profile_image_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.UserDisplayInfo.profile_image_url)
  return _internal_profile_image_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void UserDisplayInfo::set_profile_image_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.profile_image_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.UserDisplayInfo.profile_image_url)
}
inline ::std::string* PROTOBUF_NONNULL UserDisplayInfo::mutable_profile_image_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_profile_image_url();
  // @@protoc_insertion_point(field_mutable:sync_pb.UserDisplayInfo.profile_image_url)
  return _s;
}
inline const ::std::string& UserDisplayInfo::_internal_profile_image_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.profile_image_url_.Get();
}
inline void UserDisplayInfo::_internal_set_profile_image_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.profile_image_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL UserDisplayInfo::_internal_mutable_profile_image_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.profile_image_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE UserDisplayInfo::release_profile_image_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.UserDisplayInfo.profile_image_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.profile_image_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.profile_image_url_.Set("", GetArena());
  }
  return released;
}
inline void UserDisplayInfo::set_allocated_profile_image_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_.profile_image_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.profile_image_url_.IsDefault()) {
    _impl_.profile_image_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.UserDisplayInfo.profile_image_url)
}

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

// UserInfo

// optional string user_id = 1;
inline bool UserInfo::has_user_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void UserInfo::clear_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& UserInfo::user_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.UserInfo.user_id)
  return _internal_user_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void UserInfo::set_user_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.user_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.UserInfo.user_id)
}
inline ::std::string* PROTOBUF_NONNULL UserInfo::mutable_user_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_user_id();
  // @@protoc_insertion_point(field_mutable:sync_pb.UserInfo.user_id)
  return _s;
}
inline const ::std::string& UserInfo::_internal_user_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.user_id_.Get();
}
inline void UserInfo::_internal_set_user_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL UserInfo::_internal_mutable_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.user_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE UserInfo::release_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.UserInfo.user_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.user_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.user_id_.Set("", GetArena());
  }
  return released;
}
inline void UserInfo::set_allocated_user_id(::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_.user_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.user_id_.IsDefault()) {
    _impl_.user_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.UserInfo.user_id)
}

// optional .sync_pb.UserDisplayInfo user_display_info = 2;
inline bool UserInfo::has_user_display_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.user_display_info_ != nullptr);
  return value;
}
inline void UserInfo::clear_user_display_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.user_display_info_ != nullptr) _impl_.user_display_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::sync_pb::UserDisplayInfo& UserInfo::_internal_user_display_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::UserDisplayInfo* p = _impl_.user_display_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::UserDisplayInfo>(&::sync_pb::UserDisplayInfo_globals_);
}
inline const ::sync_pb::UserDisplayInfo& UserInfo::user_display_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.UserInfo.user_display_info)
  return _internal_user_display_info();
}
inline void UserInfo::unsafe_arena_set_allocated_user_display_info(
    ::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.user_display_info_);
  }
  _impl_.user_display_info_ = reinterpret_cast<::sync_pb::UserDisplayInfo*>(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.UserInfo.user_display_info)
}
inline ::sync_pb::UserDisplayInfo* PROTOBUF_NULLABLE UserInfo::release_user_display_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::sync_pb::UserDisplayInfo* released = _impl_.user_display_info_;
  _impl_.user_display_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::UserDisplayInfo* PROTOBUF_NULLABLE UserInfo::unsafe_arena_release_user_display_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.UserInfo.user_display_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::sync_pb::UserDisplayInfo* temp = _impl_.user_display_info_;
  _impl_.user_display_info_ = nullptr;
  return temp;
}
inline ::sync_pb::UserDisplayInfo* PROTOBUF_NONNULL UserInfo::_internal_mutable_user_display_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.user_display_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::UserDisplayInfo>(GetArena());
    _impl_.user_display_info_ = reinterpret_cast<::sync_pb::UserDisplayInfo*>(p);
  }
  return _impl_.user_display_info_;
}
inline ::sync_pb::UserDisplayInfo* PROTOBUF_NONNULL UserInfo::mutable_user_display_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::sync_pb::UserDisplayInfo* _msg = _internal_mutable_user_display_info();
  // @@protoc_insertion_point(field_mutable:sync_pb.UserInfo.user_display_info)
  return _msg;
}
inline void UserInfo::set_allocated_user_display_info(::sync_pb::UserDisplayInfo* 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_.user_display_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], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.user_display_info_ = reinterpret_cast<::sync_pb::UserDisplayInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.UserInfo.user_display_info)
}

// optional .sync_pb.CrossUserSharingPublicKey cross_user_sharing_public_key = 3;
inline bool UserInfo::has_cross_user_sharing_public_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.cross_user_sharing_public_key_ != nullptr);
  return value;
}
inline const ::sync_pb::CrossUserSharingPublicKey& UserInfo::_internal_cross_user_sharing_public_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::CrossUserSharingPublicKey* p = _impl_.cross_user_sharing_public_key_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::CrossUserSharingPublicKey>(&::sync_pb::CrossUserSharingPublicKey_globals_);
}
inline const ::sync_pb::CrossUserSharingPublicKey& UserInfo::cross_user_sharing_public_key() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.UserInfo.cross_user_sharing_public_key)
  return _internal_cross_user_sharing_public_key();
}
inline void UserInfo::unsafe_arena_set_allocated_cross_user_sharing_public_key(
    ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cross_user_sharing_public_key_);
  }
  _impl_.cross_user_sharing_public_key_ = reinterpret_cast<::sync_pb::CrossUserSharingPublicKey*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.UserInfo.cross_user_sharing_public_key)
}
inline ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NULLABLE UserInfo::release_cross_user_sharing_public_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::sync_pb::CrossUserSharingPublicKey* released = _impl_.cross_user_sharing_public_key_;
  _impl_.cross_user_sharing_public_key_ = 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::CrossUserSharingPublicKey* PROTOBUF_NULLABLE UserInfo::unsafe_arena_release_cross_user_sharing_public_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.UserInfo.cross_user_sharing_public_key)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::sync_pb::CrossUserSharingPublicKey* temp = _impl_.cross_user_sharing_public_key_;
  _impl_.cross_user_sharing_public_key_ = nullptr;
  return temp;
}
inline ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NONNULL UserInfo::_internal_mutable_cross_user_sharing_public_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cross_user_sharing_public_key_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::CrossUserSharingPublicKey>(GetArena());
    _impl_.cross_user_sharing_public_key_ = reinterpret_cast<::sync_pb::CrossUserSharingPublicKey*>(p);
  }
  return _impl_.cross_user_sharing_public_key_;
}
inline ::sync_pb::CrossUserSharingPublicKey* PROTOBUF_NONNULL UserInfo::mutable_cross_user_sharing_public_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::sync_pb::CrossUserSharingPublicKey* _msg = _internal_mutable_cross_user_sharing_public_key();
  // @@protoc_insertion_point(field_mutable:sync_pb.UserInfo.cross_user_sharing_public_key)
  return _msg;
}
inline void UserInfo::set_allocated_cross_user_sharing_public_key(::sync_pb::CrossUserSharingPublicKey* 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_.cross_user_sharing_public_key_);
  }

  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], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.cross_user_sharing_public_key_ = reinterpret_cast<::sync_pb::CrossUserSharingPublicKey*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.UserInfo.cross_user_sharing_public_key)
}

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

// IncomingPasswordSharingInvitationSpecifics

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

// optional .sync_pb.UserInfo sender_info = 2;
inline bool IncomingPasswordSharingInvitationSpecifics::has_sender_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.sender_info_ != nullptr);
  return value;
}
inline void IncomingPasswordSharingInvitationSpecifics::clear_sender_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.sender_info_ != nullptr) _impl_.sender_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::sync_pb::UserInfo& IncomingPasswordSharingInvitationSpecifics::_internal_sender_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::UserInfo* p = _impl_.sender_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::UserInfo>(&::sync_pb::UserInfo_globals_);
}
inline const ::sync_pb::UserInfo& IncomingPasswordSharingInvitationSpecifics::sender_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.IncomingPasswordSharingInvitationSpecifics.sender_info)
  return _internal_sender_info();
}
inline void IncomingPasswordSharingInvitationSpecifics::unsafe_arena_set_allocated_sender_info(
    ::sync_pb::UserInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.sender_info_);
  }
  _impl_.sender_info_ = reinterpret_cast<::sync_pb::UserInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.IncomingPasswordSharingInvitationSpecifics.sender_info)
}
inline ::sync_pb::UserInfo* PROTOBUF_NULLABLE IncomingPasswordSharingInvitationSpecifics::release_sender_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::sync_pb::UserInfo* released = _impl_.sender_info_;
  _impl_.sender_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::UserInfo* PROTOBUF_NULLABLE IncomingPasswordSharingInvitationSpecifics::unsafe_arena_release_sender_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.IncomingPasswordSharingInvitationSpecifics.sender_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::sync_pb::UserInfo* temp = _impl_.sender_info_;
  _impl_.sender_info_ = nullptr;
  return temp;
}
inline ::sync_pb::UserInfo* PROTOBUF_NONNULL IncomingPasswordSharingInvitationSpecifics::_internal_mutable_sender_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.sender_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::UserInfo>(GetArena());
    _impl_.sender_info_ = reinterpret_cast<::sync_pb::UserInfo*>(p);
  }
  return _impl_.sender_info_;
}
inline ::sync_pb::UserInfo* PROTOBUF_NONNULL IncomingPasswordSharingInvitationSpecifics::mutable_sender_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::sync_pb::UserInfo* _msg = _internal_mutable_sender_info();
  // @@protoc_insertion_point(field_mutable:sync_pb.IncomingPasswordSharingInvitationSpecifics.sender_info)
  return _msg;
}
inline void IncomingPasswordSharingInvitationSpecifics::set_allocated_sender_info(::sync_pb::UserInfo* 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_.sender_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], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.sender_info_ = reinterpret_cast<::sync_pb::UserInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.IncomingPasswordSharingInvitationSpecifics.sender_info)
}

// optional bytes encrypted_password_sharing_invitation_data = 3;
inline bool IncomingPasswordSharingInvitationSpecifics::has_encrypted_password_sharing_invitation_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void IncomingPasswordSharingInvitationSpecifics::clear_encrypted_password_sharing_invitation_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_password_sharing_invitation_data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& IncomingPasswordSharingInvitationSpecifics::encrypted_password_sharing_invitation_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.IncomingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
  return _internal_encrypted_password_sharing_invitation_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IncomingPasswordSharingInvitationSpecifics::set_encrypted_password_sharing_invitation_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.encrypted_password_sharing_invitation_data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.IncomingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
}
inline ::std::string* PROTOBUF_NONNULL IncomingPasswordSharingInvitationSpecifics::mutable_encrypted_password_sharing_invitation_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_encrypted_password_sharing_invitation_data();
  // @@protoc_insertion_point(field_mutable:sync_pb.IncomingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
  return _s;
}
inline const ::std::string& IncomingPasswordSharingInvitationSpecifics::_internal_encrypted_password_sharing_invitation_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encrypted_password_sharing_invitation_data_.Get();
}
inline void IncomingPasswordSharingInvitationSpecifics::_internal_set_encrypted_password_sharing_invitation_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_password_sharing_invitation_data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IncomingPasswordSharingInvitationSpecifics::_internal_mutable_encrypted_password_sharing_invitation_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.encrypted_password_sharing_invitation_data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IncomingPasswordSharingInvitationSpecifics::release_encrypted_password_sharing_invitation_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.IncomingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.encrypted_password_sharing_invitation_data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.encrypted_password_sharing_invitation_data_.Set("", GetArena());
  }
  return released;
}
inline void IncomingPasswordSharingInvitationSpecifics::set_allocated_encrypted_password_sharing_invitation_data(::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_.encrypted_password_sharing_invitation_data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.encrypted_password_sharing_invitation_data_.IsDefault()) {
    _impl_.encrypted_password_sharing_invitation_data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.IncomingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
}

// optional .sync_pb.PasswordSharingInvitationData client_only_unencrypted_data = 4;
inline bool IncomingPasswordSharingInvitationSpecifics::has_client_only_unencrypted_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.client_only_unencrypted_data_ != nullptr);
  return value;
}
inline void IncomingPasswordSharingInvitationSpecifics::clear_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_only_unencrypted_data_ != nullptr) _impl_.client_only_unencrypted_data_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::sync_pb::PasswordSharingInvitationData& IncomingPasswordSharingInvitationSpecifics::_internal_client_only_unencrypted_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::PasswordSharingInvitationData* p = _impl_.client_only_unencrypted_data_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::PasswordSharingInvitationData>(&::sync_pb::PasswordSharingInvitationData_globals_);
}
inline const ::sync_pb::PasswordSharingInvitationData& IncomingPasswordSharingInvitationSpecifics::client_only_unencrypted_data() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.IncomingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
  return _internal_client_only_unencrypted_data();
}
inline void IncomingPasswordSharingInvitationSpecifics::unsafe_arena_set_allocated_client_only_unencrypted_data(
    ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_only_unencrypted_data_);
  }
  _impl_.client_only_unencrypted_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.IncomingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
}
inline ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE IncomingPasswordSharingInvitationSpecifics::release_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::sync_pb::PasswordSharingInvitationData* released = _impl_.client_only_unencrypted_data_;
  _impl_.client_only_unencrypted_data_ = 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::PasswordSharingInvitationData* PROTOBUF_NULLABLE IncomingPasswordSharingInvitationSpecifics::unsafe_arena_release_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.IncomingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::sync_pb::PasswordSharingInvitationData* temp = _impl_.client_only_unencrypted_data_;
  _impl_.client_only_unencrypted_data_ = nullptr;
  return temp;
}
inline ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL IncomingPasswordSharingInvitationSpecifics::_internal_mutable_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_only_unencrypted_data_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::PasswordSharingInvitationData>(GetArena());
    _impl_.client_only_unencrypted_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData*>(p);
  }
  return _impl_.client_only_unencrypted_data_;
}
inline ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL IncomingPasswordSharingInvitationSpecifics::mutable_client_only_unencrypted_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::sync_pb::PasswordSharingInvitationData* _msg = _internal_mutable_client_only_unencrypted_data();
  // @@protoc_insertion_point(field_mutable:sync_pb.IncomingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
  return _msg;
}
inline void IncomingPasswordSharingInvitationSpecifics::set_allocated_client_only_unencrypted_data(::sync_pb::PasswordSharingInvitationData* 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_.client_only_unencrypted_data_);
  }

  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], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.client_only_unencrypted_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.IncomingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
}

// optional uint32 recipient_key_version = 6;
inline bool IncomingPasswordSharingInvitationSpecifics::has_recipient_key_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void IncomingPasswordSharingInvitationSpecifics::clear_recipient_key_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recipient_key_version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t IncomingPasswordSharingInvitationSpecifics::recipient_key_version() const {
  // @@protoc_insertion_point(field_get:sync_pb.IncomingPasswordSharingInvitationSpecifics.recipient_key_version)
  return _internal_recipient_key_version();
}
inline void IncomingPasswordSharingInvitationSpecifics::set_recipient_key_version(::uint32_t value) {
  _internal_set_recipient_key_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:sync_pb.IncomingPasswordSharingInvitationSpecifics.recipient_key_version)
}
inline ::uint32_t IncomingPasswordSharingInvitationSpecifics::_internal_recipient_key_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.recipient_key_version_;
}
inline void IncomingPasswordSharingInvitationSpecifics::_internal_set_recipient_key_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recipient_key_version_ = value;
}

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

// OutgoingPasswordSharingInvitationSpecifics

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

// optional string recipient_user_id = 2;
inline bool OutgoingPasswordSharingInvitationSpecifics::has_recipient_user_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void OutgoingPasswordSharingInvitationSpecifics::clear_recipient_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recipient_user_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& OutgoingPasswordSharingInvitationSpecifics::recipient_user_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_user_id)
  return _internal_recipient_user_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void OutgoingPasswordSharingInvitationSpecifics::set_recipient_user_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.recipient_user_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_user_id)
}
inline ::std::string* PROTOBUF_NONNULL OutgoingPasswordSharingInvitationSpecifics::mutable_recipient_user_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_recipient_user_id();
  // @@protoc_insertion_point(field_mutable:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_user_id)
  return _s;
}
inline const ::std::string& OutgoingPasswordSharingInvitationSpecifics::_internal_recipient_user_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.recipient_user_id_.Get();
}
inline void OutgoingPasswordSharingInvitationSpecifics::_internal_set_recipient_user_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recipient_user_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL OutgoingPasswordSharingInvitationSpecifics::_internal_mutable_recipient_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.recipient_user_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE OutgoingPasswordSharingInvitationSpecifics::release_recipient_user_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_user_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.recipient_user_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.recipient_user_id_.Set("", GetArena());
  }
  return released;
}
inline void OutgoingPasswordSharingInvitationSpecifics::set_allocated_recipient_user_id(::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_.recipient_user_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.recipient_user_id_.IsDefault()) {
    _impl_.recipient_user_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_user_id)
}

// optional bytes encrypted_password_sharing_invitation_data = 3;
inline bool OutgoingPasswordSharingInvitationSpecifics::has_encrypted_password_sharing_invitation_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void OutgoingPasswordSharingInvitationSpecifics::clear_encrypted_password_sharing_invitation_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_password_sharing_invitation_data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& OutgoingPasswordSharingInvitationSpecifics::encrypted_password_sharing_invitation_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.OutgoingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
  return _internal_encrypted_password_sharing_invitation_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void OutgoingPasswordSharingInvitationSpecifics::set_encrypted_password_sharing_invitation_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.encrypted_password_sharing_invitation_data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:sync_pb.OutgoingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
}
inline ::std::string* PROTOBUF_NONNULL OutgoingPasswordSharingInvitationSpecifics::mutable_encrypted_password_sharing_invitation_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_encrypted_password_sharing_invitation_data();
  // @@protoc_insertion_point(field_mutable:sync_pb.OutgoingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
  return _s;
}
inline const ::std::string& OutgoingPasswordSharingInvitationSpecifics::_internal_encrypted_password_sharing_invitation_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encrypted_password_sharing_invitation_data_.Get();
}
inline void OutgoingPasswordSharingInvitationSpecifics::_internal_set_encrypted_password_sharing_invitation_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encrypted_password_sharing_invitation_data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL OutgoingPasswordSharingInvitationSpecifics::_internal_mutable_encrypted_password_sharing_invitation_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.encrypted_password_sharing_invitation_data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE OutgoingPasswordSharingInvitationSpecifics::release_encrypted_password_sharing_invitation_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.OutgoingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.encrypted_password_sharing_invitation_data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.encrypted_password_sharing_invitation_data_.Set("", GetArena());
  }
  return released;
}
inline void OutgoingPasswordSharingInvitationSpecifics::set_allocated_encrypted_password_sharing_invitation_data(::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_.encrypted_password_sharing_invitation_data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.encrypted_password_sharing_invitation_data_.IsDefault()) {
    _impl_.encrypted_password_sharing_invitation_data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:sync_pb.OutgoingPasswordSharingInvitationSpecifics.encrypted_password_sharing_invitation_data)
}

// optional .sync_pb.PasswordSharingInvitationData client_only_unencrypted_data = 4;
inline bool OutgoingPasswordSharingInvitationSpecifics::has_client_only_unencrypted_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.client_only_unencrypted_data_ != nullptr);
  return value;
}
inline void OutgoingPasswordSharingInvitationSpecifics::clear_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_only_unencrypted_data_ != nullptr) _impl_.client_only_unencrypted_data_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::sync_pb::PasswordSharingInvitationData& OutgoingPasswordSharingInvitationSpecifics::_internal_client_only_unencrypted_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::sync_pb::PasswordSharingInvitationData* p = _impl_.client_only_unencrypted_data_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::sync_pb::PasswordSharingInvitationData>(&::sync_pb::PasswordSharingInvitationData_globals_);
}
inline const ::sync_pb::PasswordSharingInvitationData& OutgoingPasswordSharingInvitationSpecifics::client_only_unencrypted_data() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:sync_pb.OutgoingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
  return _internal_client_only_unencrypted_data();
}
inline void OutgoingPasswordSharingInvitationSpecifics::unsafe_arena_set_allocated_client_only_unencrypted_data(
    ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_only_unencrypted_data_);
  }
  _impl_.client_only_unencrypted_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:sync_pb.OutgoingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
}
inline ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NULLABLE OutgoingPasswordSharingInvitationSpecifics::release_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::sync_pb::PasswordSharingInvitationData* released = _impl_.client_only_unencrypted_data_;
  _impl_.client_only_unencrypted_data_ = 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::PasswordSharingInvitationData* PROTOBUF_NULLABLE OutgoingPasswordSharingInvitationSpecifics::unsafe_arena_release_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:sync_pb.OutgoingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::sync_pb::PasswordSharingInvitationData* temp = _impl_.client_only_unencrypted_data_;
  _impl_.client_only_unencrypted_data_ = nullptr;
  return temp;
}
inline ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL OutgoingPasswordSharingInvitationSpecifics::_internal_mutable_client_only_unencrypted_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_only_unencrypted_data_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::sync_pb::PasswordSharingInvitationData>(GetArena());
    _impl_.client_only_unencrypted_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData*>(p);
  }
  return _impl_.client_only_unencrypted_data_;
}
inline ::sync_pb::PasswordSharingInvitationData* PROTOBUF_NONNULL OutgoingPasswordSharingInvitationSpecifics::mutable_client_only_unencrypted_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::sync_pb::PasswordSharingInvitationData* _msg = _internal_mutable_client_only_unencrypted_data();
  // @@protoc_insertion_point(field_mutable:sync_pb.OutgoingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
  return _msg;
}
inline void OutgoingPasswordSharingInvitationSpecifics::set_allocated_client_only_unencrypted_data(::sync_pb::PasswordSharingInvitationData* 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_.client_only_unencrypted_data_);
  }

  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], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.client_only_unencrypted_data_ = reinterpret_cast<::sync_pb::PasswordSharingInvitationData*>(value);
  // @@protoc_insertion_point(field_set_allocated:sync_pb.OutgoingPasswordSharingInvitationSpecifics.client_only_unencrypted_data)
}

// optional uint32 recipient_key_version = 6;
inline bool OutgoingPasswordSharingInvitationSpecifics::has_recipient_key_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void OutgoingPasswordSharingInvitationSpecifics::clear_recipient_key_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recipient_key_version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t OutgoingPasswordSharingInvitationSpecifics::recipient_key_version() const {
  // @@protoc_insertion_point(field_get:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_key_version)
  return _internal_recipient_key_version();
}
inline void OutgoingPasswordSharingInvitationSpecifics::set_recipient_key_version(::uint32_t value) {
  _internal_set_recipient_key_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:sync_pb.OutgoingPasswordSharingInvitationSpecifics.recipient_key_version)
}
inline ::uint32_t OutgoingPasswordSharingInvitationSpecifics::_internal_recipient_key_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.recipient_key_version_;
}
inline void OutgoingPasswordSharingInvitationSpecifics::_internal_set_recipient_key_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.recipient_key_version_ = value;
}

// optional uint32 sender_key_version = 7;
inline bool OutgoingPasswordSharingInvitationSpecifics::has_sender_key_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void OutgoingPasswordSharingInvitationSpecifics::clear_sender_key_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sender_key_version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t OutgoingPasswordSharingInvitationSpecifics::sender_key_version() const {
  // @@protoc_insertion_point(field_get:sync_pb.OutgoingPasswordSharingInvitationSpecifics.sender_key_version)
  return _internal_sender_key_version();
}
inline void OutgoingPasswordSharingInvitationSpecifics::set_sender_key_version(::uint32_t value) {
  _internal_set_sender_key_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:sync_pb.OutgoingPasswordSharingInvitationSpecifics.sender_key_version)
}
inline ::uint32_t OutgoingPasswordSharingInvitationSpecifics::_internal_sender_key_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sender_key_version_;
}
inline void OutgoingPasswordSharingInvitationSpecifics::_internal_set_sender_key_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sender_key_version_ = value;
}

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

// OutgoingPasswordSharingInvitationCommitError

// optional .sync_pb.OutgoingPasswordSharingInvitationCommitError.ErrorCode error_code = 1;
inline bool OutgoingPasswordSharingInvitationCommitError::has_error_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void OutgoingPasswordSharingInvitationCommitError::clear_error_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.error_code_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode OutgoingPasswordSharingInvitationCommitError::error_code() const {
  // @@protoc_insertion_point(field_get:sync_pb.OutgoingPasswordSharingInvitationCommitError.error_code)
  return _internal_error_code();
}
inline void OutgoingPasswordSharingInvitationCommitError::set_error_code(::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode value) {
  _internal_set_error_code(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:sync_pb.OutgoingPasswordSharingInvitationCommitError.error_code)
}
inline ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode OutgoingPasswordSharingInvitationCommitError::_internal_error_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode>(_impl_.error_code_);
}
inline void OutgoingPasswordSharingInvitationCommitError::_internal_set_error_code(::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode_internal_data_));
                                          _impl_.error_code_ = value;
}

#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::OutgoingPasswordSharingInvitationCommitError_ErrorCode> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode_Parse;
  static constexpr auto kNameFunc = ::sync_pb::OutgoingPasswordSharingInvitationCommitError_ErrorCode_Name<int>;
};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

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

#endif  // components_2fsync_2fprotocol_2fpassword_5fsharing_5finvitation_5fspecifics_2eproto_2epb_2eh
