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

#ifndef webapk_2eproto_2epb_2eh
#define webapk_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"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_webapk_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_webapk_2eproto {
  static const ::uint32_t offsets[];
};
namespace webapk {
enum Image_Purpose : int;
extern const uint32_t Image_Purpose_internal_data_[];
enum Image_Usage : int;
extern const uint32_t Image_Usage_internal_data_[];
enum WebApk_UpdateReason : int;
extern const uint32_t WebApk_UpdateReason_internal_data_[];
class Image;
struct ImageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ImageGlobalsTypeInternal Image_globals_;
extern const ::google::protobuf::internal::ClassDataLite Image_class_data_;
#else
extern const ImageGlobalsTypeInternal Image_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ShareTarget;
struct ShareTargetGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ShareTargetGlobalsTypeInternal ShareTarget_globals_;
extern const ::google::protobuf::internal::ClassDataLite ShareTarget_class_data_;
#else
extern const ShareTargetGlobalsTypeInternal ShareTarget_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ShareTargetParams;
struct ShareTargetParamsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ShareTargetParamsGlobalsTypeInternal ShareTargetParams_globals_;
extern const ::google::protobuf::internal::ClassDataLite ShareTargetParams_class_data_;
#else
extern const ShareTargetParamsGlobalsTypeInternal ShareTargetParams_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ShareTargetParamsFile;
struct ShareTargetParamsFileGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ShareTargetParamsFileGlobalsTypeInternal ShareTargetParamsFile_globals_;
extern const ::google::protobuf::internal::ClassDataLite ShareTargetParamsFile_class_data_;
#else
extern const ShareTargetParamsFileGlobalsTypeInternal ShareTargetParamsFile_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ShortcutItem;
struct ShortcutItemGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ShortcutItemGlobalsTypeInternal ShortcutItem_globals_;
extern const ::google::protobuf::internal::ClassDataLite ShortcutItem_class_data_;
#else
extern const ShortcutItemGlobalsTypeInternal ShortcutItem_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WebApk;
struct WebApkGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WebApkGlobalsTypeInternal WebApk_globals_;
extern const ::google::protobuf::internal::ClassDataLite WebApk_class_data_;
#else
extern const WebApkGlobalsTypeInternal WebApk_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WebApkResponse;
struct WebApkResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WebApkResponseGlobalsTypeInternal WebApkResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite WebApkResponse_class_data_;
#else
extern const WebApkResponseGlobalsTypeInternal WebApkResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class WebAppManifest;
struct WebAppManifestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern WebAppManifestGlobalsTypeInternal WebAppManifest_globals_;
extern const ::google::protobuf::internal::ClassDataLite WebAppManifest_class_data_;
#else
extern const WebAppManifestGlobalsTypeInternal WebAppManifest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace webapk
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::webapk::Image_Purpose_internal_data_>
    internal::EnumTraitsImpl::value<::webapk::Image_Purpose>;
template <>
internal::EnumTraitsT<::webapk::Image_Usage_internal_data_>
    internal::EnumTraitsImpl::value<::webapk::Image_Usage>;
template <>
internal::EnumTraitsT<::webapk::WebApk_UpdateReason_internal_data_>
    internal::EnumTraitsImpl::value<::webapk::WebApk_UpdateReason>;
}  // namespace protobuf
}  // namespace google

namespace webapk {
enum WebApk_UpdateReason : int {
  WebApk_UpdateReason_NONE = 1,
  WebApk_UpdateReason_OLD_SHELL_APK = 2,
  WebApk_UpdateReason_PRIMARY_ICON_HASH_DIFFERS = 3,
  WebApk_UpdateReason_SCOPE_DIFFERS = 5,
  WebApk_UpdateReason_START_URL_DIFFERS = 6,
  WebApk_UpdateReason_SHORT_NAME_DIFFERS = 7,
  WebApk_UpdateReason_NAME_DIFFERS = 8,
  WebApk_UpdateReason_BACKGROUND_COLOR_DIFFERS = 9,
  WebApk_UpdateReason_THEME_COLOR_DIFFERS = 10,
  WebApk_UpdateReason_ORIENTATION_DIFFERS = 11,
  WebApk_UpdateReason_DISPLAY_MODE_DIFFERS = 12,
  WebApk_UpdateReason_WEB_SHARE_TARGET_DIFFERS = 13,
  WebApk_UpdateReason_MANUALLY_TRIGGERED = 14,
  WebApk_UpdateReason_PRIMARY_ICON_MASKABLE_DIFFERS = 15,
  WebApk_UpdateReason_SHORTCUTS_DIFFER = 16,
  WebApk_UpdateReason_SPLASH_ICON_HASH_DIFFERS = 17,
  WebApk_UpdateReason_DARK_BACKGROUND_COLOR_DIFFERS = 18,
  WebApk_UpdateReason_DARK_THEME_COLOR_DIFFERS = 19,
  WebApk_UpdateReason_PRIMARY_ICON_CHANGE_BELOW_THRESHOLD = 20,
};

extern const uint32_t WebApk_UpdateReason_internal_data_[];
inline constexpr WebApk_UpdateReason WebApk_UpdateReason_UpdateReason_MIN =
    static_cast<WebApk_UpdateReason>(1);
inline constexpr WebApk_UpdateReason WebApk_UpdateReason_UpdateReason_MAX =
    static_cast<WebApk_UpdateReason>(20);
inline bool WebApk_UpdateReason_IsValid(int value) {
  return 0 <= value && value <= 20 && ((2097134u >> value) & 1) != 0;
}
inline constexpr int WebApk_UpdateReason_UpdateReason_ARRAYSIZE = 20 + 1;
const ::std::string& WebApk_UpdateReason_Name(WebApk_UpdateReason value);
template <typename T>
const ::std::string& WebApk_UpdateReason_Name(T value) {
  static_assert(::std::is_same<T, WebApk_UpdateReason>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to UpdateReason_Name().");
  return WebApk_UpdateReason_Name(static_cast<WebApk_UpdateReason>(value));
}
bool WebApk_UpdateReason_Parse(
    ::absl::string_view name, WebApk_UpdateReason* PROTOBUF_NONNULL value);
enum Image_Usage : int {
  Image_Usage_PRIMARY_ICON = 1,
  Image_Usage_SPLASH_ICON = 3,
  Image_Usage_SHORTCUT_ICON = 4,
};

extern const uint32_t Image_Usage_internal_data_[];
inline constexpr Image_Usage Image_Usage_Usage_MIN =
    static_cast<Image_Usage>(1);
inline constexpr Image_Usage Image_Usage_Usage_MAX =
    static_cast<Image_Usage>(4);
inline bool Image_Usage_IsValid(int value) {
  return 0 <= value && value <= 4 && ((26u >> value) & 1) != 0;
}
inline constexpr int Image_Usage_Usage_ARRAYSIZE = 4 + 1;
const ::std::string& Image_Usage_Name(Image_Usage value);
template <typename T>
const ::std::string& Image_Usage_Name(T value) {
  static_assert(::std::is_same<T, Image_Usage>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Usage_Name().");
  return Image_Usage_Name(static_cast<Image_Usage>(value));
}
bool Image_Usage_Parse(
    ::absl::string_view name, Image_Usage* PROTOBUF_NONNULL value);
enum Image_Purpose : int {
  Image_Purpose_PURPOSE_UNDEFINED = 0,
  Image_Purpose_ANY = 1,
  Image_Purpose_MASKABLE = 3,
};

extern const uint32_t Image_Purpose_internal_data_[];
inline constexpr Image_Purpose Image_Purpose_Purpose_MIN =
    static_cast<Image_Purpose>(0);
inline constexpr Image_Purpose Image_Purpose_Purpose_MAX =
    static_cast<Image_Purpose>(3);
inline bool Image_Purpose_IsValid(int value) {
  return 0 <= value && value <= 3 && ((11u >> value) & 1) != 0;
}
inline constexpr int Image_Purpose_Purpose_ARRAYSIZE = 3 + 1;
const ::std::string& Image_Purpose_Name(Image_Purpose value);
template <typename T>
const ::std::string& Image_Purpose_Name(T value) {
  static_assert(::std::is_same<T, Image_Purpose>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Purpose_Name().");
  return Image_Purpose_Name(static_cast<Image_Purpose>(value));
}
bool Image_Purpose_Parse(
    ::absl::string_view name, Image_Purpose* PROTOBUF_NONNULL value);
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

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


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

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

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

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

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

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

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

  explicit WebApkResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WebApkResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WebApkResponse& from);
  WebApkResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WebApkResponse&& from) noexcept
      : WebApkResponse(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 {
    kPackageNameFieldNumber = 1,
    kVersionFieldNumber = 2,
    kTokenFieldNumber = 6,
    kRelaxUpdatesFieldNumber = 8,
  };
  // optional string package_name = 1;
  bool has_package_name()
      const;
  void clear_package_name() ;
  const ::std::string& package_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_package_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_package_name();
  ::std::string* PROTOBUF_NULLABLE release_package_name();
  void set_allocated_package_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_package_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_package_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_package_name();

  public:
  // optional string version = 2;
  bool has_version()
      const;
  void clear_version() ;
  const ::std::string& version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_version();
  ::std::string* PROTOBUF_NULLABLE release_version();
  void set_allocated_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_version();

  public:
  // optional string token = 6;
  bool has_token()
      const;
  void clear_token() ;
  const ::std::string& token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_token();
  ::std::string* PROTOBUF_NULLABLE release_token();
  void set_allocated_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_token();

  public:
  // optional bool relax_updates = 8;
  bool has_relax_updates()
      const;
  void clear_relax_updates() ;
  bool relax_updates() const;
  void set_relax_updates(bool value);

  private:
  bool _internal_relax_updates() const;
  void _internal_set_relax_updates(bool value);

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

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

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

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

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

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

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

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

  explicit ShareTargetParamsFile(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ShareTargetParamsFile(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ShareTargetParamsFile& from);
  ShareTargetParamsFile(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ShareTargetParamsFile&& from) noexcept
      : ShareTargetParamsFile(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 {
    kAcceptFieldNumber = 2,
    kNameFieldNumber = 1,
  };
  // repeated string accept = 2;
  int accept_size()
      const;
  private:
  int _internal_accept_size() const;

  public:
  void clear_accept() ;
  const ::std::string& accept(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_accept(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_accept(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_accept();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_accept(Arg_&& value, Args_... args);
  const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      accept() const;
  ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_accept();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_accept() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_accept();

  public:
  // optional string name = 1;
  bool has_name()
      const;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // @@protoc_insertion_point(class_scope:webapk.ShareTargetParamsFile)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          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 ShareTargetParamsFile& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> accept_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  explicit Image(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Image(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Image& from);
  Image(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Image&& from) noexcept
      : Image(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 Usage = Image_Usage;
  static constexpr Usage PRIMARY_ICON = Image_Usage_PRIMARY_ICON;
  static constexpr Usage SPLASH_ICON = Image_Usage_SPLASH_ICON;
  static constexpr Usage SHORTCUT_ICON = Image_Usage_SHORTCUT_ICON;
  static inline bool Usage_IsValid(int value) {
    return Image_Usage_IsValid(value);
  }
  static constexpr Usage Usage_MIN = Image_Usage_Usage_MIN;
  static constexpr Usage Usage_MAX = Image_Usage_Usage_MAX;
  static constexpr int Usage_ARRAYSIZE = Image_Usage_Usage_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& Usage_Name(T value) {
    return Image_Usage_Name(value);
  }
  static inline bool Usage_Parse(
      ::absl::string_view name, Usage* PROTOBUF_NONNULL value) {
    return Image_Usage_Parse(name, value);
  }
  using Purpose = Image_Purpose;
  static constexpr Purpose PURPOSE_UNDEFINED = Image_Purpose_PURPOSE_UNDEFINED;
  static constexpr Purpose ANY = Image_Purpose_ANY;
  static constexpr Purpose MASKABLE = Image_Purpose_MASKABLE;
  static inline bool Purpose_IsValid(int value) {
    return Image_Purpose_IsValid(value);
  }
  static constexpr Purpose Purpose_MIN = Image_Purpose_Purpose_MIN;
  static constexpr Purpose Purpose_MAX = Image_Purpose_Purpose_MAX;
  static constexpr int Purpose_ARRAYSIZE = Image_Purpose_Purpose_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& Purpose_Name(T value) {
    return Image_Purpose_Name(value);
  }
  static inline bool Purpose_Parse(
      ::absl::string_view name, Purpose* PROTOBUF_NONNULL value) {
    return Image_Purpose_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kPurposesFieldNumber = 7,
    kUsagesFieldNumber = 8,
    kSrcFieldNumber = 1,
    kHashFieldNumber = 5,
    kImageDataFieldNumber = 6,
  };
  // repeated .webapk.Image.Purpose purposes = 7;
  int purposes_size()
      const;
  private:
  int _internal_purposes_size() const;

  public:
  void clear_purposes() ;
  public:
  ::webapk::Image_Purpose purposes(int index) const;
  void set_purposes(int index, ::webapk::Image_Purpose value);
  void add_purposes(::webapk::Image_Purpose value);
  const ::google::protobuf::RepeatedField<int>& purposes()
      const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_purposes();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_purposes() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_purposes();

  public:
  // repeated .webapk.Image.Usage usages = 8;
  int usages_size()
      const;
  private:
  int _internal_usages_size() const;

  public:
  void clear_usages() ;
  public:
  ::webapk::Image_Usage usages(int index) const;
  void set_usages(int index, ::webapk::Image_Usage value);
  void add_usages(::webapk::Image_Usage value);
  const ::google::protobuf::RepeatedField<int>& usages()
      const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_usages();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_usages() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_usages();

  public:
  // optional string src = 1;
  bool has_src()
      const;
  void clear_src() ;
  const ::std::string& src() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_src(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_src();
  ::std::string* PROTOBUF_NULLABLE release_src();
  void set_allocated_src(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_src() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_src(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_src();

  public:
  // optional string hash = 5;
  bool has_hash()
      const;
  void clear_hash() ;
  const ::std::string& hash() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_hash(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_hash();
  ::std::string* PROTOBUF_NULLABLE release_hash();
  void set_allocated_hash(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_hash() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_hash(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_hash();

  public:
  // optional bytes image_data = 6;
  bool has_image_data()
      const;
  void clear_image_data() ;
  const ::std::string& image_data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_image_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_image_data();
  ::std::string* PROTOBUF_NULLABLE release_image_data();
  void set_allocated_image_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_image_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_image_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_image_data();

  public:
  // @@protoc_insertion_point(class_scope:webapk.Image)
 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 Image& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> purposes_;
    ::google::protobuf::RepeatedField<int> usages_;
    ::google::protobuf::internal::ArenaStringPtr src_;
    ::google::protobuf::internal::ArenaStringPtr hash_;
    ::google::protobuf::internal::ArenaStringPtr image_data_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  explicit ShortcutItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ShortcutItem(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ShortcutItem& from);
  ShortcutItem(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ShortcutItem&& from) noexcept
      : ShortcutItem(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 {
    kIconsFieldNumber = 4,
    kNameFieldNumber = 1,
    kShortNameFieldNumber = 2,
    kUrlFieldNumber = 3,
  };
  // repeated .webapk.Image icons = 4;
  int icons_size()
      const;
  private:
  int _internal_icons_size() const;

  public:
  void clear_icons() ;
  const ::webapk::Image& icons(int index) const;
  ::webapk::Image* PROTOBUF_NONNULL mutable_icons(int index);
  ::webapk::Image* PROTOBUF_NONNULL add_icons();
  const ::google::protobuf::RepeatedPtrField<::webapk::Image>&
  icons() const;
  ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL
  mutable_icons();

  private:
  const ::google::protobuf::RepeatedPtrField<::webapk::Image>& _internal_icons() const;
  ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL _internal_mutable_icons();

  public:
  // optional string name = 1;
  bool has_name()
      const;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // optional string short_name = 2;
  bool has_short_name()
      const;
  void clear_short_name() ;
  const ::std::string& short_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_short_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_short_name();
  ::std::string* PROTOBUF_NULLABLE release_short_name();
  void set_allocated_short_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_short_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_short_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_short_name();

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

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

  public:
  // @@protoc_insertion_point(class_scope:webapk.ShortcutItem)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          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 ShortcutItem& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::webapk::Image > icons_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr short_name_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  explicit ShareTargetParams(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ShareTargetParams(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ShareTargetParams& from);
  ShareTargetParams(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ShareTargetParams&& from) noexcept
      : ShareTargetParams(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 {
    kFilesFieldNumber = 4,
    kTitleFieldNumber = 1,
    kTextFieldNumber = 2,
    kUrlFieldNumber = 3,
  };
  // repeated .webapk.ShareTargetParamsFile files = 4;
  int files_size()
      const;
  private:
  int _internal_files_size() const;

  public:
  void clear_files() ;
  const ::webapk::ShareTargetParamsFile& files(int index) const;
  ::webapk::ShareTargetParamsFile* PROTOBUF_NONNULL mutable_files(int index);
  ::webapk::ShareTargetParamsFile* PROTOBUF_NONNULL add_files();
  const ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>&
  files() const;
  ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>* PROTOBUF_NONNULL
  mutable_files();

  private:
  const ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>& _internal_files() const;
  ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>* PROTOBUF_NONNULL _internal_mutable_files();

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

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

  public:
  // optional string text = 2;
  bool has_text()
      const;
  void clear_text() ;
  const ::std::string& text() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_text(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_text();
  ::std::string* PROTOBUF_NULLABLE release_text();
  void set_allocated_text(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_text() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_text(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_text();

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

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

  public:
  // @@protoc_insertion_point(class_scope:webapk.ShareTargetParams)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          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 ShareTargetParams& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::webapk::ShareTargetParamsFile > files_;
    ::google::protobuf::internal::ArenaStringPtr title_;
    ::google::protobuf::internal::ArenaStringPtr text_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  explicit ShareTarget(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ShareTarget(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ShareTarget& from);
  ShareTarget(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ShareTarget&& from) noexcept
      : ShareTarget(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 {
    kActionFieldNumber = 2,
    kMethodFieldNumber = 4,
    kEnctypeFieldNumber = 5,
    kParamsFieldNumber = 3,
  };
  // optional string action = 2;
  bool has_action()
      const;
  void clear_action() ;
  const ::std::string& action() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_action(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_action();
  ::std::string* PROTOBUF_NULLABLE release_action();
  void set_allocated_action(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_action() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_action(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_action();

  public:
  // optional string method = 4;
  bool has_method()
      const;
  void clear_method() ;
  const ::std::string& method() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_method(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_method();
  ::std::string* PROTOBUF_NULLABLE release_method();
  void set_allocated_method(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_method() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_method(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_method();

  public:
  // optional string enctype = 5;
  bool has_enctype()
      const;
  void clear_enctype() ;
  const ::std::string& enctype() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_enctype(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_enctype();
  ::std::string* PROTOBUF_NULLABLE release_enctype();
  void set_allocated_enctype(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_enctype() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_enctype(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_enctype();

  public:
  // optional .webapk.ShareTargetParams params = 3;
  bool has_params()
      const;
  void clear_params() ;
  const ::webapk::ShareTargetParams& params() const;
  ::webapk::ShareTargetParams* PROTOBUF_NULLABLE release_params();
  ::webapk::ShareTargetParams* PROTOBUF_NONNULL mutable_params();
  void set_allocated_params(::webapk::ShareTargetParams* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_params(::webapk::ShareTargetParams* PROTOBUF_NULLABLE value);
  ::webapk::ShareTargetParams* PROTOBUF_NULLABLE unsafe_arena_release_params();

  private:
  const ::webapk::ShareTargetParams& _internal_params() const;
  ::webapk::ShareTargetParams* PROTOBUF_NONNULL _internal_mutable_params();

  public:
  // @@protoc_insertion_point(class_scope:webapk.ShareTarget)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          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 ShareTarget& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr action_;
    ::google::protobuf::internal::ArenaStringPtr method_;
    ::google::protobuf::internal::ArenaStringPtr enctype_;
    ::webapk::ShareTargetParams* PROTOBUF_NULLABLE params_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  explicit WebAppManifest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WebAppManifest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WebAppManifest& from);
  WebAppManifest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WebAppManifest&& from) noexcept
      : WebAppManifest(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 {
    kScopesFieldNumber = 5,
    kIconsFieldNumber = 6,
    kNameFieldNumber = 1,
    kShortNameFieldNumber = 2,
    kStartUrlFieldNumber = 4,
    kOrientationFieldNumber = 9,
    kDisplayModeFieldNumber = 10,
    kThemeColorFieldNumber = 11,
    kBackgroundColorFieldNumber = 12,
    kIdFieldNumber = 19,
    kDarkThemeColorFieldNumber = 20,
    kDarkBackgroundColorFieldNumber = 21,
    kHasCustomNameFieldNumber = 22,
    kShareTargetsFieldNumber = 17,
    kShortcutsFieldNumber = 18,
  };
  // repeated string scopes = 5;
  int scopes_size()
      const;
  private:
  int _internal_scopes_size() const;

  public:
  void clear_scopes() ;
  const ::std::string& scopes(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_scopes(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_scopes(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_scopes();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_scopes(Arg_&& value, Args_... args);
  const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      scopes() const;
  ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_scopes();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_scopes() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_scopes();

  public:
  // repeated .webapk.Image icons = 6;
  int icons_size()
      const;
  private:
  int _internal_icons_size() const;

  public:
  void clear_icons() ;
  const ::webapk::Image& icons(int index) const;
  ::webapk::Image* PROTOBUF_NONNULL mutable_icons(int index);
  ::webapk::Image* PROTOBUF_NONNULL add_icons();
  const ::google::protobuf::RepeatedPtrField<::webapk::Image>&
  icons() const;
  ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL
  mutable_icons();

  private:
  const ::google::protobuf::RepeatedPtrField<::webapk::Image>& _internal_icons() const;
  ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL _internal_mutable_icons();

  public:
  // optional string name = 1;
  bool has_name()
      const;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // optional string short_name = 2;
  bool has_short_name()
      const;
  void clear_short_name() ;
  const ::std::string& short_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_short_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_short_name();
  ::std::string* PROTOBUF_NULLABLE release_short_name();
  void set_allocated_short_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_short_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_short_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_short_name();

  public:
  // optional string start_url = 4;
  bool has_start_url()
      const;
  void clear_start_url() ;
  const ::std::string& start_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_start_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_start_url();
  ::std::string* PROTOBUF_NULLABLE release_start_url();
  void set_allocated_start_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_start_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_start_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_start_url();

  public:
  // optional string orientation = 9;
  bool has_orientation()
      const;
  void clear_orientation() ;
  const ::std::string& orientation() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_orientation(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_orientation();
  ::std::string* PROTOBUF_NULLABLE release_orientation();
  void set_allocated_orientation(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_orientation() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_orientation(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_orientation();

  public:
  // optional string display_mode = 10;
  bool has_display_mode()
      const;
  void clear_display_mode() ;
  const ::std::string& display_mode() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_display_mode(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_display_mode();
  ::std::string* PROTOBUF_NULLABLE release_display_mode();
  void set_allocated_display_mode(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_display_mode() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_display_mode(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_display_mode();

  public:
  // optional string theme_color = 11;
  bool has_theme_color()
      const;
  void clear_theme_color() ;
  const ::std::string& theme_color() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_theme_color(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_theme_color();
  ::std::string* PROTOBUF_NULLABLE release_theme_color();
  void set_allocated_theme_color(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_theme_color() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_theme_color(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_theme_color();

  public:
  // optional string background_color = 12;
  bool has_background_color()
      const;
  void clear_background_color() ;
  const ::std::string& background_color() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_background_color(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_background_color();
  ::std::string* PROTOBUF_NULLABLE release_background_color();
  void set_allocated_background_color(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_background_color() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_background_color(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_background_color();

  public:
  // optional string id = 19;
  bool has_id()
      const;
  void clear_id() ;
  const ::std::string& id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_id();
  ::std::string* PROTOBUF_NULLABLE release_id();
  void set_allocated_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_id();

  public:
  // optional string dark_theme_color = 20;
  bool has_dark_theme_color()
      const;
  void clear_dark_theme_color() ;
  const ::std::string& dark_theme_color() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_dark_theme_color(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_dark_theme_color();
  ::std::string* PROTOBUF_NULLABLE release_dark_theme_color();
  void set_allocated_dark_theme_color(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_dark_theme_color() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_dark_theme_color(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_dark_theme_color();

  public:
  // optional string dark_background_color = 21;
  bool has_dark_background_color()
      const;
  void clear_dark_background_color() ;
  const ::std::string& dark_background_color() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_dark_background_color(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_dark_background_color();
  ::std::string* PROTOBUF_NULLABLE release_dark_background_color();
  void set_allocated_dark_background_color(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_dark_background_color() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_dark_background_color(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_dark_background_color();

  public:
  // optional bool has_custom_name = 22;
  bool has_has_custom_name()
      const;
  void clear_has_custom_name() ;
  bool has_custom_name() const;
  void set_has_custom_name(bool value);

  private:
  bool _internal_has_custom_name() const;
  void _internal_set_has_custom_name(bool value);

  public:
  // repeated .webapk.ShareTarget share_targets = 17;
  int share_targets_size()
      const;
  private:
  int _internal_share_targets_size() const;

  public:
  void clear_share_targets() ;
  const ::webapk::ShareTarget& share_targets(int index) const;
  ::webapk::ShareTarget* PROTOBUF_NONNULL mutable_share_targets(int index);
  ::webapk::ShareTarget* PROTOBUF_NONNULL add_share_targets();
  const ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>&
  share_targets() const;
  ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>* PROTOBUF_NONNULL
  mutable_share_targets();

  private:
  const ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>& _internal_share_targets() const;
  ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>* PROTOBUF_NONNULL _internal_mutable_share_targets();

  public:
  // repeated .webapk.ShortcutItem shortcuts = 18;
  int shortcuts_size()
      const;
  private:
  int _internal_shortcuts_size() const;

  public:
  void clear_shortcuts() ;
  const ::webapk::ShortcutItem& shortcuts(int index) const;
  ::webapk::ShortcutItem* PROTOBUF_NONNULL mutable_shortcuts(int index);
  ::webapk::ShortcutItem* PROTOBUF_NONNULL add_shortcuts();
  const ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>&
  shortcuts() const;
  ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>* PROTOBUF_NONNULL
  mutable_shortcuts();

  private:
  const ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>& _internal_shortcuts() const;
  ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>* PROTOBUF_NONNULL _internal_mutable_shortcuts();

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

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const WebAppManifest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> scopes_;
    ::google::protobuf::RepeatedPtrField< ::webapk::Image > icons_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr short_name_;
    ::google::protobuf::internal::ArenaStringPtr start_url_;
    ::google::protobuf::internal::ArenaStringPtr orientation_;
    ::google::protobuf::internal::ArenaStringPtr display_mode_;
    ::google::protobuf::internal::ArenaStringPtr theme_color_;
    ::google::protobuf::internal::ArenaStringPtr background_color_;
    ::google::protobuf::internal::ArenaStringPtr id_;
    ::google::protobuf::internal::ArenaStringPtr dark_theme_color_;
    ::google::protobuf::internal::ArenaStringPtr dark_background_color_;
    bool has_custom_name_;
    ::google::protobuf::RepeatedPtrField< ::webapk::ShareTarget > share_targets_;
    ::google::protobuf::RepeatedPtrField< ::webapk::ShortcutItem > shortcuts_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};
// -------------------------------------------------------------------

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

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

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

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

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

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

  explicit WebApk(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  WebApk(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const WebApk& from);
  WebApk(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, WebApk&& from) noexcept
      : WebApk(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 UpdateReason = WebApk_UpdateReason;
  static constexpr UpdateReason NONE = WebApk_UpdateReason_NONE;
  static constexpr UpdateReason OLD_SHELL_APK = WebApk_UpdateReason_OLD_SHELL_APK;
  static constexpr UpdateReason PRIMARY_ICON_HASH_DIFFERS = WebApk_UpdateReason_PRIMARY_ICON_HASH_DIFFERS;
  static constexpr UpdateReason SCOPE_DIFFERS = WebApk_UpdateReason_SCOPE_DIFFERS;
  static constexpr UpdateReason START_URL_DIFFERS = WebApk_UpdateReason_START_URL_DIFFERS;
  static constexpr UpdateReason SHORT_NAME_DIFFERS = WebApk_UpdateReason_SHORT_NAME_DIFFERS;
  static constexpr UpdateReason NAME_DIFFERS = WebApk_UpdateReason_NAME_DIFFERS;
  static constexpr UpdateReason BACKGROUND_COLOR_DIFFERS = WebApk_UpdateReason_BACKGROUND_COLOR_DIFFERS;
  static constexpr UpdateReason THEME_COLOR_DIFFERS = WebApk_UpdateReason_THEME_COLOR_DIFFERS;
  static constexpr UpdateReason ORIENTATION_DIFFERS = WebApk_UpdateReason_ORIENTATION_DIFFERS;
  static constexpr UpdateReason DISPLAY_MODE_DIFFERS = WebApk_UpdateReason_DISPLAY_MODE_DIFFERS;
  static constexpr UpdateReason WEB_SHARE_TARGET_DIFFERS = WebApk_UpdateReason_WEB_SHARE_TARGET_DIFFERS;
  static constexpr UpdateReason MANUALLY_TRIGGERED = WebApk_UpdateReason_MANUALLY_TRIGGERED;
  static constexpr UpdateReason PRIMARY_ICON_MASKABLE_DIFFERS = WebApk_UpdateReason_PRIMARY_ICON_MASKABLE_DIFFERS;
  static constexpr UpdateReason SHORTCUTS_DIFFER = WebApk_UpdateReason_SHORTCUTS_DIFFER;
  static constexpr UpdateReason SPLASH_ICON_HASH_DIFFERS = WebApk_UpdateReason_SPLASH_ICON_HASH_DIFFERS;
  static constexpr UpdateReason DARK_BACKGROUND_COLOR_DIFFERS = WebApk_UpdateReason_DARK_BACKGROUND_COLOR_DIFFERS;
  static constexpr UpdateReason DARK_THEME_COLOR_DIFFERS = WebApk_UpdateReason_DARK_THEME_COLOR_DIFFERS;
  static constexpr UpdateReason PRIMARY_ICON_CHANGE_BELOW_THRESHOLD = WebApk_UpdateReason_PRIMARY_ICON_CHANGE_BELOW_THRESHOLD;
  static inline bool UpdateReason_IsValid(int value) {
    return WebApk_UpdateReason_IsValid(value);
  }
  static constexpr UpdateReason UpdateReason_MIN = WebApk_UpdateReason_UpdateReason_MIN;
  static constexpr UpdateReason UpdateReason_MAX = WebApk_UpdateReason_UpdateReason_MAX;
  static constexpr int UpdateReason_ARRAYSIZE = WebApk_UpdateReason_UpdateReason_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& UpdateReason_Name(T value) {
    return WebApk_UpdateReason_Name(value);
  }
  static inline bool UpdateReason_Parse(
      ::absl::string_view name, UpdateReason* PROTOBUF_NONNULL value) {
    return WebApk_UpdateReason_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kUpdateReasonsFieldNumber = 11,
    kPackageNameFieldNumber = 1,
    kVersionFieldNumber = 2,
    kManifestUrlFieldNumber = 3,
    kRequesterApplicationPackageFieldNumber = 5,
    kRequesterApplicationVersionFieldNumber = 6,
    kAndroidAbiFieldNumber = 8,
    kAndroidVersionFieldNumber = 12,
    kAppKeyFieldNumber = 14,
    kManifestFieldNumber = 7,
    kStaleManifestFieldNumber = 9,
    kAppIdentityUpdateSupportedFieldNumber = 13,
  };
  // repeated .webapk.WebApk.UpdateReason update_reasons = 11;
  int update_reasons_size()
      const;
  private:
  int _internal_update_reasons_size() const;

  public:
  void clear_update_reasons() ;
  public:
  ::webapk::WebApk_UpdateReason update_reasons(int index) const;
  void set_update_reasons(int index, ::webapk::WebApk_UpdateReason value);
  void add_update_reasons(::webapk::WebApk_UpdateReason value);
  const ::google::protobuf::RepeatedField<int>& update_reasons()
      const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_update_reasons();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_update_reasons() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_update_reasons();

  public:
  // optional string package_name = 1;
  bool has_package_name()
      const;
  void clear_package_name() ;
  const ::std::string& package_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_package_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_package_name();
  ::std::string* PROTOBUF_NULLABLE release_package_name();
  void set_allocated_package_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_package_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_package_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_package_name();

  public:
  // optional string version = 2;
  bool has_version()
      const;
  void clear_version() ;
  const ::std::string& version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_version();
  ::std::string* PROTOBUF_NULLABLE release_version();
  void set_allocated_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_version();

  public:
  // optional string manifest_url = 3;
  bool has_manifest_url()
      const;
  void clear_manifest_url() ;
  const ::std::string& manifest_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_manifest_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_manifest_url();
  ::std::string* PROTOBUF_NULLABLE release_manifest_url();
  void set_allocated_manifest_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_manifest_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_manifest_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_manifest_url();

  public:
  // optional string requester_application_package = 5;
  bool has_requester_application_package()
      const;
  void clear_requester_application_package() ;
  const ::std::string& requester_application_package() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_requester_application_package(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_requester_application_package();
  ::std::string* PROTOBUF_NULLABLE release_requester_application_package();
  void set_allocated_requester_application_package(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_requester_application_package() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_requester_application_package(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_requester_application_package();

  public:
  // optional string requester_application_version = 6;
  bool has_requester_application_version()
      const;
  void clear_requester_application_version() ;
  const ::std::string& requester_application_version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_requester_application_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_requester_application_version();
  ::std::string* PROTOBUF_NULLABLE release_requester_application_version();
  void set_allocated_requester_application_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_requester_application_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_requester_application_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_requester_application_version();

  public:
  // optional string android_abi = 8;
  bool has_android_abi()
      const;
  void clear_android_abi() ;
  const ::std::string& android_abi() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_android_abi(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_android_abi();
  ::std::string* PROTOBUF_NULLABLE release_android_abi();
  void set_allocated_android_abi(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_android_abi() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_android_abi(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_android_abi();

  public:
  // optional string android_version = 12;
  bool has_android_version()
      const;
  void clear_android_version() ;
  const ::std::string& android_version() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_android_version(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_android_version();
  ::std::string* PROTOBUF_NULLABLE release_android_version();
  void set_allocated_android_version(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_android_version() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_android_version(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_android_version();

  public:
  // optional string app_key = 14;
  bool has_app_key()
      const;
  void clear_app_key() ;
  const ::std::string& app_key() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_app_key(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_app_key();
  ::std::string* PROTOBUF_NULLABLE release_app_key();
  void set_allocated_app_key(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_app_key() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_app_key(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_app_key();

  public:
  // optional .webapk.WebAppManifest manifest = 7;
  bool has_manifest()
      const;
  void clear_manifest() ;
  const ::webapk::WebAppManifest& manifest() const;
  ::webapk::WebAppManifest* PROTOBUF_NULLABLE release_manifest();
  ::webapk::WebAppManifest* PROTOBUF_NONNULL mutable_manifest();
  void set_allocated_manifest(::webapk::WebAppManifest* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_manifest(::webapk::WebAppManifest* PROTOBUF_NULLABLE value);
  ::webapk::WebAppManifest* PROTOBUF_NULLABLE unsafe_arena_release_manifest();

  private:
  const ::webapk::WebAppManifest& _internal_manifest() const;
  ::webapk::WebAppManifest* PROTOBUF_NONNULL _internal_mutable_manifest();

  public:
  // optional bool stale_manifest = 9;
  bool has_stale_manifest()
      const;
  void clear_stale_manifest() ;
  bool stale_manifest() const;
  void set_stale_manifest(bool value);

  private:
  bool _internal_stale_manifest() const;
  void _internal_set_stale_manifest(bool value);

  public:
  // optional bool app_identity_update_supported = 13;
  bool has_app_identity_update_supported()
      const;
  void clear_app_identity_update_supported() ;
  bool app_identity_update_supported() const;
  void set_app_identity_update_supported(bool value);

  private:
  bool _internal_app_identity_update_supported() const;
  void _internal_set_app_identity_update_supported(bool value);

  public:
  // @@protoc_insertion_point(class_scope:webapk.WebApk)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 12,
                          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 WebApk& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> update_reasons_;
    ::google::protobuf::internal::ArenaStringPtr package_name_;
    ::google::protobuf::internal::ArenaStringPtr version_;
    ::google::protobuf::internal::ArenaStringPtr manifest_url_;
    ::google::protobuf::internal::ArenaStringPtr requester_application_package_;
    ::google::protobuf::internal::ArenaStringPtr requester_application_version_;
    ::google::protobuf::internal::ArenaStringPtr android_abi_;
    ::google::protobuf::internal::ArenaStringPtr android_version_;
    ::google::protobuf::internal::ArenaStringPtr app_key_;
    ::webapk::WebAppManifest* PROTOBUF_NULLABLE manifest_;
    bool stale_manifest_;
    bool app_identity_update_supported_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_webapk_2eproto;
};

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




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


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

// WebApkResponse

// optional string package_name = 1;
inline bool WebApkResponse::has_package_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void WebApkResponse::clear_package_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.package_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& WebApkResponse::package_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApkResponse.package_name)
  return _internal_package_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApkResponse::set_package_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.package_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApkResponse.package_name)
}
inline ::std::string* PROTOBUF_NONNULL WebApkResponse::mutable_package_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_package_name();
  // @@protoc_insertion_point(field_mutable:webapk.WebApkResponse.package_name)
  return _s;
}
inline const ::std::string& WebApkResponse::_internal_package_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.package_name_.Get();
}
inline void WebApkResponse::_internal_set_package_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.package_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApkResponse::_internal_mutable_package_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.package_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApkResponse::release_package_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApkResponse.package_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.package_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.package_name_.Set("", GetArena());
  }
  return released;
}
inline void WebApkResponse::set_allocated_package_name(::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_.package_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.package_name_.IsDefault()) {
    _impl_.package_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApkResponse.package_name)
}

// optional string version = 2;
inline bool WebApkResponse::has_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void WebApkResponse::clear_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& WebApkResponse::version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApkResponse.version)
  return _internal_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApkResponse::set_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApkResponse.version)
}
inline ::std::string* PROTOBUF_NONNULL WebApkResponse::mutable_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_version();
  // @@protoc_insertion_point(field_mutable:webapk.WebApkResponse.version)
  return _s;
}
inline const ::std::string& WebApkResponse::_internal_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.version_.Get();
}
inline void WebApkResponse::_internal_set_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApkResponse::_internal_mutable_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApkResponse::release_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApkResponse.version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.version_.Set("", GetArena());
  }
  return released;
}
inline void WebApkResponse::set_allocated_version(::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_.version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.version_.IsDefault()) {
    _impl_.version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApkResponse.version)
}

// optional string token = 6;
inline bool WebApkResponse::has_token() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void WebApkResponse::clear_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& WebApkResponse::token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApkResponse.token)
  return _internal_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApkResponse::set_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApkResponse.token)
}
inline ::std::string* PROTOBUF_NONNULL WebApkResponse::mutable_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_token();
  // @@protoc_insertion_point(field_mutable:webapk.WebApkResponse.token)
  return _s;
}
inline const ::std::string& WebApkResponse::_internal_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.token_.Get();
}
inline void WebApkResponse::_internal_set_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApkResponse::_internal_mutable_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApkResponse::release_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApkResponse.token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.token_.Set("", GetArena());
  }
  return released;
}
inline void WebApkResponse::set_allocated_token(::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_.token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.token_.IsDefault()) {
    _impl_.token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApkResponse.token)
}

// optional bool relax_updates = 8;
inline bool WebApkResponse::has_relax_updates() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void WebApkResponse::clear_relax_updates() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.relax_updates_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool WebApkResponse::relax_updates() const {
  // @@protoc_insertion_point(field_get:webapk.WebApkResponse.relax_updates)
  return _internal_relax_updates();
}
inline void WebApkResponse::set_relax_updates(bool value) {
  _internal_set_relax_updates(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:webapk.WebApkResponse.relax_updates)
}
inline bool WebApkResponse::_internal_relax_updates() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.relax_updates_;
}
inline void WebApkResponse::_internal_set_relax_updates(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.relax_updates_ = value;
}

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

// WebApk

// optional string package_name = 1;
inline bool WebApk::has_package_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void WebApk::clear_package_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.package_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& WebApk::package_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.package_name)
  return _internal_package_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_package_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.package_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.package_name)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_package_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_package_name();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.package_name)
  return _s;
}
inline const ::std::string& WebApk::_internal_package_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.package_name_.Get();
}
inline void WebApk::_internal_set_package_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.package_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_package_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.package_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_package_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.package_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.package_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.package_name_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_package_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_.package_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.package_name_.IsDefault()) {
    _impl_.package_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.package_name)
}

// optional string version = 2;
inline bool WebApk::has_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void WebApk::clear_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& WebApk::version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.version)
  return _internal_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.version)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_version();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.version)
  return _s;
}
inline const ::std::string& WebApk::_internal_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.version_.Get();
}
inline void WebApk::_internal_set_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.version_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_version(::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_.version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.version_.IsDefault()) {
    _impl_.version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.version)
}

// optional string manifest_url = 3;
inline bool WebApk::has_manifest_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void WebApk::clear_manifest_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.manifest_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& WebApk::manifest_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.manifest_url)
  return _internal_manifest_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_manifest_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.manifest_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.manifest_url)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_manifest_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_manifest_url();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.manifest_url)
  return _s;
}
inline const ::std::string& WebApk::_internal_manifest_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.manifest_url_.Get();
}
inline void WebApk::_internal_set_manifest_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.manifest_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_manifest_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.manifest_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_manifest_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.manifest_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.manifest_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.manifest_url_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_manifest_url(::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_.manifest_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.manifest_url_.IsDefault()) {
    _impl_.manifest_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.manifest_url)
}

// optional string requester_application_package = 5;
inline bool WebApk::has_requester_application_package() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void WebApk::clear_requester_application_package() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.requester_application_package_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& WebApk::requester_application_package() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.requester_application_package)
  return _internal_requester_application_package();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_requester_application_package(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.requester_application_package_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.requester_application_package)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_requester_application_package()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_requester_application_package();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.requester_application_package)
  return _s;
}
inline const ::std::string& WebApk::_internal_requester_application_package() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.requester_application_package_.Get();
}
inline void WebApk::_internal_set_requester_application_package(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.requester_application_package_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_requester_application_package() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.requester_application_package_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_requester_application_package() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.requester_application_package)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.requester_application_package_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.requester_application_package_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_requester_application_package(::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_.requester_application_package_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.requester_application_package_.IsDefault()) {
    _impl_.requester_application_package_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.requester_application_package)
}

// optional string requester_application_version = 6;
inline bool WebApk::has_requester_application_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void WebApk::clear_requester_application_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.requester_application_version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& WebApk::requester_application_version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.requester_application_version)
  return _internal_requester_application_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_requester_application_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.requester_application_version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.requester_application_version)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_requester_application_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_requester_application_version();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.requester_application_version)
  return _s;
}
inline const ::std::string& WebApk::_internal_requester_application_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.requester_application_version_.Get();
}
inline void WebApk::_internal_set_requester_application_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.requester_application_version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_requester_application_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.requester_application_version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_requester_application_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.requester_application_version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.requester_application_version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.requester_application_version_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_requester_application_version(::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_.requester_application_version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.requester_application_version_.IsDefault()) {
    _impl_.requester_application_version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.requester_application_version)
}

// optional .webapk.WebAppManifest manifest = 7;
inline bool WebApk::has_manifest() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.manifest_ != nullptr);
  return value;
}
inline void WebApk::clear_manifest() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.manifest_ != nullptr) _impl_.manifest_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::webapk::WebAppManifest& WebApk::_internal_manifest() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::webapk::WebAppManifest* p = _impl_.manifest_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::webapk::WebAppManifest>(&::webapk::WebAppManifest_globals_);
}
inline const ::webapk::WebAppManifest& WebApk::manifest() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.manifest)
  return _internal_manifest();
}
inline void WebApk::unsafe_arena_set_allocated_manifest(
    ::webapk::WebAppManifest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.manifest_);
  }
  _impl_.manifest_ = reinterpret_cast<::webapk::WebAppManifest*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:webapk.WebApk.manifest)
}
inline ::webapk::WebAppManifest* PROTOBUF_NULLABLE WebApk::release_manifest() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::webapk::WebAppManifest* released = _impl_.manifest_;
  _impl_.manifest_ = 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 ::webapk::WebAppManifest* PROTOBUF_NULLABLE WebApk::unsafe_arena_release_manifest() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.manifest)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::webapk::WebAppManifest* temp = _impl_.manifest_;
  _impl_.manifest_ = nullptr;
  return temp;
}
inline ::webapk::WebAppManifest* PROTOBUF_NONNULL WebApk::_internal_mutable_manifest() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.manifest_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::webapk::WebAppManifest>(GetArena());
    _impl_.manifest_ = reinterpret_cast<::webapk::WebAppManifest*>(p);
  }
  return _impl_.manifest_;
}
inline ::webapk::WebAppManifest* PROTOBUF_NONNULL WebApk::mutable_manifest()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::webapk::WebAppManifest* _msg = _internal_mutable_manifest();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.manifest)
  return _msg;
}
inline void WebApk::set_allocated_manifest(::webapk::WebAppManifest* 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_.manifest_);
  }

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

  _impl_.manifest_ = reinterpret_cast<::webapk::WebAppManifest*>(value);
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.manifest)
}

// optional string android_abi = 8;
inline bool WebApk::has_android_abi() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void WebApk::clear_android_abi() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.android_abi_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::std::string& WebApk::android_abi() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.android_abi)
  return _internal_android_abi();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_android_abi(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  _impl_.android_abi_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.android_abi)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_android_abi()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::std::string* _s = _internal_mutable_android_abi();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.android_abi)
  return _s;
}
inline const ::std::string& WebApk::_internal_android_abi() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.android_abi_.Get();
}
inline void WebApk::_internal_set_android_abi(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.android_abi_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_android_abi() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.android_abi_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_android_abi() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.android_abi)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000040U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  auto* released = _impl_.android_abi_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.android_abi_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_android_abi(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  _impl_.android_abi_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.android_abi_.IsDefault()) {
    _impl_.android_abi_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.android_abi)
}

// optional bool stale_manifest = 9;
inline bool WebApk::has_stale_manifest() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void WebApk::clear_stale_manifest() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stale_manifest_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline bool WebApk::stale_manifest() const {
  // @@protoc_insertion_point(field_get:webapk.WebApk.stale_manifest)
  return _internal_stale_manifest();
}
inline void WebApk::set_stale_manifest(bool value) {
  _internal_set_stale_manifest(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:webapk.WebApk.stale_manifest)
}
inline bool WebApk::_internal_stale_manifest() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stale_manifest_;
}
inline void WebApk::_internal_set_stale_manifest(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stale_manifest_ = value;
}

// repeated .webapk.WebApk.UpdateReason update_reasons = 11;
inline int WebApk::_internal_update_reasons_size() const {
  return _internal_update_reasons().size();
}
inline int WebApk::update_reasons_size() const {
  return _internal_update_reasons_size();
}
inline void WebApk::clear_update_reasons() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.update_reasons_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::webapk::WebApk_UpdateReason WebApk::update_reasons(int index) const {
  // @@protoc_insertion_point(field_get:webapk.WebApk.update_reasons)
  return static_cast<::webapk::WebApk_UpdateReason>(_internal_update_reasons().Get(index));
}
inline void WebApk::set_update_reasons(int index, ::webapk::WebApk_UpdateReason value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::webapk::WebApk_UpdateReason_internal_data_));
                                          _internal_mutable_update_reasons()->Set(index, value);
  // @@protoc_insertion_point(field_set:webapk.WebApk.update_reasons)
}
inline void WebApk::add_update_reasons(::webapk::WebApk_UpdateReason value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::webapk::WebApk_UpdateReason_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_update_reasons()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:webapk.WebApk.update_reasons)
}
inline const ::google::protobuf::RepeatedField<int>& WebApk::update_reasons() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.WebApk.update_reasons)
  return _internal_update_reasons();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL WebApk::mutable_update_reasons()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:webapk.WebApk.update_reasons)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_update_reasons();
}
inline const ::google::protobuf::RepeatedField<int>& WebApk::_internal_update_reasons()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.update_reasons_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
WebApk::_internal_mutable_update_reasons() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.update_reasons_;
}

// optional string android_version = 12;
inline bool WebApk::has_android_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void WebApk::clear_android_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.android_version_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::std::string& WebApk::android_version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.android_version)
  return _internal_android_version();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_android_version(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  _impl_.android_version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.android_version)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_android_version()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::std::string* _s = _internal_mutable_android_version();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.android_version)
  return _s;
}
inline const ::std::string& WebApk::_internal_android_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.android_version_.Get();
}
inline void WebApk::_internal_set_android_version(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.android_version_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_android_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.android_version_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_android_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.android_version)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000080U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  auto* released = _impl_.android_version_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.android_version_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_android_version(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  _impl_.android_version_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.android_version_.IsDefault()) {
    _impl_.android_version_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.android_version)
}

// optional bool app_identity_update_supported = 13;
inline bool WebApk::has_app_identity_update_supported() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void WebApk::clear_app_identity_update_supported() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.app_identity_update_supported_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline bool WebApk::app_identity_update_supported() const {
  // @@protoc_insertion_point(field_get:webapk.WebApk.app_identity_update_supported)
  return _internal_app_identity_update_supported();
}
inline void WebApk::set_app_identity_update_supported(bool value) {
  _internal_set_app_identity_update_supported(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:webapk.WebApk.app_identity_update_supported)
}
inline bool WebApk::_internal_app_identity_update_supported() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.app_identity_update_supported_;
}
inline void WebApk::_internal_set_app_identity_update_supported(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.app_identity_update_supported_ = value;
}

// optional string app_key = 14;
inline bool WebApk::has_app_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void WebApk::clear_app_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.app_key_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::std::string& WebApk::app_key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebApk.app_key)
  return _internal_app_key();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebApk::set_app_key(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  _impl_.app_key_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebApk.app_key)
}
inline ::std::string* PROTOBUF_NONNULL WebApk::mutable_app_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::std::string* _s = _internal_mutable_app_key();
  // @@protoc_insertion_point(field_mutable:webapk.WebApk.app_key)
  return _s;
}
inline const ::std::string& WebApk::_internal_app_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.app_key_.Get();
}
inline void WebApk::_internal_set_app_key(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.app_key_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebApk::_internal_mutable_app_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.app_key_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebApk::release_app_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebApk.app_key)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000100U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  auto* released = _impl_.app_key_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.app_key_.Set("", GetArena());
  }
  return released;
}
inline void WebApk::set_allocated_app_key(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  _impl_.app_key_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.app_key_.IsDefault()) {
    _impl_.app_key_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebApk.app_key)
}

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

// WebAppManifest

// optional string name = 1;
inline bool WebAppManifest::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void WebAppManifest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& WebAppManifest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.name)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.name)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void WebAppManifest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.name)
}

// optional string short_name = 2;
inline bool WebAppManifest::has_short_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void WebAppManifest::clear_short_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.short_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& WebAppManifest::short_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.short_name)
  return _internal_short_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_short_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.short_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.short_name)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_short_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_short_name();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.short_name)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_short_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.short_name_.Get();
}
inline void WebAppManifest::_internal_set_short_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.short_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_short_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.short_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_short_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.short_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.short_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.short_name_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_short_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.short_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.short_name_.IsDefault()) {
    _impl_.short_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.short_name)
}

// optional string start_url = 4;
inline bool WebAppManifest::has_start_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void WebAppManifest::clear_start_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.start_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& WebAppManifest::start_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.start_url)
  return _internal_start_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_start_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.start_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.start_url)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_start_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_start_url();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.start_url)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_start_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.start_url_.Get();
}
inline void WebAppManifest::_internal_set_start_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.start_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_start_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.start_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_start_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.start_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.start_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.start_url_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_start_url(::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_.start_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.start_url_.IsDefault()) {
    _impl_.start_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.start_url)
}

// repeated string scopes = 5;
inline int WebAppManifest::_internal_scopes_size() const {
  return _internal_scopes().size();
}
inline int WebAppManifest::scopes_size() const {
  return _internal_scopes_size();
}
inline void WebAppManifest::clear_scopes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.scopes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::add_scopes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_scopes()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:webapk.WebAppManifest.scopes)
  return _s;
}
inline const ::std::string& WebAppManifest::scopes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.scopes)
  return _internal_scopes().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_scopes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.scopes)
  return _internal_mutable_scopes()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void WebAppManifest::set_scopes(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_scopes()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.scopes)
}
template <typename Arg_, typename... Args_>
inline void WebAppManifest::add_scopes(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_scopes(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:webapk.WebAppManifest.scopes)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& WebAppManifest::scopes()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.WebAppManifest.scopes)
  return _internal_scopes();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
WebAppManifest::mutable_scopes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:webapk.WebAppManifest.scopes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_scopes();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
WebAppManifest::_internal_scopes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.scopes_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
WebAppManifest::_internal_mutable_scopes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.scopes_;
}

// repeated .webapk.Image icons = 6;
inline int WebAppManifest::_internal_icons_size() const {
  return _internal_icons().size();
}
inline int WebAppManifest::icons_size() const {
  return _internal_icons_size();
}
inline void WebAppManifest::clear_icons() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.icons_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::webapk::Image& WebAppManifest::icons(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.icons)
  return _internal_icons().Get(index);
}
inline ::webapk::Image* PROTOBUF_NONNULL WebAppManifest::mutable_icons(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.icons)
  return _internal_mutable_icons()->Mutable(index);
}
inline ::webapk::Image* PROTOBUF_NONNULL WebAppManifest::add_icons()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::webapk::Image* _add =
      _internal_mutable_icons()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:webapk.WebAppManifest.icons)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::Image>& WebAppManifest::icons() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.WebAppManifest.icons)
  return _internal_icons();
}
inline ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL
WebAppManifest::mutable_icons() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:webapk.WebAppManifest.icons)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_icons();
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::Image>&
WebAppManifest::_internal_icons() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.icons_;
}
inline ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL
WebAppManifest::_internal_mutable_icons() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.icons_;
}

// optional string orientation = 9;
inline bool WebAppManifest::has_orientation() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void WebAppManifest::clear_orientation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.orientation_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& WebAppManifest::orientation() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.orientation)
  return _internal_orientation();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_orientation(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.orientation_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.orientation)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_orientation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_orientation();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.orientation)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_orientation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.orientation_.Get();
}
inline void WebAppManifest::_internal_set_orientation(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.orientation_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_orientation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.orientation_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_orientation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.orientation)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.orientation_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.orientation_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_orientation(::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_.orientation_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.orientation_.IsDefault()) {
    _impl_.orientation_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.orientation)
}

// optional string display_mode = 10;
inline bool WebAppManifest::has_display_mode() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void WebAppManifest::clear_display_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_mode_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::std::string& WebAppManifest::display_mode() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.display_mode)
  return _internal_display_mode();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_display_mode(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  _impl_.display_mode_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.display_mode)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_display_mode()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::std::string* _s = _internal_mutable_display_mode();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.display_mode)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_display_mode() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.display_mode_.Get();
}
inline void WebAppManifest::_internal_set_display_mode(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.display_mode_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_display_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.display_mode_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_display_mode() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.display_mode)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000040U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  auto* released = _impl_.display_mode_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.display_mode_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_display_mode(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  _impl_.display_mode_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.display_mode_.IsDefault()) {
    _impl_.display_mode_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.display_mode)
}

// optional string theme_color = 11;
inline bool WebAppManifest::has_theme_color() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void WebAppManifest::clear_theme_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.theme_color_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::std::string& WebAppManifest::theme_color() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.theme_color)
  return _internal_theme_color();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_theme_color(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  _impl_.theme_color_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.theme_color)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_theme_color()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::std::string* _s = _internal_mutable_theme_color();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.theme_color)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_theme_color() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.theme_color_.Get();
}
inline void WebAppManifest::_internal_set_theme_color(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.theme_color_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_theme_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.theme_color_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_theme_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.theme_color)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000080U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  auto* released = _impl_.theme_color_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.theme_color_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_theme_color(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  _impl_.theme_color_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.theme_color_.IsDefault()) {
    _impl_.theme_color_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.theme_color)
}

// optional string background_color = 12;
inline bool WebAppManifest::has_background_color() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void WebAppManifest::clear_background_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.background_color_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::std::string& WebAppManifest::background_color() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.background_color)
  return _internal_background_color();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_background_color(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  _impl_.background_color_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.background_color)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_background_color()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::std::string* _s = _internal_mutable_background_color();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.background_color)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_background_color() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.background_color_.Get();
}
inline void WebAppManifest::_internal_set_background_color(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.background_color_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_background_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.background_color_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_background_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.background_color)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000100U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  auto* released = _impl_.background_color_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.background_color_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_background_color(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  _impl_.background_color_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.background_color_.IsDefault()) {
    _impl_.background_color_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.background_color)
}

// repeated .webapk.ShareTarget share_targets = 17;
inline int WebAppManifest::_internal_share_targets_size() const {
  return _internal_share_targets().size();
}
inline int WebAppManifest::share_targets_size() const {
  return _internal_share_targets_size();
}
inline void WebAppManifest::clear_share_targets() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.share_targets_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline const ::webapk::ShareTarget& WebAppManifest::share_targets(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.share_targets)
  return _internal_share_targets().Get(index);
}
inline ::webapk::ShareTarget* PROTOBUF_NONNULL WebAppManifest::mutable_share_targets(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.share_targets)
  return _internal_mutable_share_targets()->Mutable(index);
}
inline ::webapk::ShareTarget* PROTOBUF_NONNULL WebAppManifest::add_share_targets()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::webapk::ShareTarget* _add =
      _internal_mutable_share_targets()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_add:webapk.WebAppManifest.share_targets)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>& WebAppManifest::share_targets() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.WebAppManifest.share_targets)
  return _internal_share_targets();
}
inline ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>* PROTOBUF_NONNULL
WebAppManifest::mutable_share_targets() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_mutable_list:webapk.WebAppManifest.share_targets)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_share_targets();
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>&
WebAppManifest::_internal_share_targets() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.share_targets_;
}
inline ::google::protobuf::RepeatedPtrField<::webapk::ShareTarget>* PROTOBUF_NONNULL
WebAppManifest::_internal_mutable_share_targets() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.share_targets_;
}

// repeated .webapk.ShortcutItem shortcuts = 18;
inline int WebAppManifest::_internal_shortcuts_size() const {
  return _internal_shortcuts().size();
}
inline int WebAppManifest::shortcuts_size() const {
  return _internal_shortcuts_size();
}
inline void WebAppManifest::clear_shortcuts() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shortcuts_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline const ::webapk::ShortcutItem& WebAppManifest::shortcuts(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.shortcuts)
  return _internal_shortcuts().Get(index);
}
inline ::webapk::ShortcutItem* PROTOBUF_NONNULL WebAppManifest::mutable_shortcuts(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.shortcuts)
  return _internal_mutable_shortcuts()->Mutable(index);
}
inline ::webapk::ShortcutItem* PROTOBUF_NONNULL WebAppManifest::add_shortcuts()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::webapk::ShortcutItem* _add =
      _internal_mutable_shortcuts()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_add:webapk.WebAppManifest.shortcuts)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>& WebAppManifest::shortcuts() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.WebAppManifest.shortcuts)
  return _internal_shortcuts();
}
inline ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>* PROTOBUF_NONNULL
WebAppManifest::mutable_shortcuts() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_mutable_list:webapk.WebAppManifest.shortcuts)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_shortcuts();
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>&
WebAppManifest::_internal_shortcuts() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.shortcuts_;
}
inline ::google::protobuf::RepeatedPtrField<::webapk::ShortcutItem>* PROTOBUF_NONNULL
WebAppManifest::_internal_mutable_shortcuts() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.shortcuts_;
}

// optional string id = 19;
inline bool WebAppManifest::has_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void WebAppManifest::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::std::string& WebAppManifest::id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.id)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.id)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_.Get();
}
inline void WebAppManifest::_internal_set_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000200U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  auto* released = _impl_.id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.id_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  _impl_.id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.id_.IsDefault()) {
    _impl_.id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.id)
}

// optional string dark_theme_color = 20;
inline bool WebAppManifest::has_dark_theme_color() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void WebAppManifest::clear_dark_theme_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dark_theme_color_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline const ::std::string& WebAppManifest::dark_theme_color() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.dark_theme_color)
  return _internal_dark_theme_color();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_dark_theme_color(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  _impl_.dark_theme_color_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.dark_theme_color)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_dark_theme_color()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::std::string* _s = _internal_mutable_dark_theme_color();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.dark_theme_color)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_dark_theme_color() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.dark_theme_color_.Get();
}
inline void WebAppManifest::_internal_set_dark_theme_color(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dark_theme_color_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_dark_theme_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.dark_theme_color_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_dark_theme_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.dark_theme_color)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000400U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  auto* released = _impl_.dark_theme_color_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.dark_theme_color_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_dark_theme_color(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }
  _impl_.dark_theme_color_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.dark_theme_color_.IsDefault()) {
    _impl_.dark_theme_color_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.dark_theme_color)
}

// optional string dark_background_color = 21;
inline bool WebAppManifest::has_dark_background_color() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void WebAppManifest::clear_dark_background_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dark_background_color_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline const ::std::string& WebAppManifest::dark_background_color() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.dark_background_color)
  return _internal_dark_background_color();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void WebAppManifest::set_dark_background_color(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  _impl_.dark_background_color_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.dark_background_color)
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::mutable_dark_background_color()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::std::string* _s = _internal_mutable_dark_background_color();
  // @@protoc_insertion_point(field_mutable:webapk.WebAppManifest.dark_background_color)
  return _s;
}
inline const ::std::string& WebAppManifest::_internal_dark_background_color() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.dark_background_color_.Get();
}
inline void WebAppManifest::_internal_set_dark_background_color(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dark_background_color_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL WebAppManifest::_internal_mutable_dark_background_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.dark_background_color_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE WebAppManifest::release_dark_background_color() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.WebAppManifest.dark_background_color)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000800U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  auto* released = _impl_.dark_background_color_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.dark_background_color_.Set("", GetArena());
  }
  return released;
}
inline void WebAppManifest::set_allocated_dark_background_color(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  }
  _impl_.dark_background_color_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.dark_background_color_.IsDefault()) {
    _impl_.dark_background_color_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.WebAppManifest.dark_background_color)
}

// optional bool has_custom_name = 22;
inline bool WebAppManifest::has_has_custom_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  return value;
}
inline void WebAppManifest::clear_has_custom_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.has_custom_name_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline bool WebAppManifest::has_custom_name() const {
  // @@protoc_insertion_point(field_get:webapk.WebAppManifest.has_custom_name)
  return _internal_has_custom_name();
}
inline void WebAppManifest::set_has_custom_name(bool value) {
  _internal_set_has_custom_name(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:webapk.WebAppManifest.has_custom_name)
}
inline bool WebAppManifest::_internal_has_custom_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.has_custom_name_;
}
inline void WebAppManifest::_internal_set_has_custom_name(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.has_custom_name_ = value;
}

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

// Image

// optional string src = 1;
inline bool Image::has_src() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void Image::clear_src() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.src_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Image::src() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.Image.src)
  return _internal_src();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Image::set_src(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.src_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.Image.src)
}
inline ::std::string* PROTOBUF_NONNULL Image::mutable_src()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_src();
  // @@protoc_insertion_point(field_mutable:webapk.Image.src)
  return _s;
}
inline const ::std::string& Image::_internal_src() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.src_.Get();
}
inline void Image::_internal_set_src(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.src_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Image::_internal_mutable_src() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.src_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Image::release_src() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.Image.src)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.src_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.src_.Set("", GetArena());
  }
  return released;
}
inline void Image::set_allocated_src(::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_.src_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.src_.IsDefault()) {
    _impl_.src_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.Image.src)
}

// optional string hash = 5;
inline bool Image::has_hash() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void Image::clear_hash() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hash_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& Image::hash() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.Image.hash)
  return _internal_hash();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Image::set_hash(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.hash_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.Image.hash)
}
inline ::std::string* PROTOBUF_NONNULL Image::mutable_hash()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_hash();
  // @@protoc_insertion_point(field_mutable:webapk.Image.hash)
  return _s;
}
inline const ::std::string& Image::_internal_hash() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.hash_.Get();
}
inline void Image::_internal_set_hash(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hash_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Image::_internal_mutable_hash() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.hash_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Image::release_hash() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.Image.hash)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.hash_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.hash_.Set("", GetArena());
  }
  return released;
}
inline void Image::set_allocated_hash(::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_.hash_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.hash_.IsDefault()) {
    _impl_.hash_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.Image.hash)
}

// optional bytes image_data = 6;
inline bool Image::has_image_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void Image::clear_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.image_data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& Image::image_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.Image.image_data)
  return _internal_image_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Image::set_image_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.image_data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.Image.image_data)
}
inline ::std::string* PROTOBUF_NONNULL Image::mutable_image_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_image_data();
  // @@protoc_insertion_point(field_mutable:webapk.Image.image_data)
  return _s;
}
inline const ::std::string& Image::_internal_image_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.image_data_.Get();
}
inline void Image::_internal_set_image_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.image_data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Image::_internal_mutable_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.image_data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Image::release_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.Image.image_data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.image_data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.image_data_.Set("", GetArena());
  }
  return released;
}
inline void Image::set_allocated_image_data(::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_.image_data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.image_data_.IsDefault()) {
    _impl_.image_data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.Image.image_data)
}

// repeated .webapk.Image.Purpose purposes = 7;
inline int Image::_internal_purposes_size() const {
  return _internal_purposes().size();
}
inline int Image::purposes_size() const {
  return _internal_purposes_size();
}
inline void Image::clear_purposes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.purposes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::webapk::Image_Purpose Image::purposes(int index) const {
  // @@protoc_insertion_point(field_get:webapk.Image.purposes)
  return static_cast<::webapk::Image_Purpose>(_internal_purposes().Get(index));
}
inline void Image::set_purposes(int index, ::webapk::Image_Purpose value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::webapk::Image_Purpose_internal_data_));
                                          _internal_mutable_purposes()->Set(index, value);
  // @@protoc_insertion_point(field_set:webapk.Image.purposes)
}
inline void Image::add_purposes(::webapk::Image_Purpose value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::webapk::Image_Purpose_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_purposes()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:webapk.Image.purposes)
}
inline const ::google::protobuf::RepeatedField<int>& Image::purposes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.Image.purposes)
  return _internal_purposes();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL Image::mutable_purposes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:webapk.Image.purposes)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_purposes();
}
inline const ::google::protobuf::RepeatedField<int>& Image::_internal_purposes()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.purposes_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
Image::_internal_mutable_purposes() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.purposes_;
}

// repeated .webapk.Image.Usage usages = 8;
inline int Image::_internal_usages_size() const {
  return _internal_usages().size();
}
inline int Image::usages_size() const {
  return _internal_usages_size();
}
inline void Image::clear_usages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.usages_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::webapk::Image_Usage Image::usages(int index) const {
  // @@protoc_insertion_point(field_get:webapk.Image.usages)
  return static_cast<::webapk::Image_Usage>(_internal_usages().Get(index));
}
inline void Image::set_usages(int index, ::webapk::Image_Usage value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::webapk::Image_Usage_internal_data_));
                                          _internal_mutable_usages()->Set(index, value);
  // @@protoc_insertion_point(field_set:webapk.Image.usages)
}
inline void Image::add_usages(::webapk::Image_Usage value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::webapk::Image_Usage_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_usages()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:webapk.Image.usages)
}
inline const ::google::protobuf::RepeatedField<int>& Image::usages() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.Image.usages)
  return _internal_usages();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL Image::mutable_usages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:webapk.Image.usages)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_usages();
}
inline const ::google::protobuf::RepeatedField<int>& Image::_internal_usages()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.usages_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
Image::_internal_mutable_usages() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.usages_;
}

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

// ShareTargetParamsFile

// optional string name = 1;
inline bool ShareTargetParamsFile::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ShareTargetParamsFile::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ShareTargetParamsFile::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTargetParamsFile.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShareTargetParamsFile::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShareTargetParamsFile.name)
}
inline ::std::string* PROTOBUF_NONNULL ShareTargetParamsFile::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:webapk.ShareTargetParamsFile.name)
  return _s;
}
inline const ::std::string& ShareTargetParamsFile::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ShareTargetParamsFile::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShareTargetParamsFile::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShareTargetParamsFile::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShareTargetParamsFile.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ShareTargetParamsFile::set_allocated_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_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShareTargetParamsFile.name)
}

// repeated string accept = 2;
inline int ShareTargetParamsFile::_internal_accept_size() const {
  return _internal_accept().size();
}
inline int ShareTargetParamsFile::accept_size() const {
  return _internal_accept_size();
}
inline void ShareTargetParamsFile::clear_accept() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.accept_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL ShareTargetParamsFile::add_accept()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_accept()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:webapk.ShareTargetParamsFile.accept)
  return _s;
}
inline const ::std::string& ShareTargetParamsFile::accept(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTargetParamsFile.accept)
  return _internal_accept().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL ShareTargetParamsFile::mutable_accept(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.ShareTargetParamsFile.accept)
  return _internal_mutable_accept()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void ShareTargetParamsFile::set_accept(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_accept()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:webapk.ShareTargetParamsFile.accept)
}
template <typename Arg_, typename... Args_>
inline void ShareTargetParamsFile::add_accept(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_accept(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:webapk.ShareTargetParamsFile.accept)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& ShareTargetParamsFile::accept()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.ShareTargetParamsFile.accept)
  return _internal_accept();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ShareTargetParamsFile::mutable_accept() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:webapk.ShareTargetParamsFile.accept)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_accept();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
ShareTargetParamsFile::_internal_accept() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.accept_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ShareTargetParamsFile::_internal_mutable_accept() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.accept_;
}

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

// ShareTargetParams

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

// optional string text = 2;
inline bool ShareTargetParams::has_text() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ShareTargetParams::clear_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& ShareTargetParams::text() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTargetParams.text)
  return _internal_text();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShareTargetParams::set_text(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.text_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShareTargetParams.text)
}
inline ::std::string* PROTOBUF_NONNULL ShareTargetParams::mutable_text()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_text();
  // @@protoc_insertion_point(field_mutable:webapk.ShareTargetParams.text)
  return _s;
}
inline const ::std::string& ShareTargetParams::_internal_text() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.text_.Get();
}
inline void ShareTargetParams::_internal_set_text(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShareTargetParams::_internal_mutable_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.text_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShareTargetParams::release_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShareTargetParams.text)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.text_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.text_.Set("", GetArena());
  }
  return released;
}
inline void ShareTargetParams::set_allocated_text(::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_.text_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.text_.IsDefault()) {
    _impl_.text_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShareTargetParams.text)
}

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

// repeated .webapk.ShareTargetParamsFile files = 4;
inline int ShareTargetParams::_internal_files_size() const {
  return _internal_files().size();
}
inline int ShareTargetParams::files_size() const {
  return _internal_files_size();
}
inline void ShareTargetParams::clear_files() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.files_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::webapk::ShareTargetParamsFile& ShareTargetParams::files(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTargetParams.files)
  return _internal_files().Get(index);
}
inline ::webapk::ShareTargetParamsFile* PROTOBUF_NONNULL ShareTargetParams::mutable_files(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.ShareTargetParams.files)
  return _internal_mutable_files()->Mutable(index);
}
inline ::webapk::ShareTargetParamsFile* PROTOBUF_NONNULL ShareTargetParams::add_files()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::webapk::ShareTargetParamsFile* _add =
      _internal_mutable_files()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:webapk.ShareTargetParams.files)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>& ShareTargetParams::files() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.ShareTargetParams.files)
  return _internal_files();
}
inline ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>* PROTOBUF_NONNULL
ShareTargetParams::mutable_files() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:webapk.ShareTargetParams.files)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_files();
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>&
ShareTargetParams::_internal_files() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.files_;
}
inline ::google::protobuf::RepeatedPtrField<::webapk::ShareTargetParamsFile>* PROTOBUF_NONNULL
ShareTargetParams::_internal_mutable_files() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.files_;
}

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

// ShareTarget

// optional string action = 2;
inline bool ShareTarget::has_action() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ShareTarget::clear_action() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.action_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ShareTarget::action() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTarget.action)
  return _internal_action();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShareTarget::set_action(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.action_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShareTarget.action)
}
inline ::std::string* PROTOBUF_NONNULL ShareTarget::mutable_action()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_action();
  // @@protoc_insertion_point(field_mutable:webapk.ShareTarget.action)
  return _s;
}
inline const ::std::string& ShareTarget::_internal_action() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.action_.Get();
}
inline void ShareTarget::_internal_set_action(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.action_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShareTarget::_internal_mutable_action() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.action_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShareTarget::release_action() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShareTarget.action)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.action_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.action_.Set("", GetArena());
  }
  return released;
}
inline void ShareTarget::set_allocated_action(::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_.action_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.action_.IsDefault()) {
    _impl_.action_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShareTarget.action)
}

// optional .webapk.ShareTargetParams params = 3;
inline bool ShareTarget::has_params() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.params_ != nullptr);
  return value;
}
inline void ShareTarget::clear_params() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.params_ != nullptr) _impl_.params_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::webapk::ShareTargetParams& ShareTarget::_internal_params() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::webapk::ShareTargetParams* p = _impl_.params_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::webapk::ShareTargetParams>(&::webapk::ShareTargetParams_globals_);
}
inline const ::webapk::ShareTargetParams& ShareTarget::params() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTarget.params)
  return _internal_params();
}
inline void ShareTarget::unsafe_arena_set_allocated_params(
    ::webapk::ShareTargetParams* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.params_);
  }
  _impl_.params_ = reinterpret_cast<::webapk::ShareTargetParams*>(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:webapk.ShareTarget.params)
}
inline ::webapk::ShareTargetParams* PROTOBUF_NULLABLE ShareTarget::release_params() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::webapk::ShareTargetParams* released = _impl_.params_;
  _impl_.params_ = 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 ::webapk::ShareTargetParams* PROTOBUF_NULLABLE ShareTarget::unsafe_arena_release_params() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShareTarget.params)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::webapk::ShareTargetParams* temp = _impl_.params_;
  _impl_.params_ = nullptr;
  return temp;
}
inline ::webapk::ShareTargetParams* PROTOBUF_NONNULL ShareTarget::_internal_mutable_params() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.params_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::webapk::ShareTargetParams>(GetArena());
    _impl_.params_ = reinterpret_cast<::webapk::ShareTargetParams*>(p);
  }
  return _impl_.params_;
}
inline ::webapk::ShareTargetParams* PROTOBUF_NONNULL ShareTarget::mutable_params()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::webapk::ShareTargetParams* _msg = _internal_mutable_params();
  // @@protoc_insertion_point(field_mutable:webapk.ShareTarget.params)
  return _msg;
}
inline void ShareTarget::set_allocated_params(::webapk::ShareTargetParams* 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_.params_);
  }

  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_.params_ = reinterpret_cast<::webapk::ShareTargetParams*>(value);
  // @@protoc_insertion_point(field_set_allocated:webapk.ShareTarget.params)
}

// optional string method = 4;
inline bool ShareTarget::has_method() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ShareTarget::clear_method() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.method_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ShareTarget::method() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTarget.method)
  return _internal_method();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShareTarget::set_method(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.method_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShareTarget.method)
}
inline ::std::string* PROTOBUF_NONNULL ShareTarget::mutable_method()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_method();
  // @@protoc_insertion_point(field_mutable:webapk.ShareTarget.method)
  return _s;
}
inline const ::std::string& ShareTarget::_internal_method() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.method_.Get();
}
inline void ShareTarget::_internal_set_method(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.method_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShareTarget::_internal_mutable_method() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.method_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShareTarget::release_method() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShareTarget.method)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.method_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.method_.Set("", GetArena());
  }
  return released;
}
inline void ShareTarget::set_allocated_method(::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_.method_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.method_.IsDefault()) {
    _impl_.method_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShareTarget.method)
}

// optional string enctype = 5;
inline bool ShareTarget::has_enctype() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ShareTarget::clear_enctype() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enctype_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& ShareTarget::enctype() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShareTarget.enctype)
  return _internal_enctype();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShareTarget::set_enctype(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.enctype_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShareTarget.enctype)
}
inline ::std::string* PROTOBUF_NONNULL ShareTarget::mutable_enctype()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_enctype();
  // @@protoc_insertion_point(field_mutable:webapk.ShareTarget.enctype)
  return _s;
}
inline const ::std::string& ShareTarget::_internal_enctype() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enctype_.Get();
}
inline void ShareTarget::_internal_set_enctype(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enctype_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShareTarget::_internal_mutable_enctype() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.enctype_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShareTarget::release_enctype() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShareTarget.enctype)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.enctype_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.enctype_.Set("", GetArena());
  }
  return released;
}
inline void ShareTarget::set_allocated_enctype(::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_.enctype_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.enctype_.IsDefault()) {
    _impl_.enctype_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShareTarget.enctype)
}

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

// ShortcutItem

// optional string name = 1;
inline bool ShortcutItem::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ShortcutItem::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ShortcutItem::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShortcutItem.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShortcutItem::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShortcutItem.name)
}
inline ::std::string* PROTOBUF_NONNULL ShortcutItem::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:webapk.ShortcutItem.name)
  return _s;
}
inline const ::std::string& ShortcutItem::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void ShortcutItem::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShortcutItem::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShortcutItem::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShortcutItem.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void ShortcutItem::set_allocated_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_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShortcutItem.name)
}

// optional string short_name = 2;
inline bool ShortcutItem::has_short_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ShortcutItem::clear_short_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.short_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& ShortcutItem::short_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShortcutItem.short_name)
  return _internal_short_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ShortcutItem::set_short_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.short_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:webapk.ShortcutItem.short_name)
}
inline ::std::string* PROTOBUF_NONNULL ShortcutItem::mutable_short_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_short_name();
  // @@protoc_insertion_point(field_mutable:webapk.ShortcutItem.short_name)
  return _s;
}
inline const ::std::string& ShortcutItem::_internal_short_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.short_name_.Get();
}
inline void ShortcutItem::_internal_set_short_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.short_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ShortcutItem::_internal_mutable_short_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.short_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ShortcutItem::release_short_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:webapk.ShortcutItem.short_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.short_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.short_name_.Set("", GetArena());
  }
  return released;
}
inline void ShortcutItem::set_allocated_short_name(::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_.short_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.short_name_.IsDefault()) {
    _impl_.short_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:webapk.ShortcutItem.short_name)
}

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

// repeated .webapk.Image icons = 4;
inline int ShortcutItem::_internal_icons_size() const {
  return _internal_icons().size();
}
inline int ShortcutItem::icons_size() const {
  return _internal_icons_size();
}
inline void ShortcutItem::clear_icons() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.icons_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::webapk::Image& ShortcutItem::icons(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:webapk.ShortcutItem.icons)
  return _internal_icons().Get(index);
}
inline ::webapk::Image* PROTOBUF_NONNULL ShortcutItem::mutable_icons(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:webapk.ShortcutItem.icons)
  return _internal_mutable_icons()->Mutable(index);
}
inline ::webapk::Image* PROTOBUF_NONNULL ShortcutItem::add_icons()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::webapk::Image* _add =
      _internal_mutable_icons()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:webapk.ShortcutItem.icons)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::Image>& ShortcutItem::icons() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:webapk.ShortcutItem.icons)
  return _internal_icons();
}
inline ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL
ShortcutItem::mutable_icons() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:webapk.ShortcutItem.icons)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_icons();
}
inline const ::google::protobuf::RepeatedPtrField<::webapk::Image>&
ShortcutItem::_internal_icons() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.icons_;
}
inline ::google::protobuf::RepeatedPtrField<::webapk::Image>* PROTOBUF_NONNULL
ShortcutItem::_internal_mutable_icons() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.icons_;
}

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

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


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::webapk::WebApk_UpdateReason> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::webapk::WebApk_UpdateReason> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::webapk::WebApk_UpdateReason_Parse;
  static constexpr auto kNameFunc = ::webapk::WebApk_UpdateReason_Name<int>;
};
template <>
struct is_proto_enum<::webapk::Image_Usage> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::webapk::Image_Usage> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::webapk::Image_Usage_Parse;
  static constexpr auto kNameFunc = ::webapk::Image_Usage_Name<int>;
};
template <>
struct is_proto_enum<::webapk::Image_Purpose> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::webapk::Image_Purpose> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::webapk::Image_Purpose_Parse;
  static constexpr auto kNameFunc = ::webapk::Image_Purpose_Name<int>;
};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

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

#endif  // webapk_2eproto_2epb_2eh
