// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.27.1
// 	protoc        v3.21.1
// source: pb/ayrshare.proto

package aryshare

import (
	_ "github.com/mwitkow/go-proto-validators"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	_ "google.golang.org/protobuf/types/descriptorpb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Instagram 用户标签（带坐标）
type UserTag struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Username string  `protobuf:"bytes,1,opt,name=username,proto3" json:"username"`
	X        float64 `protobuf:"fixed64,2,opt,name=x,proto3" json:"x"` // Required for images, cannot be used with Reels
	Y        float64 `protobuf:"fixed64,3,opt,name=y,proto3" json:"y"` // Required for images, cannot be used with Reels
}

func (x *UserTag) Reset() {
	*x = UserTag{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserTag) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserTag) ProtoMessage() {}

func (x *UserTag) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserTag.ProtoReflect.Descriptor instead.
func (*UserTag) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{0}
}

func (x *UserTag) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *UserTag) GetX() float64 {
	if x != nil {
		return x.X
	}
	return 0
}

func (x *UserTag) GetY() float64 {
	if x != nil {
		return x.Y
	}
	return 0
}

// Instagram 特定发布选项
type InstagramOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ShareReelsFeed  bool       `protobuf:"varint,1,opt,name=shareReelsFeed,proto3" json:"shareReelsFeed"`    // Whether Reel can appear in both Feed and Reels tabs
	AudioName       string     `protobuf:"bytes,2,opt,name=audioName,proto3" json:"audioName"`               // Name of the audio music for Reels
	ThumbNail       string     `protobuf:"bytes,3,opt,name=thumbNail,proto3" json:"thumbNail"`               // URL of the Reel cover image (thumbnail)
	ThumbNailOffset int32      `protobuf:"varint,4,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"`  // Offset in milliseconds of the thumbnail frame
	Stories         bool       `protobuf:"varint,5,opt,name=stories,proto3" json:"stories"`                  // Whether to post as Instagram Story
	AltText         []string   `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"`                   // Array of alternative text for images (up to 1000 chars per image)
	LocationId      string     `protobuf:"bytes,7,opt,name=locationId,proto3" json:"locationId"`             // Facebook Page ID or Page name
	UserTags        []*UserTag `protobuf:"bytes,8,rep,name=userTags,proto3" json:"userTags"`                 // Array of user tags with username and coordinates
	Collaborators   []string   `protobuf:"bytes,9,rep,name=collaborators,proto3" json:"collaborators"`       // Array of Instagram usernames (up to 3)
	AutoResize      bool       `protobuf:"varint,10,opt,name=autoResize,proto3" json:"autoResize"`           // Auto resize images to 1080x1080px (Max Pack required)
	DisableComments bool       `protobuf:"varint,11,opt,name=disableComments,proto3" json:"disableComments"` // Disable comments on the published post
}

func (x *InstagramOptions) Reset() {
	*x = InstagramOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramOptions) ProtoMessage() {}

func (x *InstagramOptions) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramOptions.ProtoReflect.Descriptor instead.
func (*InstagramOptions) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{1}
}

func (x *InstagramOptions) GetShareReelsFeed() bool {
	if x != nil {
		return x.ShareReelsFeed
	}
	return false
}

func (x *InstagramOptions) GetAudioName() string {
	if x != nil {
		return x.AudioName
	}
	return ""
}

func (x *InstagramOptions) GetThumbNail() string {
	if x != nil {
		return x.ThumbNail
	}
	return ""
}

func (x *InstagramOptions) GetThumbNailOffset() int32 {
	if x != nil {
		return x.ThumbNailOffset
	}
	return 0
}

func (x *InstagramOptions) GetStories() bool {
	if x != nil {
		return x.Stories
	}
	return false
}

func (x *InstagramOptions) GetAltText() []string {
	if x != nil {
		return x.AltText
	}
	return nil
}

func (x *InstagramOptions) GetLocationId() string {
	if x != nil {
		return x.LocationId
	}
	return ""
}

func (x *InstagramOptions) GetUserTags() []*UserTag {
	if x != nil {
		return x.UserTags
	}
	return nil
}

func (x *InstagramOptions) GetCollaborators() []string {
	if x != nil {
		return x.Collaborators
	}
	return nil
}

func (x *InstagramOptions) GetAutoResize() bool {
	if x != nil {
		return x.AutoResize
	}
	return false
}

func (x *InstagramOptions) GetDisableComments() bool {
	if x != nil {
		return x.DisableComments
	}
	return false
}

// TikTok 特定发布选项
type TikTokOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AutoAddMusic     bool   `protobuf:"varint,1,opt,name=autoAddMusic,proto3" json:"autoAddMusic"`         // Whether to automatically add recommended music (image only)
	DisableComments  bool   `protobuf:"varint,2,opt,name=disableComments,proto3" json:"disableComments"`   // Whether to disable comments on the published post
	DisableDuet      bool   `protobuf:"varint,3,opt,name=disableDuet,proto3" json:"disableDuet"`           // Disable duets on the published video (video only)
	DisableStitch    bool   `protobuf:"varint,4,opt,name=disableStitch,proto3" json:"disableStitch"`       // Disable stitch on the published video (video only)
	Draft            bool   `protobuf:"varint,5,opt,name=draft,proto3" json:"draft"`                       // Whether to create a draft post
	IsAIGenerated    bool   `protobuf:"varint,6,opt,name=isAIGenerated,proto3" json:"isAIGenerated"`       // Whether to enable AI-generated content toggle (video only)
	IsBrandedContent bool   `protobuf:"varint,7,opt,name=isBrandedContent,proto3" json:"isBrandedContent"` // Whether to enable Branded Content toggle
	IsBrandOrganic   bool   `protobuf:"varint,8,opt,name=isBrandOrganic,proto3" json:"isBrandOrganic"`     // Whether to enable Brand Organic Content toggle
	ImageCoverIndex  int32  `protobuf:"varint,9,opt,name=imageCoverIndex,proto3" json:"imageCoverIndex"`   // Index of mediaUrls to be used as cover (image only, default 0)
	Title            string `protobuf:"bytes,10,opt,name=title,proto3" json:"title"`                       // Title of the post (image only)
	ThumbNailOffset  int32  `protobuf:"varint,11,opt,name=thumbNailOffset,proto3" json:"thumbNailOffset"`  // Frame to use for video cover in milliseconds (video only)
	ThumbNail        string `protobuf:"bytes,12,opt,name=thumbNail,proto3" json:"thumbNail"`               // URL of thumbnail image for video (video only)
	Visibility       string `protobuf:"bytes,13,opt,name=visibility,proto3" json:"visibility"`             // How the post is shared: "public", "private", "followers", "friends" (image only, default "public")
}

func (x *TikTokOptions) Reset() {
	*x = TikTokOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TikTokOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TikTokOptions) ProtoMessage() {}

func (x *TikTokOptions) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TikTokOptions.ProtoReflect.Descriptor instead.
func (*TikTokOptions) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{2}
}

func (x *TikTokOptions) GetAutoAddMusic() bool {
	if x != nil {
		return x.AutoAddMusic
	}
	return false
}

func (x *TikTokOptions) GetDisableComments() bool {
	if x != nil {
		return x.DisableComments
	}
	return false
}

func (x *TikTokOptions) GetDisableDuet() bool {
	if x != nil {
		return x.DisableDuet
	}
	return false
}

func (x *TikTokOptions) GetDisableStitch() bool {
	if x != nil {
		return x.DisableStitch
	}
	return false
}

func (x *TikTokOptions) GetDraft() bool {
	if x != nil {
		return x.Draft
	}
	return false
}

func (x *TikTokOptions) GetIsAIGenerated() bool {
	if x != nil {
		return x.IsAIGenerated
	}
	return false
}

func (x *TikTokOptions) GetIsBrandedContent() bool {
	if x != nil {
		return x.IsBrandedContent
	}
	return false
}

func (x *TikTokOptions) GetIsBrandOrganic() bool {
	if x != nil {
		return x.IsBrandOrganic
	}
	return false
}

func (x *TikTokOptions) GetImageCoverIndex() int32 {
	if x != nil {
		return x.ImageCoverIndex
	}
	return 0
}

func (x *TikTokOptions) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *TikTokOptions) GetThumbNailOffset() int32 {
	if x != nil {
		return x.ThumbNailOffset
	}
	return 0
}

func (x *TikTokOptions) GetThumbNail() string {
	if x != nil {
		return x.ThumbNail
	}
	return ""
}

func (x *TikTokOptions) GetVisibility() string {
	if x != nil {
		return x.Visibility
	}
	return ""
}

// YouTube 特定发布选项
type YouTubeOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title                  string   `protobuf:"bytes,1,opt,name=title,proto3" json:"title"`                                     // Video title (required for YouTube, max 100 characters)
	Visibility             string   `protobuf:"bytes,2,opt,name=visibility,proto3" json:"visibility"`                           // Visibility: "public", "unlisted", or "private" (default: "private")
	Tags                   []string `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags"`                                       // Video tags (400 chars total, 2+ chars each)
	CategoryId             int32    `protobuf:"varint,4,opt,name=categoryId,proto3" json:"categoryId"`                          // YouTube category ID (e.g., 24 = Entertainment)
	MadeForKids            bool     `protobuf:"varint,5,opt,name=madeForKids,proto3" json:"madeForKids"`                        // Whether the video is made for kids (default: false)
	ThumbNail              string   `protobuf:"bytes,6,opt,name=thumbNail,proto3" json:"thumbNail"`                             // URL of custom thumbnail image (JPEG/PNG under 2MB, must end in png/jpg/jpeg)
	PlaylistId             string   `protobuf:"bytes,7,opt,name=playlistId,proto3" json:"playlistId"`                           // Playlist ID to add the video to
	NotifySubscribers      bool     `protobuf:"varint,8,opt,name=notifySubscribers,proto3" json:"notifySubscribers"`            // Whether to notify subscribers (default: true)
	Shorts                 bool     `protobuf:"varint,9,opt,name=shorts,proto3" json:"shorts"`                                  // Post as YouTube Short (max 3 minutes, adds #shorts)
	ContainsSyntheticMedia bool     `protobuf:"varint,10,opt,name=containsSyntheticMedia,proto3" json:"containsSyntheticMedia"` // Disclose that a video contains realistic Altered or Synthetic (A/S) content
	PublishAt              string   `protobuf:"bytes,11,opt,name=publishAt,proto3" json:"publishAt"`                            // UTC publish time (YouTube controlled publishing)
	SubTitleUrl            string   `protobuf:"bytes,12,opt,name=subTitleUrl,proto3" json:"subTitleUrl"`                        // URL to SRT or SBV subtitle file (must start with https:// and end in .srt or .sbv, under 100 MB)
	SubTitleLanguage       string   `protobuf:"bytes,13,opt,name=subTitleLanguage,proto3" json:"subTitleLanguage"`              // Language code of subtitles (default: "en")
	SubTitleName           string   `protobuf:"bytes,14,opt,name=subTitleName,proto3" json:"subTitleName"`                      // Name of the caption track (max 150 chars, default: "English")
}

func (x *YouTubeOptions) Reset() {
	*x = YouTubeOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *YouTubeOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*YouTubeOptions) ProtoMessage() {}

func (x *YouTubeOptions) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use YouTubeOptions.ProtoReflect.Descriptor instead.
func (*YouTubeOptions) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{3}
}

func (x *YouTubeOptions) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *YouTubeOptions) GetVisibility() string {
	if x != nil {
		return x.Visibility
	}
	return ""
}

func (x *YouTubeOptions) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *YouTubeOptions) GetCategoryId() int32 {
	if x != nil {
		return x.CategoryId
	}
	return 0
}

func (x *YouTubeOptions) GetMadeForKids() bool {
	if x != nil {
		return x.MadeForKids
	}
	return false
}

func (x *YouTubeOptions) GetThumbNail() string {
	if x != nil {
		return x.ThumbNail
	}
	return ""
}

func (x *YouTubeOptions) GetPlaylistId() string {
	if x != nil {
		return x.PlaylistId
	}
	return ""
}

func (x *YouTubeOptions) GetNotifySubscribers() bool {
	if x != nil {
		return x.NotifySubscribers
	}
	return false
}

func (x *YouTubeOptions) GetShorts() bool {
	if x != nil {
		return x.Shorts
	}
	return false
}

func (x *YouTubeOptions) GetContainsSyntheticMedia() bool {
	if x != nil {
		return x.ContainsSyntheticMedia
	}
	return false
}

func (x *YouTubeOptions) GetPublishAt() string {
	if x != nil {
		return x.PublishAt
	}
	return ""
}

func (x *YouTubeOptions) GetSubTitleUrl() string {
	if x != nil {
		return x.SubTitleUrl
	}
	return ""
}

func (x *YouTubeOptions) GetSubTitleLanguage() string {
	if x != nil {
		return x.SubTitleLanguage
	}
	return ""
}

func (x *YouTubeOptions) GetSubTitleName() string {
	if x != nil {
		return x.SubTitleName
	}
	return ""
}

// Bluesky 特定发布选项
type BlueskyOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AltText []string `protobuf:"bytes,6,rep,name=altText,proto3" json:"altText"` // Array of alternative text for images or videos (accessibility feature for screen readers)
}

func (x *BlueskyOptions) Reset() {
	*x = BlueskyOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlueskyOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlueskyOptions) ProtoMessage() {}

func (x *BlueskyOptions) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlueskyOptions.ProtoReflect.Descriptor instead.
func (*BlueskyOptions) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{4}
}

func (x *BlueskyOptions) GetAltText() []string {
	if x != nil {
		return x.AltText
	}
	return nil
}

// 发布帖子到社交媒体平台
type PostRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Post              string            `protobuf:"bytes,1,opt,name=post,proto3" json:"post"`
	Platforms         []string          `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"`
	MediaUrls         []string          `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"`
	IsVideo           bool              `protobuf:"varint,4,opt,name=isVideo,proto3" json:"isVideo"`
	ScheduleDate      string            `protobuf:"bytes,5,opt,name=scheduleDate,proto3" json:"scheduleDate"`
	ValidateScheduled bool              `protobuf:"varint,6,opt,name=validateScheduled,proto3" json:"validateScheduled"`
	ShortenLinks      bool              `protobuf:"varint,7,opt,name=shortenLinks,proto3" json:"shortenLinks"`
	DisableComments   bool              `protobuf:"varint,8,opt,name=disableComments,proto3" json:"disableComments"`
	InstagramOptions  *InstagramOptions `protobuf:"bytes,9,opt,name=instagramOptions,proto3" json:"instagramOptions"`
	TikTokOptions     *TikTokOptions    `protobuf:"bytes,10,opt,name=tikTokOptions,proto3" json:"tikTokOptions"`
	ProfileKey        string            `protobuf:"bytes,11,opt,name=profileKey,proto3" json:"profileKey"`
	YouTubeOptions    *YouTubeOptions   `protobuf:"bytes,12,opt,name=youTubeOptions,proto3" json:"youTubeOptions"`
	BlueskyOptions    *BlueskyOptions   `protobuf:"bytes,13,opt,name=blueskyOptions,proto3" json:"blueskyOptions"`
}

func (x *PostRequest) Reset() {
	*x = PostRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostRequest) ProtoMessage() {}

func (x *PostRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostRequest.ProtoReflect.Descriptor instead.
func (*PostRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{5}
}

func (x *PostRequest) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *PostRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *PostRequest) GetMediaUrls() []string {
	if x != nil {
		return x.MediaUrls
	}
	return nil
}

func (x *PostRequest) GetIsVideo() bool {
	if x != nil {
		return x.IsVideo
	}
	return false
}

func (x *PostRequest) GetScheduleDate() string {
	if x != nil {
		return x.ScheduleDate
	}
	return ""
}

func (x *PostRequest) GetValidateScheduled() bool {
	if x != nil {
		return x.ValidateScheduled
	}
	return false
}

func (x *PostRequest) GetShortenLinks() bool {
	if x != nil {
		return x.ShortenLinks
	}
	return false
}

func (x *PostRequest) GetDisableComments() bool {
	if x != nil {
		return x.DisableComments
	}
	return false
}

func (x *PostRequest) GetInstagramOptions() *InstagramOptions {
	if x != nil {
		return x.InstagramOptions
	}
	return nil
}

func (x *PostRequest) GetTikTokOptions() *TikTokOptions {
	if x != nil {
		return x.TikTokOptions
	}
	return nil
}

func (x *PostRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

func (x *PostRequest) GetYouTubeOptions() *YouTubeOptions {
	if x != nil {
		return x.YouTubeOptions
	}
	return nil
}

func (x *PostRequest) GetBlueskyOptions() *BlueskyOptions {
	if x != nil {
		return x.BlueskyOptions
	}
	return nil
}

// 单个平台的帖子ID响应
type PostId struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Id        string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Cid       string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"`
	PostUrl   string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"`
	Platform  string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
	Type      string `protobuf:"bytes,6,opt,name=type,proto3" json:"type"`
	Owner     string `protobuf:"bytes,7,opt,name=owner,proto3" json:"owner"`
	MediaId   string `protobuf:"bytes,8,opt,name=mediaId,proto3" json:"mediaId"`
	Ended     string `protobuf:"bytes,9,opt,name=ended,proto3" json:"ended"`
	IdShare   string `protobuf:"bytes,10,opt,name=idShare,proto3" json:"idShare"`
	IsVideo   bool   `protobuf:"varint,11,opt,name=isVideo,proto3" json:"isVideo"`
	UsedQuota int32  `protobuf:"varint,12,opt,name=usedQuota,proto3" json:"usedQuota"`
}

func (x *PostId) Reset() {
	*x = PostId{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostId) ProtoMessage() {}

func (x *PostId) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostId.ProtoReflect.Descriptor instead.
func (*PostId) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{6}
}

func (x *PostId) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *PostId) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PostId) GetCid() string {
	if x != nil {
		return x.Cid
	}
	return ""
}

func (x *PostId) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

func (x *PostId) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *PostId) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *PostId) GetOwner() string {
	if x != nil {
		return x.Owner
	}
	return ""
}

func (x *PostId) GetMediaId() string {
	if x != nil {
		return x.MediaId
	}
	return ""
}

func (x *PostId) GetEnded() string {
	if x != nil {
		return x.Ended
	}
	return ""
}

func (x *PostId) GetIdShare() string {
	if x != nil {
		return x.IdShare
	}
	return ""
}

func (x *PostId) GetIsVideo() bool {
	if x != nil {
		return x.IsVideo
	}
	return false
}

func (x *PostId) GetUsedQuota() int32 {
	if x != nil {
		return x.UsedQuota
	}
	return 0
}

// 帖子项（使用 profile key 时的响应格式）
type PostItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status       string    `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Errors       []string  `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"`
	PostIds      []*PostId `protobuf:"bytes,3,rep,name=postIds,proto3" json:"postIds"`
	Id           string    `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
	RefId        string    `protobuf:"bytes,5,opt,name=refId,proto3" json:"refId"`
	ProfileTitle string    `protobuf:"bytes,6,opt,name=profileTitle,proto3" json:"profileTitle"`
	Post         string    `protobuf:"bytes,7,opt,name=post,proto3" json:"post"`
	TikTokId     string    `protobuf:"bytes,8,opt,name=tikTokId,proto3" json:"tikTokId"` // TikTok 特定的 ID
}

func (x *PostItem) Reset() {
	*x = PostItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostItem) ProtoMessage() {}

func (x *PostItem) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostItem.ProtoReflect.Descriptor instead.
func (*PostItem) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{7}
}

func (x *PostItem) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *PostItem) GetErrors() []string {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *PostItem) GetPostIds() []*PostId {
	if x != nil {
		return x.PostIds
	}
	return nil
}

func (x *PostItem) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PostItem) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *PostItem) GetProfileTitle() string {
	if x != nil {
		return x.ProfileTitle
	}
	return ""
}

func (x *PostItem) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *PostItem) GetTikTokId() string {
	if x != nil {
		return x.TikTokId
	}
	return ""
}

// 发布帖子响应
type PostResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status string      `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Posts  []*PostItem `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"`
	// 兼容旧版本响应格式（不使用 profile key 时）
	Errors      []string  `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors"`
	PostIds     []*PostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"`
	Id          string    `protobuf:"bytes,5,opt,name=id,proto3" json:"id"`
	IsValidated bool      `protobuf:"varint,6,opt,name=isValidated,json=validate,proto3" json:"isValidated"` // validateScheduled 请求的验证结果
}

func (x *PostResponse) Reset() {
	*x = PostResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostResponse) ProtoMessage() {}

func (x *PostResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostResponse.ProtoReflect.Descriptor instead.
func (*PostResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{8}
}

func (x *PostResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *PostResponse) GetPosts() []*PostItem {
	if x != nil {
		return x.Posts
	}
	return nil
}

func (x *PostResponse) GetErrors() []string {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *PostResponse) GetPostIds() []*PostId {
	if x != nil {
		return x.PostIds
	}
	return nil
}

func (x *PostResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PostResponse) GetIsValidated() bool {
	if x != nil {
		return x.IsValidated
	}
	return false
}

// 获取帖子请求
type GetPostRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetPostRequest) Reset() {
	*x = GetPostRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPostRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPostRequest) ProtoMessage() {}

func (x *GetPostRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPostRequest.ProtoReflect.Descriptor instead.
func (*GetPostRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{9}
}

func (x *GetPostRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetPostRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 获取帖子响应
type GetPostResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Created      string    `protobuf:"bytes,1,opt,name=created,proto3" json:"created"`
	Errors       []string  `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors"`
	Id           string    `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	MediaUrls    []string  `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"`
	Platforms    []string  `protobuf:"bytes,5,rep,name=platforms,proto3" json:"platforms"`
	Post         string    `protobuf:"bytes,6,opt,name=post,proto3" json:"post"`
	PostIds      []*PostId `protobuf:"bytes,7,rep,name=postIds,proto3" json:"postIds"`
	ProfileTitle string    `protobuf:"bytes,8,opt,name=profileTitle,proto3" json:"profileTitle"`
	RefId        string    `protobuf:"bytes,9,opt,name=refId,proto3" json:"refId"`
	ScheduleDate string    `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"`
	ShortenLinks bool      `protobuf:"varint,11,opt,name=shortenLinks,proto3" json:"shortenLinks"`
	Status       string    `protobuf:"bytes,12,opt,name=status,proto3" json:"status"`
	Type         string    `protobuf:"bytes,13,opt,name=type,proto3" json:"type"`
}

func (x *GetPostResponse) Reset() {
	*x = GetPostResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPostResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPostResponse) ProtoMessage() {}

func (x *GetPostResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPostResponse.ProtoReflect.Descriptor instead.
func (*GetPostResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{10}
}

func (x *GetPostResponse) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *GetPostResponse) GetErrors() []string {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *GetPostResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetPostResponse) GetMediaUrls() []string {
	if x != nil {
		return x.MediaUrls
	}
	return nil
}

func (x *GetPostResponse) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *GetPostResponse) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *GetPostResponse) GetPostIds() []*PostId {
	if x != nil {
		return x.PostIds
	}
	return nil
}

func (x *GetPostResponse) GetProfileTitle() string {
	if x != nil {
		return x.ProfileTitle
	}
	return ""
}

func (x *GetPostResponse) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *GetPostResponse) GetScheduleDate() string {
	if x != nil {
		return x.ScheduleDate
	}
	return ""
}

func (x *GetPostResponse) GetShortenLinks() bool {
	if x != nil {
		return x.ShortenLinks
	}
	return false
}

func (x *GetPostResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetPostResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// 获取用户详情请求
type GetUserRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ProfileKey       string `protobuf:"bytes,1,opt,name=profileKey,proto3" json:"profileKey"`
	InstagramDetails bool   `protobuf:"varint,2,opt,name=instagramDetails,proto3" json:"instagramDetails"`
}

func (x *GetUserRequest) Reset() {
	*x = GetUserRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserRequest) ProtoMessage() {}

func (x *GetUserRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUserRequest.ProtoReflect.Descriptor instead.
func (*GetUserRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{11}
}

func (x *GetUserRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

func (x *GetUserRequest) GetInstagramDetails() bool {
	if x != nil {
		return x.InstagramDetails
	}
	return false
}

// 时间戳
type Timestamp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Seconds     int64  `protobuf:"varint,1,opt,name=seconds,json=_seconds,proto3" json:"seconds"`
	Nanoseconds int64  `protobuf:"varint,2,opt,name=nanoseconds,json=_nanoseconds,proto3" json:"nanoseconds"`
	Utc         string `protobuf:"bytes,3,opt,name=utc,proto3" json:"utc"`
}

func (x *Timestamp) Reset() {
	*x = Timestamp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Timestamp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Timestamp) ProtoMessage() {}

func (x *Timestamp) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.
func (*Timestamp) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{12}
}

func (x *Timestamp) GetSeconds() int64 {
	if x != nil {
		return x.Seconds
	}
	return 0
}

func (x *Timestamp) GetNanoseconds() int64 {
	if x != nil {
		return x.Nanoseconds
	}
	return 0
}

func (x *Timestamp) GetUtc() string {
	if x != nil {
		return x.Utc
	}
	return ""
}

// Twitter 使用情况
type TwitterUsage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MonthlyUsage int32  `protobuf:"varint,1,opt,name=monthlyUsage,proto3" json:"monthlyUsage"`
	MonthlyLimit int32  `protobuf:"varint,2,opt,name=monthlyLimit,proto3" json:"monthlyLimit"`
	MonthlyReset string `protobuf:"bytes,3,opt,name=monthlyReset,proto3" json:"monthlyReset"`
}

func (x *TwitterUsage) Reset() {
	*x = TwitterUsage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterUsage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterUsage) ProtoMessage() {}

func (x *TwitterUsage) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterUsage.ProtoReflect.Descriptor instead.
func (*TwitterUsage) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{13}
}

func (x *TwitterUsage) GetMonthlyUsage() int32 {
	if x != nil {
		return x.MonthlyUsage
	}
	return 0
}

func (x *TwitterUsage) GetMonthlyLimit() int32 {
	if x != nil {
		return x.MonthlyLimit
	}
	return 0
}

func (x *TwitterUsage) GetMonthlyReset() string {
	if x != nil {
		return x.MonthlyReset
	}
	return ""
}

// 社交媒体账户显示名称和详情
type DisplayName struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Created                      string        `protobuf:"bytes,1,opt,name=created,proto3" json:"created"`
	DisplayName                  string        `protobuf:"bytes,2,opt,name=displayName,proto3" json:"displayName"`
	Id                           string        `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	Platform                     string        `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"`
	ProfileUrl                   string        `protobuf:"bytes,5,opt,name=profileUrl,proto3" json:"profileUrl"`
	UserImage                    string        `protobuf:"bytes,6,opt,name=userImage,proto3" json:"userImage"`
	Username                     string        `protobuf:"bytes,7,opt,name=username,proto3" json:"username"`
	Description                  string        `protobuf:"bytes,8,opt,name=description,proto3" json:"description"`
	MessagingActive              bool          `protobuf:"varint,9,opt,name=messagingActive,proto3" json:"messagingActive"`
	PageName                     string        `protobuf:"bytes,10,opt,name=pageName,proto3" json:"pageName"`
	UserId                       string        `protobuf:"bytes,11,opt,name=userId,proto3" json:"userId"`
	MapsUrl                      string        `protobuf:"bytes,12,opt,name=mapsUrl,proto3" json:"mapsUrl"`
	PlaceId                      string        `protobuf:"bytes,13,opt,name=placeId,proto3" json:"placeId"`
	ReviewUrl                    string        `protobuf:"bytes,14,opt,name=reviewUrl,proto3" json:"reviewUrl"`
	IgId                         string        `protobuf:"bytes,15,opt,name=igId,proto3" json:"igId"`
	Type                         string        `protobuf:"bytes,16,opt,name=type,proto3" json:"type"`
	UsedQuota                    int32         `protobuf:"varint,17,opt,name=usedQuota,proto3" json:"usedQuota"`
	RefreshDaysRemaining         int32         `protobuf:"varint,18,opt,name=refreshDaysRemaining,proto3" json:"refreshDaysRemaining"`
	RefreshRequired              string        `protobuf:"bytes,19,opt,name=refreshRequired,proto3" json:"refreshRequired"`
	IsEligibleForGeoRestrictions bool          `protobuf:"varint,20,opt,name=isEligibleForGeoRestrictions,proto3" json:"isEligibleForGeoRestrictions"`
	IsVerified                   bool          `protobuf:"varint,21,opt,name=isVerified,proto3" json:"isVerified"`
	SubscriptionType             string        `protobuf:"bytes,22,opt,name=subscriptionType,proto3" json:"subscriptionType"`
	TwitterUsage                 *TwitterUsage `protobuf:"bytes,23,opt,name=twitterUsage,proto3" json:"twitterUsage"`
	VerifiedType                 string        `protobuf:"bytes,24,opt,name=verifiedType,proto3" json:"verifiedType"`
}

func (x *DisplayName) Reset() {
	*x = DisplayName{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DisplayName) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DisplayName) ProtoMessage() {}

func (x *DisplayName) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DisplayName.ProtoReflect.Descriptor instead.
func (*DisplayName) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{14}
}

func (x *DisplayName) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *DisplayName) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *DisplayName) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *DisplayName) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *DisplayName) GetProfileUrl() string {
	if x != nil {
		return x.ProfileUrl
	}
	return ""
}

func (x *DisplayName) GetUserImage() string {
	if x != nil {
		return x.UserImage
	}
	return ""
}

func (x *DisplayName) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *DisplayName) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *DisplayName) GetMessagingActive() bool {
	if x != nil {
		return x.MessagingActive
	}
	return false
}

func (x *DisplayName) GetPageName() string {
	if x != nil {
		return x.PageName
	}
	return ""
}

func (x *DisplayName) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *DisplayName) GetMapsUrl() string {
	if x != nil {
		return x.MapsUrl
	}
	return ""
}

func (x *DisplayName) GetPlaceId() string {
	if x != nil {
		return x.PlaceId
	}
	return ""
}

func (x *DisplayName) GetReviewUrl() string {
	if x != nil {
		return x.ReviewUrl
	}
	return ""
}

func (x *DisplayName) GetIgId() string {
	if x != nil {
		return x.IgId
	}
	return ""
}

func (x *DisplayName) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *DisplayName) GetUsedQuota() int32 {
	if x != nil {
		return x.UsedQuota
	}
	return 0
}

func (x *DisplayName) GetRefreshDaysRemaining() int32 {
	if x != nil {
		return x.RefreshDaysRemaining
	}
	return 0
}

func (x *DisplayName) GetRefreshRequired() string {
	if x != nil {
		return x.RefreshRequired
	}
	return ""
}

func (x *DisplayName) GetIsEligibleForGeoRestrictions() bool {
	if x != nil {
		return x.IsEligibleForGeoRestrictions
	}
	return false
}

func (x *DisplayName) GetIsVerified() bool {
	if x != nil {
		return x.IsVerified
	}
	return false
}

func (x *DisplayName) GetSubscriptionType() string {
	if x != nil {
		return x.SubscriptionType
	}
	return ""
}

func (x *DisplayName) GetTwitterUsage() *TwitterUsage {
	if x != nil {
		return x.TwitterUsage
	}
	return nil
}

func (x *DisplayName) GetVerifiedType() string {
	if x != nil {
		return x.VerifiedType
	}
	return ""
}

// 获取用户详情响应
type GetUserResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ActiveSocialAccounts              []string       `protobuf:"bytes,1,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"`
	Created                           *Timestamp     `protobuf:"bytes,2,opt,name=created,proto3" json:"created"`
	DisplayNames                      []*DisplayName `protobuf:"bytes,3,rep,name=displayNames,proto3" json:"displayNames"`
	Email                             string         `protobuf:"bytes,4,opt,name=email,proto3" json:"email"`
	LastApiCall                       string         `protobuf:"bytes,5,opt,name=lastApiCall,proto3" json:"lastApiCall"`
	MessagingConversationMonthlyCount int32          `protobuf:"varint,6,opt,name=messagingConversationMonthlyCount,proto3" json:"messagingConversationMonthlyCount"`
	MessagingEnabled                  bool           `protobuf:"varint,7,opt,name=messagingEnabled,proto3" json:"messagingEnabled"`
	MonthlyApiCalls                   int32          `protobuf:"varint,8,opt,name=monthlyApiCalls,proto3" json:"monthlyApiCalls"`
	MonthlyPostCount                  int32          `protobuf:"varint,9,opt,name=monthlyPostCount,proto3" json:"monthlyPostCount"`
	MonthlyPostQuota                  int32          `protobuf:"varint,10,opt,name=monthlyPostQuota,proto3" json:"monthlyPostQuota"`
	MonthlyApiCallsQuota              int32          `protobuf:"varint,11,opt,name=monthlyApiCallsQuota,proto3" json:"monthlyApiCallsQuota"`
	RefId                             string         `protobuf:"bytes,12,opt,name=refId,proto3" json:"refId"`
	Title                             string         `protobuf:"bytes,13,opt,name=title,proto3" json:"title"`
	LastUpdated                       string         `protobuf:"bytes,14,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate                        string         `protobuf:"bytes,15,opt,name=nextUpdate,proto3" json:"nextUpdate"`
}

func (x *GetUserResponse) Reset() {
	*x = GetUserResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetUserResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetUserResponse) ProtoMessage() {}

func (x *GetUserResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetUserResponse.ProtoReflect.Descriptor instead.
func (*GetUserResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{15}
}

func (x *GetUserResponse) GetActiveSocialAccounts() []string {
	if x != nil {
		return x.ActiveSocialAccounts
	}
	return nil
}

func (x *GetUserResponse) GetCreated() *Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *GetUserResponse) GetDisplayNames() []*DisplayName {
	if x != nil {
		return x.DisplayNames
	}
	return nil
}

func (x *GetUserResponse) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *GetUserResponse) GetLastApiCall() string {
	if x != nil {
		return x.LastApiCall
	}
	return ""
}

func (x *GetUserResponse) GetMessagingConversationMonthlyCount() int32 {
	if x != nil {
		return x.MessagingConversationMonthlyCount
	}
	return 0
}

func (x *GetUserResponse) GetMessagingEnabled() bool {
	if x != nil {
		return x.MessagingEnabled
	}
	return false
}

func (x *GetUserResponse) GetMonthlyApiCalls() int32 {
	if x != nil {
		return x.MonthlyApiCalls
	}
	return 0
}

func (x *GetUserResponse) GetMonthlyPostCount() int32 {
	if x != nil {
		return x.MonthlyPostCount
	}
	return 0
}

func (x *GetUserResponse) GetMonthlyPostQuota() int32 {
	if x != nil {
		return x.MonthlyPostQuota
	}
	return 0
}

func (x *GetUserResponse) GetMonthlyApiCallsQuota() int32 {
	if x != nil {
		return x.MonthlyApiCallsQuota
	}
	return 0
}

func (x *GetUserResponse) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *GetUserResponse) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *GetUserResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *GetUserResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

// 创建用户配置请求
type CreateProfileRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title           string   `protobuf:"bytes,1,opt,name=title,proto3" json:"title"`
	MessagingActive bool     `protobuf:"varint,2,opt,name=messagingActive,proto3" json:"messagingActive"`
	HideTopHeader   bool     `protobuf:"varint,3,opt,name=hideTopHeader,proto3" json:"hideTopHeader"`
	TopHeader       string   `protobuf:"bytes,4,opt,name=topHeader,proto3" json:"topHeader"`
	DisableSocial   []string `protobuf:"bytes,5,rep,name=disableSocial,proto3" json:"disableSocial"`
	Team            bool     `protobuf:"varint,6,opt,name=team,proto3" json:"team"`
	Email           string   `protobuf:"bytes,7,opt,name=email,proto3" json:"email"`
	SubHeader       string   `protobuf:"bytes,8,opt,name=subHeader,proto3" json:"subHeader"`
	Tags            []string `protobuf:"bytes,9,rep,name=tags,proto3" json:"tags"`
}

func (x *CreateProfileRequest) Reset() {
	*x = CreateProfileRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateProfileRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateProfileRequest) ProtoMessage() {}

func (x *CreateProfileRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateProfileRequest.ProtoReflect.Descriptor instead.
func (*CreateProfileRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{16}
}

func (x *CreateProfileRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateProfileRequest) GetMessagingActive() bool {
	if x != nil {
		return x.MessagingActive
	}
	return false
}

func (x *CreateProfileRequest) GetHideTopHeader() bool {
	if x != nil {
		return x.HideTopHeader
	}
	return false
}

func (x *CreateProfileRequest) GetTopHeader() string {
	if x != nil {
		return x.TopHeader
	}
	return ""
}

func (x *CreateProfileRequest) GetDisableSocial() []string {
	if x != nil {
		return x.DisableSocial
	}
	return nil
}

func (x *CreateProfileRequest) GetTeam() bool {
	if x != nil {
		return x.Team
	}
	return false
}

func (x *CreateProfileRequest) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *CreateProfileRequest) GetSubHeader() string {
	if x != nil {
		return x.SubHeader
	}
	return ""
}

func (x *CreateProfileRequest) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

// 创建用户配置响应
type CreateProfileResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Title           string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"`
	RefId           string `protobuf:"bytes,3,opt,name=refId,proto3" json:"refId"`
	ProfileKey      string `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"`
	MessagingActive bool   `protobuf:"varint,5,opt,name=messagingActive,proto3" json:"messagingActive"`
}

func (x *CreateProfileResponse) Reset() {
	*x = CreateProfileResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateProfileResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateProfileResponse) ProtoMessage() {}

func (x *CreateProfileResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateProfileResponse.ProtoReflect.Descriptor instead.
func (*CreateProfileResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{17}
}

func (x *CreateProfileResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *CreateProfileResponse) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *CreateProfileResponse) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *CreateProfileResponse) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

func (x *CreateProfileResponse) GetMessagingActive() bool {
	if x != nil {
		return x.MessagingActive
	}
	return false
}

// 获取用户配置列表请求
type GetProfilesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Title                        string   `protobuf:"bytes,1,opt,name=title,proto3" json:"title"`
	RefId                        string   `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"`
	HasActiveSocialAccounts      bool     `protobuf:"varint,3,opt,name=hasActiveSocialAccounts,proto3" json:"hasActiveSocialAccounts"`
	IncludesActiveSocialAccounts []string `protobuf:"bytes,4,rep,name=includesActiveSocialAccounts,proto3" json:"includesActiveSocialAccounts"`
	// Types that are assignable to ActionLog:
	//
	//	*GetProfilesRequest_ActionLogBool
	//	*GetProfilesRequest_ActionLogInt
	ActionLog isGetProfilesRequest_ActionLog `protobuf_oneof:"actionLog"`
	Limit     int32                          `protobuf:"varint,7,opt,name=limit,proto3" json:"limit"`
	Cursor    string                         `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor"`
}

func (x *GetProfilesRequest) Reset() {
	*x = GetProfilesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetProfilesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProfilesRequest) ProtoMessage() {}

func (x *GetProfilesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetProfilesRequest.ProtoReflect.Descriptor instead.
func (*GetProfilesRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{18}
}

func (x *GetProfilesRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *GetProfilesRequest) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *GetProfilesRequest) GetHasActiveSocialAccounts() bool {
	if x != nil {
		return x.HasActiveSocialAccounts
	}
	return false
}

func (x *GetProfilesRequest) GetIncludesActiveSocialAccounts() []string {
	if x != nil {
		return x.IncludesActiveSocialAccounts
	}
	return nil
}

func (m *GetProfilesRequest) GetActionLog() isGetProfilesRequest_ActionLog {
	if m != nil {
		return m.ActionLog
	}
	return nil
}

func (x *GetProfilesRequest) GetActionLogBool() bool {
	if x, ok := x.GetActionLog().(*GetProfilesRequest_ActionLogBool); ok {
		return x.ActionLogBool
	}
	return false
}

func (x *GetProfilesRequest) GetActionLogInt() int32 {
	if x, ok := x.GetActionLog().(*GetProfilesRequest_ActionLogInt); ok {
		return x.ActionLogInt
	}
	return 0
}

func (x *GetProfilesRequest) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *GetProfilesRequest) GetCursor() string {
	if x != nil {
		return x.Cursor
	}
	return ""
}

type isGetProfilesRequest_ActionLog interface {
	isGetProfilesRequest_ActionLog()
}

type GetProfilesRequest_ActionLogBool struct {
	ActionLogBool bool `protobuf:"varint,5,opt,name=actionLogBool,proto3,oneof"`
}

type GetProfilesRequest_ActionLogInt struct {
	ActionLogInt int32 `protobuf:"varint,6,opt,name=actionLogInt,proto3,oneof"`
}

func (*GetProfilesRequest_ActionLogBool) isGetProfilesRequest_ActionLog() {}

func (*GetProfilesRequest_ActionLogInt) isGetProfilesRequest_ActionLog() {}

// 用户配置项
type ProfileItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status               string     `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Title                string     `protobuf:"bytes,2,opt,name=title,proto3" json:"title"`
	DisplayTitle         string     `protobuf:"bytes,3,opt,name=displayTitle,proto3" json:"displayTitle"`
	Created              *Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	CreatedUTC           string     `protobuf:"bytes,5,opt,name=createdUTC,proto3" json:"createdUTC"`
	RefId                string     `protobuf:"bytes,6,opt,name=refId,proto3" json:"refId"`
	ActiveSocialAccounts []string   `protobuf:"bytes,7,rep,name=activeSocialAccounts,proto3" json:"activeSocialAccounts"`
	Suspended            bool       `protobuf:"varint,8,opt,name=suspended,proto3" json:"suspended"`
}

func (x *ProfileItem) Reset() {
	*x = ProfileItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProfileItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProfileItem) ProtoMessage() {}

func (x *ProfileItem) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProfileItem.ProtoReflect.Descriptor instead.
func (*ProfileItem) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{19}
}

func (x *ProfileItem) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *ProfileItem) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *ProfileItem) GetDisplayTitle() string {
	if x != nil {
		return x.DisplayTitle
	}
	return ""
}

func (x *ProfileItem) GetCreated() *Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *ProfileItem) GetCreatedUTC() string {
	if x != nil {
		return x.CreatedUTC
	}
	return ""
}

func (x *ProfileItem) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *ProfileItem) GetActiveSocialAccounts() []string {
	if x != nil {
		return x.ActiveSocialAccounts
	}
	return nil
}

func (x *ProfileItem) GetSuspended() bool {
	if x != nil {
		return x.Suspended
	}
	return false
}

// 分页信息
type Pagination struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HasMore    bool   `protobuf:"varint,1,opt,name=hasMore,proto3" json:"hasMore"`
	NextCursor string `protobuf:"bytes,2,opt,name=nextCursor,proto3" json:"nextCursor"`
	Limit      int32  `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"`
}

func (x *Pagination) Reset() {
	*x = Pagination{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Pagination) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Pagination) ProtoMessage() {}

func (x *Pagination) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Pagination.ProtoReflect.Descriptor instead.
func (*Pagination) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{20}
}

func (x *Pagination) GetHasMore() bool {
	if x != nil {
		return x.HasMore
	}
	return false
}

func (x *Pagination) GetNextCursor() string {
	if x != nil {
		return x.NextCursor
	}
	return ""
}

func (x *Pagination) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

// 获取用户配置列表响应
type GetProfilesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Profiles    []*ProfileItem `protobuf:"bytes,1,rep,name=profiles,proto3" json:"profiles"`
	Count       int32          `protobuf:"varint,2,opt,name=count,proto3" json:"count"`
	LastUpdated string         `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate  string         `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"`
	Pagination  *Pagination    `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination"`
}

func (x *GetProfilesResponse) Reset() {
	*x = GetProfilesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetProfilesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProfilesResponse) ProtoMessage() {}

func (x *GetProfilesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetProfilesResponse.ProtoReflect.Descriptor instead.
func (*GetProfilesResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{21}
}

func (x *GetProfilesResponse) GetProfiles() []*ProfileItem {
	if x != nil {
		return x.Profiles
	}
	return nil
}

func (x *GetProfilesResponse) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *GetProfilesResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *GetProfilesResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

func (x *GetProfilesResponse) GetPagination() *Pagination {
	if x != nil {
		return x.Pagination
	}
	return nil
}

// 邮件配置对象
type Email struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	To      string `protobuf:"bytes,1,opt,name=to,proto3" json:"to"`
	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject"`
	Body    string `protobuf:"bytes,3,opt,name=body,proto3" json:"body"`
}

func (x *Email) Reset() {
	*x = Email{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Email) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Email) ProtoMessage() {}

func (x *Email) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Email.ProtoReflect.Descriptor instead.
func (*Email) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{22}
}

func (x *Email) GetTo() string {
	if x != nil {
		return x.To
	}
	return ""
}

func (x *Email) GetSubject() string {
	if x != nil {
		return x.Subject
	}
	return ""
}

func (x *Email) GetBody() string {
	if x != nil {
		return x.Body
	}
	return ""
}

// 生成JWT请求
type GenerateJWTRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Domain        string   `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain"`
	PrivateKey    string   `protobuf:"bytes,2,opt,name=privateKey,proto3" json:"privateKey"`
	ProfileKey    string   `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"`
	Logout        bool     `protobuf:"varint,4,opt,name=logout,proto3" json:"logout"`
	Redirect      string   `protobuf:"bytes,5,opt,name=redirect,proto3" json:"redirect"`
	AllowedSocial []string `protobuf:"bytes,6,rep,name=allowedSocial,proto3" json:"allowedSocial"`
	Verify        bool     `protobuf:"varint,7,opt,name=verify,proto3" json:"verify"`
	Base64        bool     `protobuf:"varint,8,opt,name=base64,proto3" json:"base64"`
	ExpiresIn     int32    `protobuf:"varint,9,opt,name=expiresIn,proto3" json:"expiresIn"`
	Email         *Email   `protobuf:"bytes,10,opt,name=email,proto3" json:"email"`
}

func (x *GenerateJWTRequest) Reset() {
	*x = GenerateJWTRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GenerateJWTRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GenerateJWTRequest) ProtoMessage() {}

func (x *GenerateJWTRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GenerateJWTRequest.ProtoReflect.Descriptor instead.
func (*GenerateJWTRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{23}
}

func (x *GenerateJWTRequest) GetDomain() string {
	if x != nil {
		return x.Domain
	}
	return ""
}

func (x *GenerateJWTRequest) GetPrivateKey() string {
	if x != nil {
		return x.PrivateKey
	}
	return ""
}

func (x *GenerateJWTRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

func (x *GenerateJWTRequest) GetLogout() bool {
	if x != nil {
		return x.Logout
	}
	return false
}

func (x *GenerateJWTRequest) GetRedirect() string {
	if x != nil {
		return x.Redirect
	}
	return ""
}

func (x *GenerateJWTRequest) GetAllowedSocial() []string {
	if x != nil {
		return x.AllowedSocial
	}
	return nil
}

func (x *GenerateJWTRequest) GetVerify() bool {
	if x != nil {
		return x.Verify
	}
	return false
}

func (x *GenerateJWTRequest) GetBase64() bool {
	if x != nil {
		return x.Base64
	}
	return false
}

func (x *GenerateJWTRequest) GetExpiresIn() int32 {
	if x != nil {
		return x.ExpiresIn
	}
	return 0
}

func (x *GenerateJWTRequest) GetEmail() *Email {
	if x != nil {
		return x.Email
	}
	return nil
}

// 生成JWT响应
type GenerateJWTResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Title     string `protobuf:"bytes,2,opt,name=title,proto3" json:"title"`
	Token     string `protobuf:"bytes,3,opt,name=token,proto3" json:"token"`
	Url       string `protobuf:"bytes,4,opt,name=url,proto3" json:"url"`
	EmailSent bool   `protobuf:"varint,5,opt,name=emailSent,proto3" json:"emailSent"`
	ExpiresIn string `protobuf:"bytes,6,opt,name=expiresIn,proto3" json:"expiresIn"`
}

func (x *GenerateJWTResponse) Reset() {
	*x = GenerateJWTResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GenerateJWTResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GenerateJWTResponse) ProtoMessage() {}

func (x *GenerateJWTResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GenerateJWTResponse.ProtoReflect.Descriptor instead.
func (*GenerateJWTResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{24}
}

func (x *GenerateJWTResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GenerateJWTResponse) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *GenerateJWTResponse) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *GenerateJWTResponse) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *GenerateJWTResponse) GetEmailSent() bool {
	if x != nil {
		return x.EmailSent
	}
	return false
}

func (x *GenerateJWTResponse) GetExpiresIn() string {
	if x != nil {
		return x.ExpiresIn
	}
	return ""
}

// 历史记录中的帖子 ID
type HistoryPostId struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status   string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Id       string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform"`
	PostUrl  string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"`
	IsVideo  bool   `protobuf:"varint,5,opt,name=isVideo,proto3" json:"isVideo"`
}

func (x *HistoryPostId) Reset() {
	*x = HistoryPostId{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HistoryPostId) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HistoryPostId) ProtoMessage() {}

func (x *HistoryPostId) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HistoryPostId.ProtoReflect.Descriptor instead.
func (*HistoryPostId) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{25}
}

func (x *HistoryPostId) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *HistoryPostId) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *HistoryPostId) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *HistoryPostId) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

func (x *HistoryPostId) GetIsVideo() bool {
	if x != nil {
		return x.IsVideo
	}
	return false
}

// 历史记录项
type HistoryItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id               string           `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Post             string           `protobuf:"bytes,2,opt,name=post,proto3" json:"post"`
	Platforms        []string         `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"`
	PostIds          []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"`
	Errors           []string         `protobuf:"bytes,5,rep,name=errors,proto3" json:"errors"`
	Type             string           `protobuf:"bytes,6,opt,name=type,proto3" json:"type"`
	Notes            string           `protobuf:"bytes,7,opt,name=notes,proto3" json:"notes"`
	Created          string           `protobuf:"bytes,8,opt,name=created,proto3" json:"created"`
	Status           string           `protobuf:"bytes,9,opt,name=status,proto3" json:"status"`
	ScheduleDate     *Timestamp       `protobuf:"bytes,10,opt,name=scheduleDate,proto3" json:"scheduleDate"`
	Approved         bool             `protobuf:"varint,11,opt,name=approved,proto3" json:"approved"`
	ApprovedBy       string           `protobuf:"bytes,12,opt,name=approvedBy,proto3" json:"approvedBy"`
	ApprovedDate     string           `protobuf:"bytes,13,opt,name=approvedDate,proto3" json:"approvedDate"`
	RejectedBy       string           `protobuf:"bytes,14,opt,name=rejectedBy,proto3" json:"rejectedBy"`
	RejectedDate     string           `protobuf:"bytes,15,opt,name=rejectedDate,proto3" json:"rejectedDate"`
	RequiresApproval bool             `protobuf:"varint,16,opt,name=requiresApproval,proto3" json:"requiresApproval"`
	ProfileTitle     string           `protobuf:"bytes,17,opt,name=profileTitle,proto3" json:"profileTitle"`
	RefId            string           `protobuf:"bytes,18,opt,name=refId,proto3" json:"refId"`
	MediaUrls        []string         `protobuf:"bytes,19,rep,name=mediaUrls,proto3" json:"mediaUrls"`
	ShortenLinks     bool             `protobuf:"varint,20,opt,name=shortenLinks,proto3" json:"shortenLinks"`
}

func (x *HistoryItem) Reset() {
	*x = HistoryItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HistoryItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HistoryItem) ProtoMessage() {}

func (x *HistoryItem) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HistoryItem.ProtoReflect.Descriptor instead.
func (*HistoryItem) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{26}
}

func (x *HistoryItem) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *HistoryItem) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *HistoryItem) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *HistoryItem) GetPostIds() []*HistoryPostId {
	if x != nil {
		return x.PostIds
	}
	return nil
}

func (x *HistoryItem) GetErrors() []string {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *HistoryItem) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *HistoryItem) GetNotes() string {
	if x != nil {
		return x.Notes
	}
	return ""
}

func (x *HistoryItem) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *HistoryItem) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *HistoryItem) GetScheduleDate() *Timestamp {
	if x != nil {
		return x.ScheduleDate
	}
	return nil
}

func (x *HistoryItem) GetApproved() bool {
	if x != nil {
		return x.Approved
	}
	return false
}

func (x *HistoryItem) GetApprovedBy() string {
	if x != nil {
		return x.ApprovedBy
	}
	return ""
}

func (x *HistoryItem) GetApprovedDate() string {
	if x != nil {
		return x.ApprovedDate
	}
	return ""
}

func (x *HistoryItem) GetRejectedBy() string {
	if x != nil {
		return x.RejectedBy
	}
	return ""
}

func (x *HistoryItem) GetRejectedDate() string {
	if x != nil {
		return x.RejectedDate
	}
	return ""
}

func (x *HistoryItem) GetRequiresApproval() bool {
	if x != nil {
		return x.RequiresApproval
	}
	return false
}

func (x *HistoryItem) GetProfileTitle() string {
	if x != nil {
		return x.ProfileTitle
	}
	return ""
}

func (x *HistoryItem) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *HistoryItem) GetMediaUrls() []string {
	if x != nil {
		return x.MediaUrls
	}
	return nil
}

func (x *HistoryItem) GetShortenLinks() bool {
	if x != nil {
		return x.ShortenLinks
	}
	return false
}

// 获取帖子历史记录请求
type GetHistoryRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	StartDate    string   `protobuf:"bytes,1,opt,name=startDate,proto3" json:"startDate"`
	EndDate      string   `protobuf:"bytes,2,opt,name=endDate,proto3" json:"endDate"`
	Limit        int32    `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"`
	Platforms    []string `protobuf:"bytes,4,rep,name=platforms,proto3" json:"platforms"`
	LastDays     int32    `protobuf:"varint,5,opt,name=lastDays,proto3" json:"lastDays"`
	Status       string   `protobuf:"bytes,6,opt,name=status,proto3" json:"status"`
	Type         string   `protobuf:"bytes,7,opt,name=type,proto3" json:"type"`
	AutoRepostId string   `protobuf:"bytes,8,opt,name=autoRepostId,proto3" json:"autoRepostId"`
	ProfileKey   string   `protobuf:"bytes,9,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetHistoryRequest) Reset() {
	*x = GetHistoryRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetHistoryRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetHistoryRequest) ProtoMessage() {}

func (x *GetHistoryRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetHistoryRequest.ProtoReflect.Descriptor instead.
func (*GetHistoryRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{27}
}

func (x *GetHistoryRequest) GetStartDate() string {
	if x != nil {
		return x.StartDate
	}
	return ""
}

func (x *GetHistoryRequest) GetEndDate() string {
	if x != nil {
		return x.EndDate
	}
	return ""
}

func (x *GetHistoryRequest) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *GetHistoryRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *GetHistoryRequest) GetLastDays() int32 {
	if x != nil {
		return x.LastDays
	}
	return 0
}

func (x *GetHistoryRequest) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetHistoryRequest) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *GetHistoryRequest) GetAutoRepostId() string {
	if x != nil {
		return x.AutoRepostId
	}
	return ""
}

func (x *GetHistoryRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 获取帖子历史记录响应
type GetHistoryResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	History     []*HistoryItem `protobuf:"bytes,1,rep,name=history,proto3" json:"history"`
	RefId       string         `protobuf:"bytes,2,opt,name=refId,proto3" json:"refId"`
	Count       int32          `protobuf:"varint,3,opt,name=count,proto3" json:"count"`
	LastUpdated string         `protobuf:"bytes,4,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate  string         `protobuf:"bytes,5,opt,name=nextUpdate,proto3" json:"nextUpdate"`
}

func (x *GetHistoryResponse) Reset() {
	*x = GetHistoryResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetHistoryResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetHistoryResponse) ProtoMessage() {}

func (x *GetHistoryResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetHistoryResponse.ProtoReflect.Descriptor instead.
func (*GetHistoryResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{28}
}

func (x *GetHistoryResponse) GetHistory() []*HistoryItem {
	if x != nil {
		return x.History
	}
	return nil
}

func (x *GetHistoryResponse) GetRefId() string {
	if x != nil {
		return x.RefId
	}
	return ""
}

func (x *GetHistoryResponse) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *GetHistoryResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *GetHistoryResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

// 根据ID获取帖子历史记录请求
type GetHistoryByIdRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id             string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	SearchAllPosts bool   `protobuf:"varint,2,opt,name=searchAllPosts,proto3" json:"searchAllPosts"`
	ProfileKey     string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetHistoryByIdRequest) Reset() {
	*x = GetHistoryByIdRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetHistoryByIdRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetHistoryByIdRequest) ProtoMessage() {}

func (x *GetHistoryByIdRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetHistoryByIdRequest.ProtoReflect.Descriptor instead.
func (*GetHistoryByIdRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{29}
}

func (x *GetHistoryByIdRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetHistoryByIdRequest) GetSearchAllPosts() bool {
	if x != nil {
		return x.SearchAllPosts
	}
	return false
}

func (x *GetHistoryByIdRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 根据ID获取帖子历史记录响应
type GetHistoryByIdResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tier         string           `protobuf:"bytes,1,opt,name=tier,proto3" json:"tier"`
	Status       string           `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	MediaUrls    []string         `protobuf:"bytes,3,rep,name=mediaUrls,proto3" json:"mediaUrls"`
	PostIds      []*HistoryPostId `protobuf:"bytes,4,rep,name=postIds,proto3" json:"postIds"`
	Id           string           `protobuf:"bytes,5,opt,name=id,proto3" json:"id"`
	Errors       []string         `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors"`
	Platforms    []string         `protobuf:"bytes,7,rep,name=platforms,proto3" json:"platforms"`
	ScheduleDate *Timestamp       `protobuf:"bytes,8,opt,name=scheduleDate,proto3" json:"scheduleDate"`
	Created      string           `protobuf:"bytes,9,opt,name=created,proto3" json:"created"`
	ShortenLinks bool             `protobuf:"varint,10,opt,name=shortenLinks,proto3" json:"shortenLinks"`
	Post         string           `protobuf:"bytes,11,opt,name=post,proto3" json:"post"`
	Notes        string           `protobuf:"bytes,12,opt,name=notes,proto3" json:"notes"`
	Type         string           `protobuf:"bytes,13,opt,name=type,proto3" json:"type"`
}

func (x *GetHistoryByIdResponse) Reset() {
	*x = GetHistoryByIdResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetHistoryByIdResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetHistoryByIdResponse) ProtoMessage() {}

func (x *GetHistoryByIdResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[30]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetHistoryByIdResponse.ProtoReflect.Descriptor instead.
func (*GetHistoryByIdResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{30}
}

func (x *GetHistoryByIdResponse) GetTier() string {
	if x != nil {
		return x.Tier
	}
	return ""
}

func (x *GetHistoryByIdResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetHistoryByIdResponse) GetMediaUrls() []string {
	if x != nil {
		return x.MediaUrls
	}
	return nil
}

func (x *GetHistoryByIdResponse) GetPostIds() []*HistoryPostId {
	if x != nil {
		return x.PostIds
	}
	return nil
}

func (x *GetHistoryByIdResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetHistoryByIdResponse) GetErrors() []string {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *GetHistoryByIdResponse) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *GetHistoryByIdResponse) GetScheduleDate() *Timestamp {
	if x != nil {
		return x.ScheduleDate
	}
	return nil
}

func (x *GetHistoryByIdResponse) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *GetHistoryByIdResponse) GetShortenLinks() bool {
	if x != nil {
		return x.ShortenLinks
	}
	return false
}

func (x *GetHistoryByIdResponse) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *GetHistoryByIdResponse) GetNotes() string {
	if x != nil {
		return x.Notes
	}
	return ""
}

func (x *GetHistoryByIdResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// 平台帖子
type PlatformPost struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id        string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Post      string `protobuf:"bytes,2,opt,name=post,proto3" json:"post"`
	PostUrl   string `protobuf:"bytes,3,opt,name=postUrl,proto3" json:"postUrl"`
	Created   string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	CreatedAt string `protobuf:"bytes,5,opt,name=createdAt,proto3" json:"createdAt"`
}

func (x *PlatformPost) Reset() {
	*x = PlatformPost{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PlatformPost) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PlatformPost) ProtoMessage() {}

func (x *PlatformPost) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[31]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PlatformPost.ProtoReflect.Descriptor instead.
func (*PlatformPost) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{31}
}

func (x *PlatformPost) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PlatformPost) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *PlatformPost) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

func (x *PlatformPost) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *PlatformPost) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

// 根据平台获取帖子历史记录请求
type GetHistoryByPlatformRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Platform   string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"`
	ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetHistoryByPlatformRequest) Reset() {
	*x = GetHistoryByPlatformRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetHistoryByPlatformRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetHistoryByPlatformRequest) ProtoMessage() {}

func (x *GetHistoryByPlatformRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[32]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetHistoryByPlatformRequest.ProtoReflect.Descriptor instead.
func (*GetHistoryByPlatformRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{32}
}

func (x *GetHistoryByPlatformRequest) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *GetHistoryByPlatformRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 根据平台获取帖子历史记录响应
type GetHistoryByPlatformResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status      string          `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Posts       []*PlatformPost `protobuf:"bytes,2,rep,name=posts,proto3" json:"posts"`
	LastUpdated string          `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate  string          `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"`
}

func (x *GetHistoryByPlatformResponse) Reset() {
	*x = GetHistoryByPlatformResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetHistoryByPlatformResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetHistoryByPlatformResponse) ProtoMessage() {}

func (x *GetHistoryByPlatformResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[33]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetHistoryByPlatformResponse.ProtoReflect.Descriptor instead.
func (*GetHistoryByPlatformResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{33}
}

func (x *GetHistoryByPlatformResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetHistoryByPlatformResponse) GetPosts() []*PlatformPost {
	if x != nil {
		return x.Posts
	}
	return nil
}

func (x *GetHistoryByPlatformResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *GetHistoryByPlatformResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

// 发送消息请求
type SendMessageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Platform    string   `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"`
	RecipientId string   `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"`
	Message     string   `protobuf:"bytes,3,opt,name=message,proto3" json:"message"`
	MediaUrls   []string `protobuf:"bytes,4,rep,name=mediaUrls,proto3" json:"mediaUrls"`
	ProfileKey  string   `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *SendMessageRequest) Reset() {
	*x = SendMessageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SendMessageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendMessageRequest) ProtoMessage() {}

func (x *SendMessageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[34]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead.
func (*SendMessageRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{34}
}

func (x *SendMessageRequest) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *SendMessageRequest) GetRecipientId() string {
	if x != nil {
		return x.RecipientId
	}
	return ""
}

func (x *SendMessageRequest) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *SendMessageRequest) GetMediaUrls() []string {
	if x != nil {
		return x.MediaUrls
	}
	return nil
}

func (x *SendMessageRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 消息项（用于批量消息响应中的单个消息）
type MessageItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status      string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	RecipientId string `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"`
	MessageId   string `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId"`
	Message     string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"`
	Type        string `protobuf:"bytes,5,opt,name=type,proto3" json:"type"`
	MediaUrl    string `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl"`
	Action      string `protobuf:"bytes,7,opt,name=action,proto3" json:"action"`
	Code        int32  `protobuf:"varint,8,opt,name=code,proto3" json:"code"`
}

func (x *MessageItem) Reset() {
	*x = MessageItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageItem) ProtoMessage() {}

func (x *MessageItem) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MessageItem.ProtoReflect.Descriptor instead.
func (*MessageItem) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{35}
}

func (x *MessageItem) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *MessageItem) GetRecipientId() string {
	if x != nil {
		return x.RecipientId
	}
	return ""
}

func (x *MessageItem) GetMessageId() string {
	if x != nil {
		return x.MessageId
	}
	return ""
}

func (x *MessageItem) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *MessageItem) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *MessageItem) GetMediaUrl() string {
	if x != nil {
		return x.MediaUrl
	}
	return ""
}

func (x *MessageItem) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *MessageItem) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

// 发送消息响应
type SendMessageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status      string         `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	RecipientId string         `protobuf:"bytes,2,opt,name=recipientId,proto3" json:"recipientId"`
	MessageId   string         `protobuf:"bytes,3,opt,name=messageId,proto3" json:"messageId"`
	Message     string         `protobuf:"bytes,4,opt,name=message,proto3" json:"message"` // 成功消息的内容或错误消息的内容（根据 status 判断）
	Type        string         `protobuf:"bytes,5,opt,name=type,proto3" json:"type"`
	MediaUrl    string         `protobuf:"bytes,6,opt,name=mediaUrl,proto3" json:"mediaUrl"`
	Action      string         `protobuf:"bytes,7,opt,name=action,proto3" json:"action"`
	Code        int32          `protobuf:"varint,8,opt,name=code,proto3" json:"code"`
	Messages    []*MessageItem `protobuf:"bytes,9,rep,name=messages,proto3" json:"messages"`
}

func (x *SendMessageResponse) Reset() {
	*x = SendMessageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SendMessageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendMessageResponse) ProtoMessage() {}

func (x *SendMessageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead.
func (*SendMessageResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{36}
}

func (x *SendMessageResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *SendMessageResponse) GetRecipientId() string {
	if x != nil {
		return x.RecipientId
	}
	return ""
}

func (x *SendMessageResponse) GetMessageId() string {
	if x != nil {
		return x.MessageId
	}
	return ""
}

func (x *SendMessageResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *SendMessageResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *SendMessageResponse) GetMediaUrl() string {
	if x != nil {
		return x.MediaUrl
	}
	return ""
}

func (x *SendMessageResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *SendMessageResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *SendMessageResponse) GetMessages() []*MessageItem {
	if x != nil {
		return x.Messages
	}
	return nil
}

// 获取消息请求
type GetMessagesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Platform          string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform"`
	Status            string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	ConversationId    string `protobuf:"bytes,3,opt,name=conversationId,proto3" json:"conversationId"`
	ConversationsOnly bool   `protobuf:"varint,4,opt,name=conversationsOnly,proto3" json:"conversationsOnly"`
	ProfileKey        string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetMessagesRequest) Reset() {
	*x = GetMessagesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetMessagesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMessagesRequest) ProtoMessage() {}

func (x *GetMessagesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[37]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMessagesRequest.ProtoReflect.Descriptor instead.
func (*GetMessagesRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{37}
}

func (x *GetMessagesRequest) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *GetMessagesRequest) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetMessagesRequest) GetConversationId() string {
	if x != nil {
		return x.ConversationId
	}
	return ""
}

func (x *GetMessagesRequest) GetConversationsOnly() bool {
	if x != nil {
		return x.ConversationsOnly
	}
	return false
}

func (x *GetMessagesRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 消息附件
type MessageAttachment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"`
	Url  string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"`
}

func (x *MessageAttachment) Reset() {
	*x = MessageAttachment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageAttachment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageAttachment) ProtoMessage() {}

func (x *MessageAttachment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[38]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MessageAttachment.ProtoReflect.Descriptor instead.
func (*MessageAttachment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{38}
}

func (x *MessageAttachment) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *MessageAttachment) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

// 消息发送者详情
type MessageSenderDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name         string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id           string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Picture      string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"`
	ProfileImage string `protobuf:"bytes,4,opt,name=profileImage,proto3" json:"profileImage"`
}

func (x *MessageSenderDetails) Reset() {
	*x = MessageSenderDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageSenderDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageSenderDetails) ProtoMessage() {}

func (x *MessageSenderDetails) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[39]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MessageSenderDetails.ProtoReflect.Descriptor instead.
func (*MessageSenderDetails) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{39}
}

func (x *MessageSenderDetails) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *MessageSenderDetails) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *MessageSenderDetails) GetPicture() string {
	if x != nil {
		return x.Picture
	}
	return ""
}

func (x *MessageSenderDetails) GetProfileImage() string {
	if x != nil {
		return x.ProfileImage
	}
	return ""
}

// 消息接收者详情
type MessageRecipientDetails struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id      string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"`
}

func (x *MessageRecipientDetails) Reset() {
	*x = MessageRecipientDetails{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageRecipientDetails) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageRecipientDetails) ProtoMessage() {}

func (x *MessageRecipientDetails) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[40]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MessageRecipientDetails.ProtoReflect.Descriptor instead.
func (*MessageRecipientDetails) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{40}
}

func (x *MessageRecipientDetails) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *MessageRecipientDetails) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *MessageRecipientDetails) GetPicture() string {
	if x != nil {
		return x.Picture
	}
	return ""
}

// 消息反应（map类型，在proto中用repeated MessageReaction表示）
type MessageReaction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"`
	Emoji  string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji"`
}

func (x *MessageReaction) Reset() {
	*x = MessageReaction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageReaction) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageReaction) ProtoMessage() {}

func (x *MessageReaction) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[41]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MessageReaction.ProtoReflect.Descriptor instead.
func (*MessageReaction) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{41}
}

func (x *MessageReaction) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *MessageReaction) GetEmoji() string {
	if x != nil {
		return x.Emoji
	}
	return ""
}

// 获取消息响应中的单个消息项
type GetMessagesItem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id               string                   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	SenderId         string                   `protobuf:"bytes,2,opt,name=senderId,proto3" json:"senderId"`
	SenderDetails    *MessageSenderDetails    `protobuf:"bytes,3,opt,name=senderDetails,proto3" json:"senderDetails"`
	RecipientId      string                   `protobuf:"bytes,4,opt,name=recipientId,proto3" json:"recipientId"`
	RecipientDetails *MessageRecipientDetails `protobuf:"bytes,5,opt,name=recipientDetails,proto3" json:"recipientDetails"`
	ConversationId   string                   `protobuf:"bytes,6,opt,name=conversationId,proto3" json:"conversationId"`
	Message          string                   `protobuf:"bytes,7,opt,name=message,proto3" json:"message"`
	Platform         string                   `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform"`
	Action           string                   `protobuf:"bytes,9,opt,name=action,proto3" json:"action"`
	Created          string                   `protobuf:"bytes,10,opt,name=created,proto3" json:"created"`
	Updated          string                   `protobuf:"bytes,11,opt,name=updated,proto3" json:"updated"`
	Attachments      []*MessageAttachment     `protobuf:"bytes,12,rep,name=attachments,proto3" json:"attachments"`
	Reactions        []*MessageReaction       `protobuf:"bytes,13,rep,name=reactions,proto3" json:"reactions"`
}

func (x *GetMessagesItem) Reset() {
	*x = GetMessagesItem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetMessagesItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMessagesItem) ProtoMessage() {}

func (x *GetMessagesItem) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[42]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMessagesItem.ProtoReflect.Descriptor instead.
func (*GetMessagesItem) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{42}
}

func (x *GetMessagesItem) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetMessagesItem) GetSenderId() string {
	if x != nil {
		return x.SenderId
	}
	return ""
}

func (x *GetMessagesItem) GetSenderDetails() *MessageSenderDetails {
	if x != nil {
		return x.SenderDetails
	}
	return nil
}

func (x *GetMessagesItem) GetRecipientId() string {
	if x != nil {
		return x.RecipientId
	}
	return ""
}

func (x *GetMessagesItem) GetRecipientDetails() *MessageRecipientDetails {
	if x != nil {
		return x.RecipientDetails
	}
	return nil
}

func (x *GetMessagesItem) GetConversationId() string {
	if x != nil {
		return x.ConversationId
	}
	return ""
}

func (x *GetMessagesItem) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *GetMessagesItem) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *GetMessagesItem) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *GetMessagesItem) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *GetMessagesItem) GetUpdated() string {
	if x != nil {
		return x.Updated
	}
	return ""
}

func (x *GetMessagesItem) GetAttachments() []*MessageAttachment {
	if x != nil {
		return x.Attachments
	}
	return nil
}

func (x *GetMessagesItem) GetReactions() []*MessageReaction {
	if x != nil {
		return x.Reactions
	}
	return nil
}

// 对话参与者
type ConversationParticipant struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id      string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Picture string `protobuf:"bytes,3,opt,name=picture,proto3" json:"picture"`
}

func (x *ConversationParticipant) Reset() {
	*x = ConversationParticipant{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConversationParticipant) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConversationParticipant) ProtoMessage() {}

func (x *ConversationParticipant) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[43]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ConversationParticipant.ProtoReflect.Descriptor instead.
func (*ConversationParticipant) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{43}
}

func (x *ConversationParticipant) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ConversationParticipant) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ConversationParticipant) GetPicture() string {
	if x != nil {
		return x.Picture
	}
	return ""
}

// 对话详情
type ConversationDetail struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id          string                   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Participant *ConversationParticipant `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant"`
	Status      string                   `protobuf:"bytes,3,opt,name=status,proto3" json:"status"`
	Watermark   int64                    `protobuf:"varint,4,opt,name=watermark,proto3" json:"watermark"`
}

func (x *ConversationDetail) Reset() {
	*x = ConversationDetail{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConversationDetail) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConversationDetail) ProtoMessage() {}

func (x *ConversationDetail) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[44]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ConversationDetail.ProtoReflect.Descriptor instead.
func (*ConversationDetail) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{44}
}

func (x *ConversationDetail) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ConversationDetail) GetParticipant() *ConversationParticipant {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *ConversationDetail) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *ConversationDetail) GetWatermark() int64 {
	if x != nil {
		return x.Watermark
	}
	return 0
}

// 获取消息响应
type GetMessagesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status               string                `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Messages             []*GetMessagesItem    `protobuf:"bytes,2,rep,name=messages,proto3" json:"messages"`
	LastUpdated          string                `protobuf:"bytes,3,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate           string                `protobuf:"bytes,4,opt,name=nextUpdate,proto3" json:"nextUpdate"`
	ConversationIds      []string              `protobuf:"bytes,5,rep,name=conversationIds,proto3" json:"conversationIds"`
	ConversationsDetails []*ConversationDetail `protobuf:"bytes,6,rep,name=conversationsDetails,proto3" json:"conversationsDetails"`
	Action               string                `protobuf:"bytes,7,opt,name=action,proto3" json:"action"`
	Code                 int32                 `protobuf:"varint,8,opt,name=code,proto3" json:"code"`
	ErrMsg               string                `protobuf:"bytes,9,opt,name=errMsg,json=message,proto3" json:"errMsg"` // 错误消息（JSON 字段名为 "message"，但 proto 字段名为 errMsg 以区分）
}

func (x *GetMessagesResponse) Reset() {
	*x = GetMessagesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetMessagesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMessagesResponse) ProtoMessage() {}

func (x *GetMessagesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[45]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMessagesResponse.ProtoReflect.Descriptor instead.
func (*GetMessagesResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{45}
}

func (x *GetMessagesResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetMessagesResponse) GetMessages() []*GetMessagesItem {
	if x != nil {
		return x.Messages
	}
	return nil
}

func (x *GetMessagesResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *GetMessagesResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

func (x *GetMessagesResponse) GetConversationIds() []string {
	if x != nil {
		return x.ConversationIds
	}
	return nil
}

func (x *GetMessagesResponse) GetConversationsDetails() []*ConversationDetail {
	if x != nil {
		return x.ConversationsDetails
	}
	return nil
}

func (x *GetMessagesResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *GetMessagesResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *GetMessagesResponse) GetErrMsg() string {
	if x != nil {
		return x.ErrMsg
	}
	return ""
}

// 发布评论请求
type PostCommentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id               string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Comment          string   `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"`
	Platforms        []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"`
	SearchPlatformId bool     `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId"`
	MediaUrls        []string `protobuf:"bytes,5,rep,name=mediaUrls,proto3" json:"mediaUrls"`
	ProfileKey       string   `protobuf:"bytes,6,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *PostCommentRequest) Reset() {
	*x = PostCommentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostCommentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostCommentRequest) ProtoMessage() {}

func (x *PostCommentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[46]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostCommentRequest.ProtoReflect.Descriptor instead.
func (*PostCommentRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{46}
}

func (x *PostCommentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PostCommentRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *PostCommentRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *PostCommentRequest) GetSearchPlatformId() bool {
	if x != nil {
		return x.SearchPlatformId
	}
	return false
}

func (x *PostCommentRequest) GetMediaUrls() []string {
	if x != nil {
		return x.MediaUrls
	}
	return nil
}

func (x *PostCommentRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// Instagram 平台评论响应
type InstagramCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Comment   string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"`
	Platform  string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"`
}

func (x *InstagramCommentResponse) Reset() {
	*x = InstagramCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramCommentResponse) ProtoMessage() {}

func (x *InstagramCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[47]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramCommentResponse.ProtoReflect.Descriptor instead.
func (*InstagramCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{47}
}

func (x *InstagramCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *InstagramCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *InstagramCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *InstagramCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// TikTok 平台评论响应
type TikTokCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Comment   string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"`
	Platform  string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"`
	VideoId   string `protobuf:"bytes,5,opt,name=videoId,proto3" json:"videoId"`
}

func (x *TikTokCommentResponse) Reset() {
	*x = TikTokCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TikTokCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TikTokCommentResponse) ProtoMessage() {}

func (x *TikTokCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[48]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TikTokCommentResponse.ProtoReflect.Descriptor instead.
func (*TikTokCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{48}
}

func (x *TikTokCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *TikTokCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TikTokCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *TikTokCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *TikTokCommentResponse) GetVideoId() string {
	if x != nil {
		return x.VideoId
	}
	return ""
}

// Bluesky 平台评论响应
type BlueskyCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Cid       string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid"`
	Comment   string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform  string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
	PostUrl   string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl"`
}

func (x *BlueskyCommentResponse) Reset() {
	*x = BlueskyCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlueskyCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlueskyCommentResponse) ProtoMessage() {}

func (x *BlueskyCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[49]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlueskyCommentResponse.ProtoReflect.Descriptor instead.
func (*BlueskyCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{49}
}

func (x *BlueskyCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *BlueskyCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *BlueskyCommentResponse) GetCid() string {
	if x != nil {
		return x.Cid
	}
	return ""
}

func (x *BlueskyCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *BlueskyCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *BlueskyCommentResponse) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

// Facebook 平台评论响应
type FacebookCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Comment   string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"`
	Platform  string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"`
}

func (x *FacebookCommentResponse) Reset() {
	*x = FacebookCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FacebookCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FacebookCommentResponse) ProtoMessage() {}

func (x *FacebookCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[50]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FacebookCommentResponse.ProtoReflect.Descriptor instead.
func (*FacebookCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{50}
}

func (x *FacebookCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *FacebookCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *FacebookCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *FacebookCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// LinkedIn 平台评论响应
type LinkedInCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status     string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId  string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Comment    string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"`
	CommentUrn string `protobuf:"bytes,4,opt,name=commentUrn,proto3" json:"commentUrn"`
	Platform   string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
}

func (x *LinkedInCommentResponse) Reset() {
	*x = LinkedInCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LinkedInCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkedInCommentResponse) ProtoMessage() {}

func (x *LinkedInCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[51]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkedInCommentResponse.ProtoReflect.Descriptor instead.
func (*LinkedInCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{51}
}

func (x *LinkedInCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *LinkedInCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *LinkedInCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *LinkedInCommentResponse) GetCommentUrn() string {
	if x != nil {
		return x.CommentUrn
	}
	return ""
}

func (x *LinkedInCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// Twitter/X 平台评论响应
type TwitterCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Comment   string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"`
	PostUrl   string `protobuf:"bytes,4,opt,name=postUrl,proto3" json:"postUrl"`
}

func (x *TwitterCommentResponse) Reset() {
	*x = TwitterCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterCommentResponse) ProtoMessage() {}

func (x *TwitterCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[52]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterCommentResponse.ProtoReflect.Descriptor instead.
func (*TwitterCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{52}
}

func (x *TwitterCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *TwitterCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TwitterCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *TwitterCommentResponse) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

// YouTube 平台评论响应
type YouTubeCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Comment   string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment"`
	Platform  string `protobuf:"bytes,4,opt,name=platform,proto3" json:"platform"`
}

func (x *YouTubeCommentResponse) Reset() {
	*x = YouTubeCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *YouTubeCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*YouTubeCommentResponse) ProtoMessage() {}

func (x *YouTubeCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[53]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use YouTubeCommentResponse.ProtoReflect.Descriptor instead.
func (*YouTubeCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{53}
}

func (x *YouTubeCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *YouTubeCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *YouTubeCommentResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *YouTubeCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// 平台错误信息
type PlatformError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action   string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"`
	Status   string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Code     int32  `protobuf:"varint,3,opt,name=code,proto3" json:"code"`
	Message  string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"`
	Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
	Post     string `protobuf:"bytes,6,opt,name=post,proto3" json:"post"`     // 重复评论错误时包含的评论内容
	Detail   string `protobuf:"bytes,7,opt,name=detail,proto3" json:"detail"` // 错误详情
	Id       string `protobuf:"bytes,8,opt,name=id,proto3" json:"id"`         // Ayrshare Post ID（错误响应中可能包含）
}

func (x *PlatformError) Reset() {
	*x = PlatformError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PlatformError) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PlatformError) ProtoMessage() {}

func (x *PlatformError) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[54]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PlatformError.ProtoReflect.Descriptor instead.
func (*PlatformError) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{54}
}

func (x *PlatformError) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *PlatformError) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *PlatformError) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *PlatformError) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *PlatformError) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *PlatformError) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *PlatformError) GetDetail() string {
	if x != nil {
		return x.Detail
	}
	return ""
}

func (x *PlatformError) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// 发布评论响应
type PostCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status       string                    `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentID    string                    `protobuf:"bytes,2,opt,name=commentID,proto3" json:"commentID"`
	CommentIdAlt string                    `protobuf:"bytes,3,opt,name=commentIdAlt,json=commentId,proto3" json:"commentIdAlt"` // 备用字段，用于错误响应
	Id           string                    `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
	Instagram    *InstagramCommentResponse `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram"`
	Tiktok       *TikTokCommentResponse    `protobuf:"bytes,6,opt,name=tiktok,proto3" json:"tiktok"`
	Action       string                    `protobuf:"bytes,7,opt,name=action,proto3" json:"action"`
	Code         int32                     `protobuf:"varint,8,opt,name=code,proto3" json:"code"`
	Message      string                    `protobuf:"bytes,9,opt,name=message,proto3" json:"message"`
	Platform     string                    `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"`
	Errors       []*PlatformError          `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors"`
	// 其它平台的发布评论结果
	Bluesky  *BlueskyCommentResponse  `protobuf:"bytes,12,opt,name=bluesky,proto3" json:"bluesky"`
	Facebook *FacebookCommentResponse `protobuf:"bytes,13,opt,name=facebook,proto3" json:"facebook"`
	Linkedin *LinkedInCommentResponse `protobuf:"bytes,14,opt,name=linkedin,proto3" json:"linkedin"`
	Twitter  *TwitterCommentResponse  `protobuf:"bytes,15,opt,name=twitter,proto3" json:"twitter"`
	Youtube  *YouTubeCommentResponse  `protobuf:"bytes,16,opt,name=youtube,proto3" json:"youtube"`
}

func (x *PostCommentResponse) Reset() {
	*x = PostCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostCommentResponse) ProtoMessage() {}

func (x *PostCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[55]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostCommentResponse.ProtoReflect.Descriptor instead.
func (*PostCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{55}
}

func (x *PostCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *PostCommentResponse) GetCommentID() string {
	if x != nil {
		return x.CommentID
	}
	return ""
}

func (x *PostCommentResponse) GetCommentIdAlt() string {
	if x != nil {
		return x.CommentIdAlt
	}
	return ""
}

func (x *PostCommentResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PostCommentResponse) GetInstagram() *InstagramCommentResponse {
	if x != nil {
		return x.Instagram
	}
	return nil
}

func (x *PostCommentResponse) GetTiktok() *TikTokCommentResponse {
	if x != nil {
		return x.Tiktok
	}
	return nil
}

func (x *PostCommentResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *PostCommentResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *PostCommentResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *PostCommentResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *PostCommentResponse) GetErrors() []*PlatformError {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *PostCommentResponse) GetBluesky() *BlueskyCommentResponse {
	if x != nil {
		return x.Bluesky
	}
	return nil
}

func (x *PostCommentResponse) GetFacebook() *FacebookCommentResponse {
	if x != nil {
		return x.Facebook
	}
	return nil
}

func (x *PostCommentResponse) GetLinkedin() *LinkedInCommentResponse {
	if x != nil {
		return x.Linkedin
	}
	return nil
}

func (x *PostCommentResponse) GetTwitter() *TwitterCommentResponse {
	if x != nil {
		return x.Twitter
	}
	return nil
}

func (x *PostCommentResponse) GetYoutube() *YouTubeCommentResponse {
	if x != nil {
		return x.Youtube
	}
	return nil
}

// 获取评论请求
type GetCommentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetCommentRequest) Reset() {
	*x = GetCommentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCommentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCommentRequest) ProtoMessage() {}

func (x *GetCommentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[56]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetCommentRequest.ProtoReflect.Descriptor instead.
func (*GetCommentRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{56}
}

func (x *GetCommentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetCommentRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// Instagram 用户信息
type InstagramUser struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name     string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id       string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username"`
}

func (x *InstagramUser) Reset() {
	*x = InstagramUser{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramUser) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramUser) ProtoMessage() {}

func (x *InstagramUser) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[57]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramUser.ProtoReflect.Descriptor instead.
func (*InstagramUser) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{57}
}

func (x *InstagramUser) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *InstagramUser) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *InstagramUser) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

// Instagram 用户ID信息
type InstagramUserInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
}

func (x *InstagramUserInfo) Reset() {
	*x = InstagramUserInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramUserInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramUserInfo) ProtoMessage() {}

func (x *InstagramUserInfo) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[58]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramUserInfo.ProtoReflect.Descriptor instead.
func (*InstagramUserInfo) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{58}
}

func (x *InstagramUserInfo) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// Instagram 评论详情
type InstagramComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment     string              `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId   string              `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Id          string              `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	Created     string              `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	From        *InstagramUser      `protobuf:"bytes,5,opt,name=from,proto3" json:"from"`
	Hidden      bool                `protobuf:"varint,6,opt,name=hidden,proto3" json:"hidden"`
	LikeCount   int32               `protobuf:"varint,7,opt,name=likeCount,proto3" json:"likeCount"`
	ParentId    string              `protobuf:"bytes,8,opt,name=parentId,proto3" json:"parentId"`
	Platform    string              `protobuf:"bytes,9,opt,name=platform,proto3" json:"platform"`
	PostId      string              `protobuf:"bytes,10,opt,name=postId,proto3" json:"postId"`
	Replies     []*InstagramComment `protobuf:"bytes,11,rep,name=replies,proto3" json:"replies"`
	User        *InstagramUserInfo  `protobuf:"bytes,12,opt,name=user,proto3" json:"user"`
	UserName    string              `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName"`
	UsernameAlt string              `protobuf:"bytes,14,opt,name=usernameAlt,json=username,proto3" json:"usernameAlt"` // 备用字段，用于回复评论
}

func (x *InstagramComment) Reset() {
	*x = InstagramComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramComment) ProtoMessage() {}

func (x *InstagramComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[59]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramComment.ProtoReflect.Descriptor instead.
func (*InstagramComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{59}
}

func (x *InstagramComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *InstagramComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *InstagramComment) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *InstagramComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *InstagramComment) GetFrom() *InstagramUser {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *InstagramComment) GetHidden() bool {
	if x != nil {
		return x.Hidden
	}
	return false
}

func (x *InstagramComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *InstagramComment) GetParentId() string {
	if x != nil {
		return x.ParentId
	}
	return ""
}

func (x *InstagramComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *InstagramComment) GetPostId() string {
	if x != nil {
		return x.PostId
	}
	return ""
}

func (x *InstagramComment) GetReplies() []*InstagramComment {
	if x != nil {
		return x.Replies
	}
	return nil
}

func (x *InstagramComment) GetUser() *InstagramUserInfo {
	if x != nil {
		return x.User
	}
	return nil
}

func (x *InstagramComment) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *InstagramComment) GetUsernameAlt() string {
	if x != nil {
		return x.UsernameAlt
	}
	return ""
}

// TikTok 评论详情
type TikTokComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment         string           `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId       string           `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Created         string           `protobuf:"bytes,3,opt,name=created,proto3" json:"created"`
	CreateTime      string           `protobuf:"bytes,4,opt,name=createTime,proto3" json:"createTime"`
	DisplayName     string           `protobuf:"bytes,5,opt,name=displayName,proto3" json:"displayName"`
	Liked           bool             `protobuf:"varint,6,opt,name=liked,proto3" json:"liked"`
	Likes           int32            `protobuf:"varint,7,opt,name=likes,proto3" json:"likes"`
	LikeCount       int32            `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"`
	Owner           bool             `protobuf:"varint,9,opt,name=owner,proto3" json:"owner"`
	ParentCommentId string           `protobuf:"bytes,10,opt,name=parentCommentId,proto3" json:"parentCommentId"`
	Pinned          bool             `protobuf:"varint,11,opt,name=pinned,proto3" json:"pinned"`
	Platform        string           `protobuf:"bytes,12,opt,name=platform,proto3" json:"platform"`
	ProfileImageUrl string           `protobuf:"bytes,13,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	Replies         []*TikTokComment `protobuf:"bytes,14,rep,name=replies,proto3" json:"replies"`
	Status          string           `protobuf:"bytes,15,opt,name=status,proto3" json:"status"`
	UserId          string           `protobuf:"bytes,16,opt,name=userId,proto3" json:"userId"`
	Username        string           `protobuf:"bytes,17,opt,name=username,proto3" json:"username"`
	VideoId         string           `protobuf:"bytes,18,opt,name=videoId,proto3" json:"videoId"`
	Visibility      string           `protobuf:"bytes,19,opt,name=visibility,proto3" json:"visibility"`
}

func (x *TikTokComment) Reset() {
	*x = TikTokComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TikTokComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TikTokComment) ProtoMessage() {}

func (x *TikTokComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[60]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TikTokComment.ProtoReflect.Descriptor instead.
func (*TikTokComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{60}
}

func (x *TikTokComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *TikTokComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TikTokComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *TikTokComment) GetCreateTime() string {
	if x != nil {
		return x.CreateTime
	}
	return ""
}

func (x *TikTokComment) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *TikTokComment) GetLiked() bool {
	if x != nil {
		return x.Liked
	}
	return false
}

func (x *TikTokComment) GetLikes() int32 {
	if x != nil {
		return x.Likes
	}
	return 0
}

func (x *TikTokComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *TikTokComment) GetOwner() bool {
	if x != nil {
		return x.Owner
	}
	return false
}

func (x *TikTokComment) GetParentCommentId() string {
	if x != nil {
		return x.ParentCommentId
	}
	return ""
}

func (x *TikTokComment) GetPinned() bool {
	if x != nil {
		return x.Pinned
	}
	return false
}

func (x *TikTokComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *TikTokComment) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *TikTokComment) GetReplies() []*TikTokComment {
	if x != nil {
		return x.Replies
	}
	return nil
}

func (x *TikTokComment) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *TikTokComment) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *TikTokComment) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *TikTokComment) GetVideoId() string {
	if x != nil {
		return x.VideoId
	}
	return ""
}

func (x *TikTokComment) GetVisibility() string {
	if x != nil {
		return x.Visibility
	}
	return ""
}

// Bluesky 评论详情
type BlueskyComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment         string            `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId       string            `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Created         string            `protobuf:"bytes,3,opt,name=created,proto3" json:"created"`
	DisplayName     string            `protobuf:"bytes,4,opt,name=displayName,proto3" json:"displayName"`
	LikeCount       int32             `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"`
	Platform        string            `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform"`
	ProfileImageUrl string            `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	QuoteCount      int32             `protobuf:"varint,8,opt,name=quoteCount,proto3" json:"quoteCount"`
	Replies         []*BlueskyComment `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies"`
	ReplyCount      int32             `protobuf:"varint,10,opt,name=replyCount,proto3" json:"replyCount"`
	ReplyTo         string            `protobuf:"bytes,11,opt,name=replyTo,proto3" json:"replyTo"`
	RepostCount     int32             `protobuf:"varint,12,opt,name=repostCount,proto3" json:"repostCount"`
	UserName        string            `protobuf:"bytes,13,opt,name=userName,proto3" json:"userName"`
}

func (x *BlueskyComment) Reset() {
	*x = BlueskyComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlueskyComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlueskyComment) ProtoMessage() {}

func (x *BlueskyComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[61]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlueskyComment.ProtoReflect.Descriptor instead.
func (*BlueskyComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{61}
}

func (x *BlueskyComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *BlueskyComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *BlueskyComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *BlueskyComment) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *BlueskyComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *BlueskyComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *BlueskyComment) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *BlueskyComment) GetQuoteCount() int32 {
	if x != nil {
		return x.QuoteCount
	}
	return 0
}

func (x *BlueskyComment) GetReplies() []*BlueskyComment {
	if x != nil {
		return x.Replies
	}
	return nil
}

func (x *BlueskyComment) GetReplyCount() int32 {
	if x != nil {
		return x.ReplyCount
	}
	return 0
}

func (x *BlueskyComment) GetReplyTo() string {
	if x != nil {
		return x.ReplyTo
	}
	return ""
}

func (x *BlueskyComment) GetRepostCount() int32 {
	if x != nil {
		return x.RepostCount
	}
	return 0
}

func (x *BlueskyComment) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

// Facebook 用户信息
type FacebookUser struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id   string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
}

func (x *FacebookUser) Reset() {
	*x = FacebookUser{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FacebookUser) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FacebookUser) ProtoMessage() {}

func (x *FacebookUser) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[62]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FacebookUser.ProtoReflect.Descriptor instead.
func (*FacebookUser) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{62}
}

func (x *FacebookUser) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *FacebookUser) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// Facebook 父级评论/帖子信息
type FacebookParent struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CreatedTime string        `protobuf:"bytes,1,opt,name=createdTime,proto3" json:"createdTime"`
	From        *FacebookUser `protobuf:"bytes,2,opt,name=from,proto3" json:"from"`
	Message     string        `protobuf:"bytes,3,opt,name=message,proto3" json:"message"`
	Id          string        `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
}

func (x *FacebookParent) Reset() {
	*x = FacebookParent{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FacebookParent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FacebookParent) ProtoMessage() {}

func (x *FacebookParent) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[63]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FacebookParent.ProtoReflect.Descriptor instead.
func (*FacebookParent) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{63}
}

func (x *FacebookParent) GetCreatedTime() string {
	if x != nil {
		return x.CreatedTime
	}
	return ""
}

func (x *FacebookParent) GetFrom() *FacebookUser {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *FacebookParent) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *FacebookParent) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// Facebook 评论详情（用于主评论和回复）
type FacebookComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment      string             `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId    string             `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	CommentCount int32              `protobuf:"varint,3,opt,name=commentCount,proto3" json:"commentCount"`
	CommentUrl   string             `protobuf:"bytes,4,opt,name=commentUrl,proto3" json:"commentUrl"`
	Company      bool               `protobuf:"varint,5,opt,name=company,proto3" json:"company"`
	Created      string             `protobuf:"bytes,6,opt,name=created,proto3" json:"created"`
	From         *FacebookUser      `protobuf:"bytes,7,opt,name=from,proto3" json:"from"`
	LikeCount    int32              `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"`
	Parent       *FacebookParent    `protobuf:"bytes,9,opt,name=parent,proto3" json:"parent"`
	Platform     string             `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"`
	UserLikes    bool               `protobuf:"varint,11,opt,name=userLikes,proto3" json:"userLikes"`
	Replies      []*FacebookComment `protobuf:"bytes,12,rep,name=replies,proto3" json:"replies"`
}

func (x *FacebookComment) Reset() {
	*x = FacebookComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FacebookComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FacebookComment) ProtoMessage() {}

func (x *FacebookComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[64]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FacebookComment.ProtoReflect.Descriptor instead.
func (*FacebookComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{64}
}

func (x *FacebookComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *FacebookComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *FacebookComment) GetCommentCount() int32 {
	if x != nil {
		return x.CommentCount
	}
	return 0
}

func (x *FacebookComment) GetCommentUrl() string {
	if x != nil {
		return x.CommentUrl
	}
	return ""
}

func (x *FacebookComment) GetCompany() bool {
	if x != nil {
		return x.Company
	}
	return false
}

func (x *FacebookComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *FacebookComment) GetFrom() *FacebookUser {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *FacebookComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *FacebookComment) GetParent() *FacebookParent {
	if x != nil {
		return x.Parent
	}
	return nil
}

func (x *FacebookComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *FacebookComment) GetUserLikes() bool {
	if x != nil {
		return x.UserLikes
	}
	return false
}

func (x *FacebookComment) GetReplies() []*FacebookComment {
	if x != nil {
		return x.Replies
	}
	return nil
}

// LinkedIn 评论中的媒体信息
type LinkedInMedia struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"`
	Url  string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"`
}

func (x *LinkedInMedia) Reset() {
	*x = LinkedInMedia{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LinkedInMedia) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkedInMedia) ProtoMessage() {}

func (x *LinkedInMedia) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[65]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkedInMedia.ProtoReflect.Descriptor instead.
func (*LinkedInMedia) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{65}
}

func (x *LinkedInMedia) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *LinkedInMedia) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

// LinkedIn 评论发布者信息
type LinkedInFrom struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name        string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id          string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
	Url         string `protobuf:"bytes,3,opt,name=url,proto3" json:"url"`
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description"`
}

func (x *LinkedInFrom) Reset() {
	*x = LinkedInFrom{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LinkedInFrom) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkedInFrom) ProtoMessage() {}

func (x *LinkedInFrom) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[66]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkedInFrom.ProtoReflect.Descriptor instead.
func (*LinkedInFrom) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{66}
}

func (x *LinkedInFrom) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *LinkedInFrom) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *LinkedInFrom) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *LinkedInFrom) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

// LinkedIn 评论详情
type LinkedInComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment          string           `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId        string           `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	CommentUrn       string           `protobuf:"bytes,3,opt,name=commentUrn,proto3" json:"commentUrn"`
	Created          string           `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	From             *LinkedInFrom    `protobuf:"bytes,5,opt,name=from,proto3" json:"from"`
	LikeCount        int32            `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount"`
	Media            []*LinkedInMedia `protobuf:"bytes,7,rep,name=media,proto3" json:"media"`
	Platform         string           `protobuf:"bytes,8,opt,name=platform,proto3" json:"platform"`
	ProfileImageUrl  string           `protobuf:"bytes,9,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	UserName         string           `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"`
	Founded          int32            `protobuf:"varint,11,opt,name=founded,proto3" json:"founded"`
	OrganizationType string           `protobuf:"bytes,12,opt,name=organizationType,proto3" json:"organizationType"`
	Website          string           `protobuf:"bytes,13,opt,name=website,proto3" json:"website"`
}

func (x *LinkedInComment) Reset() {
	*x = LinkedInComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LinkedInComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkedInComment) ProtoMessage() {}

func (x *LinkedInComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[67]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkedInComment.ProtoReflect.Descriptor instead.
func (*LinkedInComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{67}
}

func (x *LinkedInComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *LinkedInComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *LinkedInComment) GetCommentUrn() string {
	if x != nil {
		return x.CommentUrn
	}
	return ""
}

func (x *LinkedInComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *LinkedInComment) GetFrom() *LinkedInFrom {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *LinkedInComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *LinkedInComment) GetMedia() []*LinkedInMedia {
	if x != nil {
		return x.Media
	}
	return nil
}

func (x *LinkedInComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *LinkedInComment) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *LinkedInComment) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *LinkedInComment) GetFounded() int32 {
	if x != nil {
		return x.Founded
	}
	return 0
}

func (x *LinkedInComment) GetOrganizationType() string {
	if x != nil {
		return x.OrganizationType
	}
	return ""
}

func (x *LinkedInComment) GetWebsite() string {
	if x != nil {
		return x.Website
	}
	return ""
}

// Reddit 用户信息
type RedditUser struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
	Id   string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
}

func (x *RedditUser) Reset() {
	*x = RedditUser{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RedditUser) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RedditUser) ProtoMessage() {}

func (x *RedditUser) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[68]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RedditUser.ProtoReflect.Descriptor instead.
func (*RedditUser) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{68}
}

func (x *RedditUser) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RedditUser) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// Reddit 评论详情
type RedditComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment     string      `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId   string      `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Created     string      `protobuf:"bytes,3,opt,name=created,proto3" json:"created"`
	From        *RedditUser `protobuf:"bytes,4,opt,name=from,proto3" json:"from"`
	CommentUrl  string      `protobuf:"bytes,5,opt,name=commentUrl,proto3" json:"commentUrl"`
	Subreddit   string      `protobuf:"bytes,6,opt,name=subreddit,proto3" json:"subreddit"`
	Ups         int32       `protobuf:"varint,7,opt,name=ups,proto3" json:"ups"`
	IsSubmitter bool        `protobuf:"varint,8,opt,name=isSubmitter,proto3" json:"isSubmitter"`
}

func (x *RedditComment) Reset() {
	*x = RedditComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RedditComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RedditComment) ProtoMessage() {}

func (x *RedditComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[69]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RedditComment.ProtoReflect.Descriptor instead.
func (*RedditComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{69}
}

func (x *RedditComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *RedditComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *RedditComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *RedditComment) GetFrom() *RedditUser {
	if x != nil {
		return x.From
	}
	return nil
}

func (x *RedditComment) GetCommentUrl() string {
	if x != nil {
		return x.CommentUrl
	}
	return ""
}

func (x *RedditComment) GetSubreddit() string {
	if x != nil {
		return x.Subreddit
	}
	return ""
}

func (x *RedditComment) GetUps() int32 {
	if x != nil {
		return x.Ups
	}
	return 0
}

func (x *RedditComment) GetIsSubmitter() bool {
	if x != nil {
		return x.IsSubmitter
	}
	return false
}

// Threads 评论详情（用于主评论和回复）
type ThreadsComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Comment          string            `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment"`
	CommentId        string            `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	CommentUrl       string            `protobuf:"bytes,3,opt,name=commentUrl,proto3" json:"commentUrl"`
	Created          string            `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	HasReplies       bool              `protobuf:"varint,5,opt,name=hasReplies,proto3" json:"hasReplies"`
	IsQuotePost      bool              `protobuf:"varint,6,opt,name=isQuotePost,proto3" json:"isQuotePost"`
	IsReply          bool              `protobuf:"varint,7,opt,name=isReply,proto3" json:"isReply"`
	IsReplyOwnedByMe bool              `protobuf:"varint,8,opt,name=isReplyOwnedByMe,proto3" json:"isReplyOwnedByMe"`
	MediaType        string            `protobuf:"bytes,9,opt,name=mediaType,proto3" json:"mediaType"`
	ParentId         string            `protobuf:"bytes,10,opt,name=parentId,proto3" json:"parentId"`
	Platform         string            `protobuf:"bytes,11,opt,name=platform,proto3" json:"platform"`
	PostId           string            `protobuf:"bytes,12,opt,name=postId,proto3" json:"postId"`
	Replies          []*ThreadsComment `protobuf:"bytes,13,rep,name=replies,proto3" json:"replies"`
	ReplyAudience    string            `protobuf:"bytes,14,opt,name=replyAudience,proto3" json:"replyAudience"`
	Shortcode        string            `protobuf:"bytes,15,opt,name=shortcode,proto3" json:"shortcode"`
	UserName         string            `protobuf:"bytes,16,opt,name=userName,proto3" json:"userName"`
}

func (x *ThreadsComment) Reset() {
	*x = ThreadsComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ThreadsComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ThreadsComment) ProtoMessage() {}

func (x *ThreadsComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[70]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ThreadsComment.ProtoReflect.Descriptor instead.
func (*ThreadsComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{70}
}

func (x *ThreadsComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ThreadsComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *ThreadsComment) GetCommentUrl() string {
	if x != nil {
		return x.CommentUrl
	}
	return ""
}

func (x *ThreadsComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *ThreadsComment) GetHasReplies() bool {
	if x != nil {
		return x.HasReplies
	}
	return false
}

func (x *ThreadsComment) GetIsQuotePost() bool {
	if x != nil {
		return x.IsQuotePost
	}
	return false
}

func (x *ThreadsComment) GetIsReply() bool {
	if x != nil {
		return x.IsReply
	}
	return false
}

func (x *ThreadsComment) GetIsReplyOwnedByMe() bool {
	if x != nil {
		return x.IsReplyOwnedByMe
	}
	return false
}

func (x *ThreadsComment) GetMediaType() string {
	if x != nil {
		return x.MediaType
	}
	return ""
}

func (x *ThreadsComment) GetParentId() string {
	if x != nil {
		return x.ParentId
	}
	return ""
}

func (x *ThreadsComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *ThreadsComment) GetPostId() string {
	if x != nil {
		return x.PostId
	}
	return ""
}

func (x *ThreadsComment) GetReplies() []*ThreadsComment {
	if x != nil {
		return x.Replies
	}
	return nil
}

func (x *ThreadsComment) GetReplyAudience() string {
	if x != nil {
		return x.ReplyAudience
	}
	return ""
}

func (x *ThreadsComment) GetShortcode() string {
	if x != nil {
		return x.Shortcode
	}
	return ""
}

func (x *ThreadsComment) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

// Twitter/X 用户公共指标（用户维度，用于 Get Comments 返回）
type TwitterPublicMetrics struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FollowersCount int32 `protobuf:"varint,1,opt,name=followersCount,proto3" json:"followersCount"`
	FollowingCount int32 `protobuf:"varint,2,opt,name=followingCount,proto3" json:"followingCount"`
	TweetCount     int32 `protobuf:"varint,3,opt,name=tweetCount,proto3" json:"tweetCount"`
	ListedCount    int32 `protobuf:"varint,4,opt,name=listedCount,proto3" json:"listedCount"`
	LikeCount      int32 `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"`
	MediaCount     int32 `protobuf:"varint,6,opt,name=mediaCount,proto3" json:"mediaCount"`
}

func (x *TwitterPublicMetrics) Reset() {
	*x = TwitterPublicMetrics{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterPublicMetrics) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterPublicMetrics) ProtoMessage() {}

func (x *TwitterPublicMetrics) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[71]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterPublicMetrics.ProtoReflect.Descriptor instead.
func (*TwitterPublicMetrics) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{71}
}

func (x *TwitterPublicMetrics) GetFollowersCount() int32 {
	if x != nil {
		return x.FollowersCount
	}
	return 0
}

func (x *TwitterPublicMetrics) GetFollowingCount() int32 {
	if x != nil {
		return x.FollowingCount
	}
	return 0
}

func (x *TwitterPublicMetrics) GetTweetCount() int32 {
	if x != nil {
		return x.TweetCount
	}
	return 0
}

func (x *TwitterPublicMetrics) GetListedCount() int32 {
	if x != nil {
		return x.ListedCount
	}
	return 0
}

func (x *TwitterPublicMetrics) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *TwitterPublicMetrics) GetMediaCount() int32 {
	if x != nil {
		return x.MediaCount
	}
	return 0
}

// Twitter/X 被引用或回复的 Tweet 信息
type TwitterReferencedTweet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type"`
	Id   string `protobuf:"bytes,2,opt,name=id,proto3" json:"id"`
}

func (x *TwitterReferencedTweet) Reset() {
	*x = TwitterReferencedTweet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterReferencedTweet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterReferencedTweet) ProtoMessage() {}

func (x *TwitterReferencedTweet) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[72]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterReferencedTweet.ProtoReflect.Descriptor instead.
func (*TwitterReferencedTweet) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{72}
}

func (x *TwitterReferencedTweet) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *TwitterReferencedTweet) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// Twitter/X 被回复的用户信息
type TwitterReplyTo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CreatedAt       string                `protobuf:"bytes,1,opt,name=createdAt,proto3" json:"createdAt"`
	Description     string                `protobuf:"bytes,2,opt,name=description,proto3" json:"description"`
	Id              string                `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	Location        string                `protobuf:"bytes,4,opt,name=location,proto3" json:"location"`
	Name            string                `protobuf:"bytes,5,opt,name=name,proto3" json:"name"`
	ProfileImageUrl string                `protobuf:"bytes,6,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	PublicMetrics   *TwitterPublicMetrics `protobuf:"bytes,7,opt,name=publicMetrics,proto3" json:"publicMetrics"`
	Url             string                `protobuf:"bytes,8,opt,name=url,proto3" json:"url"`
	Username        string                `protobuf:"bytes,9,opt,name=username,proto3" json:"username"`
}

func (x *TwitterReplyTo) Reset() {
	*x = TwitterReplyTo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterReplyTo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterReplyTo) ProtoMessage() {}

func (x *TwitterReplyTo) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[73]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterReplyTo.ProtoReflect.Descriptor instead.
func (*TwitterReplyTo) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{73}
}

func (x *TwitterReplyTo) GetCreatedAt() string {
	if x != nil {
		return x.CreatedAt
	}
	return ""
}

func (x *TwitterReplyTo) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *TwitterReplyTo) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *TwitterReplyTo) GetLocation() string {
	if x != nil {
		return x.Location
	}
	return ""
}

func (x *TwitterReplyTo) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *TwitterReplyTo) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *TwitterReplyTo) GetPublicMetrics() *TwitterPublicMetrics {
	if x != nil {
		return x.PublicMetrics
	}
	return nil
}

func (x *TwitterReplyTo) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *TwitterReplyTo) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

// Twitter/X 评论详情
type TwitterComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BookmarkCount    int32                     `protobuf:"varint,1,opt,name=bookmarkCount,proto3" json:"bookmarkCount"`
	Comment          string                    `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"`
	CommentId        string                    `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"`
	Created          string                    `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	Description      string                    `protobuf:"bytes,5,opt,name=description,proto3" json:"description"`
	Id               string                    `protobuf:"bytes,6,opt,name=id,proto3" json:"id"`
	ImpressionCount  int32                     `protobuf:"varint,7,opt,name=impressionCount,proto3" json:"impressionCount"`
	LikeCount        int32                     `protobuf:"varint,8,opt,name=likeCount,proto3" json:"likeCount"`
	Name             string                    `protobuf:"bytes,9,opt,name=name,proto3" json:"name"`
	Platform         string                    `protobuf:"bytes,10,opt,name=platform,proto3" json:"platform"`
	ProfileImageUrl  string                    `protobuf:"bytes,11,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	PublicMetrics    *TwitterPublicMetrics     `protobuf:"bytes,12,opt,name=publicMetrics,proto3" json:"publicMetrics"`
	QuoteCount       int32                     `protobuf:"varint,13,opt,name=quoteCount,proto3" json:"quoteCount"`
	ReferencedTweets []*TwitterReferencedTweet `protobuf:"bytes,14,rep,name=referencedTweets,proto3" json:"referencedTweets"`
	ReplyCount       int32                     `protobuf:"varint,15,opt,name=replyCount,proto3" json:"replyCount"`
	ReplyTo          *TwitterReplyTo           `protobuf:"bytes,16,opt,name=replyTo,proto3" json:"replyTo"`
	ThreadNumber     int32                     `protobuf:"varint,17,opt,name=threadNumber,proto3" json:"threadNumber"`
	UserName         string                    `protobuf:"bytes,18,opt,name=userName,proto3" json:"userName"`
}

func (x *TwitterComment) Reset() {
	*x = TwitterComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterComment) ProtoMessage() {}

func (x *TwitterComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[74]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterComment.ProtoReflect.Descriptor instead.
func (*TwitterComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{74}
}

func (x *TwitterComment) GetBookmarkCount() int32 {
	if x != nil {
		return x.BookmarkCount
	}
	return 0
}

func (x *TwitterComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *TwitterComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TwitterComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *TwitterComment) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *TwitterComment) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *TwitterComment) GetImpressionCount() int32 {
	if x != nil {
		return x.ImpressionCount
	}
	return 0
}

func (x *TwitterComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *TwitterComment) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *TwitterComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *TwitterComment) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *TwitterComment) GetPublicMetrics() *TwitterPublicMetrics {
	if x != nil {
		return x.PublicMetrics
	}
	return nil
}

func (x *TwitterComment) GetQuoteCount() int32 {
	if x != nil {
		return x.QuoteCount
	}
	return 0
}

func (x *TwitterComment) GetReferencedTweets() []*TwitterReferencedTweet {
	if x != nil {
		return x.ReferencedTweets
	}
	return nil
}

func (x *TwitterComment) GetReplyCount() int32 {
	if x != nil {
		return x.ReplyCount
	}
	return 0
}

func (x *TwitterComment) GetReplyTo() *TwitterReplyTo {
	if x != nil {
		return x.ReplyTo
	}
	return nil
}

func (x *TwitterComment) GetThreadNumber() int32 {
	if x != nil {
		return x.ThreadNumber
	}
	return 0
}

func (x *TwitterComment) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

// YouTube 回复评论详情
type YouTubeReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChannelUrl      string `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl"`
	Comment         string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"`
	CommentId       string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"`
	Created         string `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	LikeCount       int32  `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"`
	Platform        string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform"`
	ProfileImageUrl string `protobuf:"bytes,7,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	UserName        string `protobuf:"bytes,8,opt,name=userName,proto3" json:"userName"`
	ParentId        string `protobuf:"bytes,9,opt,name=parentId,proto3" json:"parentId"`
}

func (x *YouTubeReply) Reset() {
	*x = YouTubeReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *YouTubeReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*YouTubeReply) ProtoMessage() {}

func (x *YouTubeReply) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[75]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use YouTubeReply.ProtoReflect.Descriptor instead.
func (*YouTubeReply) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{75}
}

func (x *YouTubeReply) GetChannelUrl() string {
	if x != nil {
		return x.ChannelUrl
	}
	return ""
}

func (x *YouTubeReply) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *YouTubeReply) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *YouTubeReply) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *YouTubeReply) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *YouTubeReply) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *YouTubeReply) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *YouTubeReply) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

func (x *YouTubeReply) GetParentId() string {
	if x != nil {
		return x.ParentId
	}
	return ""
}

// YouTube 评论详情
type YouTubeComment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChannelUrl      string          `protobuf:"bytes,1,opt,name=channelUrl,proto3" json:"channelUrl"`
	Comment         string          `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"`
	CommentId       string          `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"`
	Created         string          `protobuf:"bytes,4,opt,name=created,proto3" json:"created"`
	IsPublic        bool            `protobuf:"varint,5,opt,name=isPublic,proto3" json:"isPublic"`
	LikeCount       int32           `protobuf:"varint,6,opt,name=likeCount,proto3" json:"likeCount"`
	Platform        string          `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform"`
	ProfileImageUrl string          `protobuf:"bytes,8,opt,name=profileImageUrl,proto3" json:"profileImageUrl"`
	Replies         []*YouTubeReply `protobuf:"bytes,9,rep,name=replies,proto3" json:"replies"`
	UserName        string          `protobuf:"bytes,10,opt,name=userName,proto3" json:"userName"`
}

func (x *YouTubeComment) Reset() {
	*x = YouTubeComment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *YouTubeComment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*YouTubeComment) ProtoMessage() {}

func (x *YouTubeComment) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[76]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use YouTubeComment.ProtoReflect.Descriptor instead.
func (*YouTubeComment) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{76}
}

func (x *YouTubeComment) GetChannelUrl() string {
	if x != nil {
		return x.ChannelUrl
	}
	return ""
}

func (x *YouTubeComment) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *YouTubeComment) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *YouTubeComment) GetCreated() string {
	if x != nil {
		return x.Created
	}
	return ""
}

func (x *YouTubeComment) GetIsPublic() bool {
	if x != nil {
		return x.IsPublic
	}
	return false
}

func (x *YouTubeComment) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *YouTubeComment) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *YouTubeComment) GetProfileImageUrl() string {
	if x != nil {
		return x.ProfileImageUrl
	}
	return ""
}

func (x *YouTubeComment) GetReplies() []*YouTubeReply {
	if x != nil {
		return x.Replies
	}
	return nil
}

func (x *YouTubeComment) GetUserName() string {
	if x != nil {
		return x.UserName
	}
	return ""
}

// 获取评论响应
type GetCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Instagram   []*InstagramComment `protobuf:"bytes,1,rep,name=instagram,proto3" json:"instagram"`
	Tiktok      []*TikTokComment    `protobuf:"bytes,2,rep,name=tiktok,proto3" json:"tiktok"`
	Status      string              `protobuf:"bytes,3,opt,name=status,proto3" json:"status"`
	Id          string              `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
	LastUpdated string              `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate  string              `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate"`
	Action      string              `protobuf:"bytes,7,opt,name=action,proto3" json:"action"`
	Code        int32               `protobuf:"varint,8,opt,name=code,proto3" json:"code"`
	Message     string              `protobuf:"bytes,9,opt,name=message,proto3" json:"message"`
	// 其它平台的评论列表
	Bluesky  []*BlueskyComment  `protobuf:"bytes,10,rep,name=bluesky,proto3" json:"bluesky"`
	Facebook []*FacebookComment `protobuf:"bytes,11,rep,name=facebook,proto3" json:"facebook"`
	Linkedin []*LinkedInComment `protobuf:"bytes,12,rep,name=linkedin,proto3" json:"linkedin"`
	Reddit   []*RedditComment   `protobuf:"bytes,13,rep,name=reddit,proto3" json:"reddit"`
	Threads  []*ThreadsComment  `protobuf:"bytes,14,rep,name=threads,proto3" json:"threads"`
	Twitter  []*TwitterComment  `protobuf:"bytes,15,rep,name=twitter,proto3" json:"twitter"`
	Youtube  []*YouTubeComment  `protobuf:"bytes,16,rep,name=youtube,proto3" json:"youtube"`
}

func (x *GetCommentResponse) Reset() {
	*x = GetCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCommentResponse) ProtoMessage() {}

func (x *GetCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[77]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetCommentResponse.ProtoReflect.Descriptor instead.
func (*GetCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{77}
}

func (x *GetCommentResponse) GetInstagram() []*InstagramComment {
	if x != nil {
		return x.Instagram
	}
	return nil
}

func (x *GetCommentResponse) GetTiktok() []*TikTokComment {
	if x != nil {
		return x.Tiktok
	}
	return nil
}

func (x *GetCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetCommentResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetCommentResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *GetCommentResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

func (x *GetCommentResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *GetCommentResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *GetCommentResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *GetCommentResponse) GetBluesky() []*BlueskyComment {
	if x != nil {
		return x.Bluesky
	}
	return nil
}

func (x *GetCommentResponse) GetFacebook() []*FacebookComment {
	if x != nil {
		return x.Facebook
	}
	return nil
}

func (x *GetCommentResponse) GetLinkedin() []*LinkedInComment {
	if x != nil {
		return x.Linkedin
	}
	return nil
}

func (x *GetCommentResponse) GetReddit() []*RedditComment {
	if x != nil {
		return x.Reddit
	}
	return nil
}

func (x *GetCommentResponse) GetThreads() []*ThreadsComment {
	if x != nil {
		return x.Threads
	}
	return nil
}

func (x *GetCommentResponse) GetTwitter() []*TwitterComment {
	if x != nil {
		return x.Twitter
	}
	return nil
}

func (x *GetCommentResponse) GetYoutube() []*YouTubeComment {
	if x != nil {
		return x.Youtube
	}
	return nil
}

// 删除评论请求
type DeleteCommentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id               string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Platforms        []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"`
	Platform         string   `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform"`
	SearchPlatformId bool     `protobuf:"varint,4,opt,name=searchPlatformId,proto3" json:"searchPlatformId"`
	ProfileKey       string   `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *DeleteCommentRequest) Reset() {
	*x = DeleteCommentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteCommentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteCommentRequest) ProtoMessage() {}

func (x *DeleteCommentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[78]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteCommentRequest.ProtoReflect.Descriptor instead.
func (*DeleteCommentRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{78}
}

func (x *DeleteCommentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *DeleteCommentRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *DeleteCommentRequest) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *DeleteCommentRequest) GetSearchPlatformId() bool {
	if x != nil {
		return x.SearchPlatformId
	}
	return false
}

func (x *DeleteCommentRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// Instagram 删除评论响应（单条）
type InstagramDeleteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action  string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"`
	Status  string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	Id      string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
}

func (x *InstagramDeleteResponse) Reset() {
	*x = InstagramDeleteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramDeleteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramDeleteResponse) ProtoMessage() {}

func (x *InstagramDeleteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[79]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramDeleteResponse.ProtoReflect.Descriptor instead.
func (*InstagramDeleteResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{79}
}

func (x *InstagramDeleteResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *InstagramDeleteResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *InstagramDeleteResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *InstagramDeleteResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

// TikTok 删除评论响应（单条）
type TikTokDeleteResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action    string `protobuf:"bytes,1,opt,name=action,proto3" json:"action"`
	Status    string `protobuf:"bytes,2,opt,name=status,proto3" json:"status"`
	CommentId string `protobuf:"bytes,3,opt,name=commentId,proto3" json:"commentId"`
	Id        string `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
	Comment   string `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment"`
}

func (x *TikTokDeleteResponse) Reset() {
	*x = TikTokDeleteResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TikTokDeleteResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TikTokDeleteResponse) ProtoMessage() {}

func (x *TikTokDeleteResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[80]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TikTokDeleteResponse.ProtoReflect.Descriptor instead.
func (*TikTokDeleteResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{80}
}

func (x *TikTokDeleteResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *TikTokDeleteResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *TikTokDeleteResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TikTokDeleteResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *TikTokDeleteResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

// 删除评论响应
type DeleteCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	// Instagram 和 TikTok 可能是单个对象或数组，使用 JSON 字符串存储
	Instagram string `protobuf:"bytes,2,opt,name=instagram,proto3" json:"instagram"`
	Tiktok    string `protobuf:"bytes,3,opt,name=tiktok,proto3" json:"tiktok"`
	Action    string `protobuf:"bytes,4,opt,name=action,proto3" json:"action"`
	Code      int32  `protobuf:"varint,5,opt,name=code,proto3" json:"code"`
	Message   string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"`
	// 其它平台删除结果，同样使用 JSON 字符串存储，兼容单条或多条返回
	Bluesky  string `protobuf:"bytes,7,opt,name=bluesky,proto3" json:"bluesky"`
	Facebook string `protobuf:"bytes,8,opt,name=facebook,proto3" json:"facebook"`
	Linkedin string `protobuf:"bytes,9,opt,name=linkedin,proto3" json:"linkedin"`
	Threads  string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"`
	Twitter  string `protobuf:"bytes,11,opt,name=twitter,proto3" json:"twitter"`
	Youtube  string `protobuf:"bytes,12,opt,name=youtube,proto3" json:"youtube"`
}

func (x *DeleteCommentResponse) Reset() {
	*x = DeleteCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteCommentResponse) ProtoMessage() {}

func (x *DeleteCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[81]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteCommentResponse.ProtoReflect.Descriptor instead.
func (*DeleteCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{81}
}

func (x *DeleteCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *DeleteCommentResponse) GetInstagram() string {
	if x != nil {
		return x.Instagram
	}
	return ""
}

func (x *DeleteCommentResponse) GetTiktok() string {
	if x != nil {
		return x.Tiktok
	}
	return ""
}

func (x *DeleteCommentResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *DeleteCommentResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *DeleteCommentResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *DeleteCommentResponse) GetBluesky() string {
	if x != nil {
		return x.Bluesky
	}
	return ""
}

func (x *DeleteCommentResponse) GetFacebook() string {
	if x != nil {
		return x.Facebook
	}
	return ""
}

func (x *DeleteCommentResponse) GetLinkedin() string {
	if x != nil {
		return x.Linkedin
	}
	return ""
}

func (x *DeleteCommentResponse) GetThreads() string {
	if x != nil {
		return x.Threads
	}
	return ""
}

func (x *DeleteCommentResponse) GetTwitter() string {
	if x != nil {
		return x.Twitter
	}
	return ""
}

func (x *DeleteCommentResponse) GetYoutube() string {
	if x != nil {
		return x.Youtube
	}
	return ""
}

// 回复评论请求
type ReplyCommentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Comment    string   `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment"`
	Platforms  []string `protobuf:"bytes,3,rep,name=platforms,proto3" json:"platforms"`
	ProfileKey string   `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *ReplyCommentRequest) Reset() {
	*x = ReplyCommentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplyCommentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplyCommentRequest) ProtoMessage() {}

func (x *ReplyCommentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[82]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReplyCommentRequest.ProtoReflect.Descriptor instead.
func (*ReplyCommentRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{82}
}

func (x *ReplyCommentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ReplyCommentRequest) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *ReplyCommentRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *ReplyCommentRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// Instagram 回复评论响应
type InstagramReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
}

func (x *InstagramReplyResponse) Reset() {
	*x = InstagramReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InstagramReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InstagramReplyResponse) ProtoMessage() {}

func (x *InstagramReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[83]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstagramReplyResponse.ProtoReflect.Descriptor instead.
func (*InstagramReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{83}
}

func (x *InstagramReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *InstagramReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *InstagramReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *InstagramReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *InstagramReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// TikTok 回复评论响应
type TikTokReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
	VideoId         string `protobuf:"bytes,6,opt,name=videoId,proto3" json:"videoId"`
}

func (x *TikTokReplyResponse) Reset() {
	*x = TikTokReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TikTokReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TikTokReplyResponse) ProtoMessage() {}

func (x *TikTokReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[84]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TikTokReplyResponse.ProtoReflect.Descriptor instead.
func (*TikTokReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{84}
}

func (x *TikTokReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *TikTokReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TikTokReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *TikTokReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *TikTokReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *TikTokReplyResponse) GetVideoId() string {
	if x != nil {
		return x.VideoId
	}
	return ""
}

// Bluesky 回复评论响应
type BlueskyReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
	Cid             string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid"`
	PostUrl         string `protobuf:"bytes,7,opt,name=postUrl,proto3" json:"postUrl"`
}

func (x *BlueskyReplyResponse) Reset() {
	*x = BlueskyReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlueskyReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlueskyReplyResponse) ProtoMessage() {}

func (x *BlueskyReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[85]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlueskyReplyResponse.ProtoReflect.Descriptor instead.
func (*BlueskyReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{85}
}

func (x *BlueskyReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *BlueskyReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *BlueskyReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *BlueskyReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *BlueskyReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *BlueskyReplyResponse) GetCid() string {
	if x != nil {
		return x.Cid
	}
	return ""
}

func (x *BlueskyReplyResponse) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

// Facebook 回复评论响应
type FacebookReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
}

func (x *FacebookReplyResponse) Reset() {
	*x = FacebookReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FacebookReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FacebookReplyResponse) ProtoMessage() {}

func (x *FacebookReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[86]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FacebookReplyResponse.ProtoReflect.Descriptor instead.
func (*FacebookReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{86}
}

func (x *FacebookReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *FacebookReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *FacebookReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *FacebookReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *FacebookReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// LinkedIn 回复评论响应
type LinkedInReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
}

func (x *LinkedInReplyResponse) Reset() {
	*x = LinkedInReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LinkedInReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkedInReplyResponse) ProtoMessage() {}

func (x *LinkedInReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[87]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkedInReplyResponse.ProtoReflect.Descriptor instead.
func (*LinkedInReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{87}
}

func (x *LinkedInReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *LinkedInReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *LinkedInReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *LinkedInReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *LinkedInReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// Twitter/X 回复评论响应
type TwitterReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
	PostUrl         string `protobuf:"bytes,6,opt,name=postUrl,proto3" json:"postUrl"`
}

func (x *TwitterReplyResponse) Reset() {
	*x = TwitterReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TwitterReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TwitterReplyResponse) ProtoMessage() {}

func (x *TwitterReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[88]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TwitterReplyResponse.ProtoReflect.Descriptor instead.
func (*TwitterReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{88}
}

func (x *TwitterReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *TwitterReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *TwitterReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *TwitterReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *TwitterReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

func (x *TwitterReplyResponse) GetPostUrl() string {
	if x != nil {
		return x.PostUrl
	}
	return ""
}

// YouTube 回复评论响应
type YouTubeReplyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status          string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId       string `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	SourceCommentId string `protobuf:"bytes,3,opt,name=sourceCommentId,proto3" json:"sourceCommentId"`
	Comment         string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment"`
	Platform        string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform"`
}

func (x *YouTubeReplyResponse) Reset() {
	*x = YouTubeReplyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *YouTubeReplyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*YouTubeReplyResponse) ProtoMessage() {}

func (x *YouTubeReplyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[89]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use YouTubeReplyResponse.ProtoReflect.Descriptor instead.
func (*YouTubeReplyResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{89}
}

func (x *YouTubeReplyResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *YouTubeReplyResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *YouTubeReplyResponse) GetSourceCommentId() string {
	if x != nil {
		return x.SourceCommentId
	}
	return ""
}

func (x *YouTubeReplyResponse) GetComment() string {
	if x != nil {
		return x.Comment
	}
	return ""
}

func (x *YouTubeReplyResponse) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// 回复评论响应
type ReplyCommentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status    string                  `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	CommentId string                  `protobuf:"bytes,2,opt,name=commentId,proto3" json:"commentId"`
	Id        string                  `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	Instagram *InstagramReplyResponse `protobuf:"bytes,4,opt,name=instagram,proto3" json:"instagram"`
	Tiktok    *TikTokReplyResponse    `protobuf:"bytes,5,opt,name=tiktok,proto3" json:"tiktok"`
	Action    string                  `protobuf:"bytes,6,opt,name=action,proto3" json:"action"`
	Code      int32                   `protobuf:"varint,7,opt,name=code,proto3" json:"code"`
	Message   string                  `protobuf:"bytes,8,opt,name=message,proto3" json:"message"`
	// 其它平台的回复结果
	Bluesky  *BlueskyReplyResponse  `protobuf:"bytes,9,opt,name=bluesky,proto3" json:"bluesky"`
	Facebook *FacebookReplyResponse `protobuf:"bytes,10,opt,name=facebook,proto3" json:"facebook"`
	Linkedin *LinkedInReplyResponse `protobuf:"bytes,11,opt,name=linkedin,proto3" json:"linkedin"`
	Twitter  *TwitterReplyResponse  `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"`
	Youtube  *YouTubeReplyResponse  `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"`
}

func (x *ReplyCommentResponse) Reset() {
	*x = ReplyCommentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReplyCommentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReplyCommentResponse) ProtoMessage() {}

func (x *ReplyCommentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[90]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReplyCommentResponse.ProtoReflect.Descriptor instead.
func (*ReplyCommentResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{90}
}

func (x *ReplyCommentResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *ReplyCommentResponse) GetCommentId() string {
	if x != nil {
		return x.CommentId
	}
	return ""
}

func (x *ReplyCommentResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *ReplyCommentResponse) GetInstagram() *InstagramReplyResponse {
	if x != nil {
		return x.Instagram
	}
	return nil
}

func (x *ReplyCommentResponse) GetTiktok() *TikTokReplyResponse {
	if x != nil {
		return x.Tiktok
	}
	return nil
}

func (x *ReplyCommentResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *ReplyCommentResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *ReplyCommentResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *ReplyCommentResponse) GetBluesky() *BlueskyReplyResponse {
	if x != nil {
		return x.Bluesky
	}
	return nil
}

func (x *ReplyCommentResponse) GetFacebook() *FacebookReplyResponse {
	if x != nil {
		return x.Facebook
	}
	return nil
}

func (x *ReplyCommentResponse) GetLinkedin() *LinkedInReplyResponse {
	if x != nil {
		return x.Linkedin
	}
	return nil
}

func (x *ReplyCommentResponse) GetTwitter() *TwitterReplyResponse {
	if x != nil {
		return x.Twitter
	}
	return nil
}

func (x *ReplyCommentResponse) GetYoutube() *YouTubeReplyResponse {
	if x != nil {
		return x.Youtube
	}
	return nil
}

// 获取帖子分析数据请求
type GetPostAnalyticsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Platforms  []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"`
	ProfileKey string   `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetPostAnalyticsRequest) Reset() {
	*x = GetPostAnalyticsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPostAnalyticsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPostAnalyticsRequest) ProtoMessage() {}

func (x *GetPostAnalyticsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[91]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPostAnalyticsRequest.ProtoReflect.Descriptor instead.
func (*GetPostAnalyticsRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{91}
}

func (x *GetPostAnalyticsRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetPostAnalyticsRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *GetPostAnalyticsRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 通过 Social Post ID 获取帖子分析数据请求
type GetPostAnalyticsBySocialIDRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id               string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Platforms        []string `protobuf:"bytes,2,rep,name=platforms,proto3" json:"platforms"`
	SearchPlatformId bool     `protobuf:"varint,3,opt,name=searchPlatformId,proto3" json:"searchPlatformId"`
	ProfileKey       string   `protobuf:"bytes,4,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetPostAnalyticsBySocialIDRequest) Reset() {
	*x = GetPostAnalyticsBySocialIDRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPostAnalyticsBySocialIDRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPostAnalyticsBySocialIDRequest) ProtoMessage() {}

func (x *GetPostAnalyticsBySocialIDRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[92]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPostAnalyticsBySocialIDRequest.ProtoReflect.Descriptor instead.
func (*GetPostAnalyticsBySocialIDRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{92}
}

func (x *GetPostAnalyticsBySocialIDRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetPostAnalyticsBySocialIDRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *GetPostAnalyticsBySocialIDRequest) GetSearchPlatformId() bool {
	if x != nil {
		return x.SearchPlatformId
	}
	return false
}

func (x *GetPostAnalyticsBySocialIDRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 获取帖子分析数据响应（使用 JSON 字符串存储复杂的平台数据）
type GetPostAnalyticsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Code   int32  `protobuf:"varint,2,opt,name=code,proto3" json:"code"`
	Id     string `protobuf:"bytes,3,opt,name=id,proto3" json:"id"`
	// 各平台的分析数据以 JSON 字符串形式存储
	Bluesky   string `protobuf:"bytes,4,opt,name=bluesky,proto3" json:"bluesky"`
	Facebook  string `protobuf:"bytes,5,opt,name=facebook,proto3" json:"facebook"`
	Instagram string `protobuf:"bytes,6,opt,name=instagram,proto3" json:"instagram"`
	Linkedin  string `protobuf:"bytes,7,opt,name=linkedin,proto3" json:"linkedin"`
	Pinterest string `protobuf:"bytes,8,opt,name=pinterest,proto3" json:"pinterest"`
	Snapchat  string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat"`
	Threads   string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"`
	Tiktok    string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok"`
	Twitter   string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"`
	Youtube   string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"`
}

func (x *GetPostAnalyticsResponse) Reset() {
	*x = GetPostAnalyticsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPostAnalyticsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPostAnalyticsResponse) ProtoMessage() {}

func (x *GetPostAnalyticsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[93]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPostAnalyticsResponse.ProtoReflect.Descriptor instead.
func (*GetPostAnalyticsResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{93}
}

func (x *GetPostAnalyticsResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *GetPostAnalyticsResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetBluesky() string {
	if x != nil {
		return x.Bluesky
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetFacebook() string {
	if x != nil {
		return x.Facebook
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetInstagram() string {
	if x != nil {
		return x.Instagram
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetLinkedin() string {
	if x != nil {
		return x.Linkedin
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetPinterest() string {
	if x != nil {
		return x.Pinterest
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetSnapchat() string {
	if x != nil {
		return x.Snapchat
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetThreads() string {
	if x != nil {
		return x.Threads
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetTiktok() string {
	if x != nil {
		return x.Tiktok
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetTwitter() string {
	if x != nil {
		return x.Twitter
	}
	return ""
}

func (x *GetPostAnalyticsResponse) GetYoutube() string {
	if x != nil {
		return x.Youtube
	}
	return ""
}

// 获取社交网络分析数据请求
type GetSocialAnalyticsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Platforms  []string `protobuf:"bytes,1,rep,name=platforms,proto3" json:"platforms"`
	ProfileKey string   `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *GetSocialAnalyticsRequest) Reset() {
	*x = GetSocialAnalyticsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSocialAnalyticsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSocialAnalyticsRequest) ProtoMessage() {}

func (x *GetSocialAnalyticsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[94]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSocialAnalyticsRequest.ProtoReflect.Descriptor instead.
func (*GetSocialAnalyticsRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{94}
}

func (x *GetSocialAnalyticsRequest) GetPlatforms() []string {
	if x != nil {
		return x.Platforms
	}
	return nil
}

func (x *GetSocialAnalyticsRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// 获取社交网络分析数据响应（使用 JSON 字符串存储复杂的平台数据）
type GetSocialAnalyticsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	// 各平台的分析数据以 JSON 字符串形式存储
	Bluesky   string `protobuf:"bytes,2,opt,name=bluesky,proto3" json:"bluesky"`
	Facebook  string `protobuf:"bytes,3,opt,name=facebook,proto3" json:"facebook"`
	Gmb       string `protobuf:"bytes,4,opt,name=gmb,proto3" json:"gmb"`
	Instagram string `protobuf:"bytes,5,opt,name=instagram,proto3" json:"instagram"`
	Linkedin  string `protobuf:"bytes,6,opt,name=linkedin,proto3" json:"linkedin"`
	Pinterest string `protobuf:"bytes,7,opt,name=pinterest,proto3" json:"pinterest"`
	Reddit    string `protobuf:"bytes,8,opt,name=reddit,proto3" json:"reddit"`
	Snapchat  string `protobuf:"bytes,9,opt,name=snapchat,proto3" json:"snapchat"`
	Threads   string `protobuf:"bytes,10,opt,name=threads,proto3" json:"threads"`
	Tiktok    string `protobuf:"bytes,11,opt,name=tiktok,proto3" json:"tiktok"`
	Twitter   string `protobuf:"bytes,12,opt,name=twitter,proto3" json:"twitter"`
	Youtube   string `protobuf:"bytes,13,opt,name=youtube,proto3" json:"youtube"`
}

func (x *GetSocialAnalyticsResponse) Reset() {
	*x = GetSocialAnalyticsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetSocialAnalyticsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSocialAnalyticsResponse) ProtoMessage() {}

func (x *GetSocialAnalyticsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[95]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSocialAnalyticsResponse.ProtoReflect.Descriptor instead.
func (*GetSocialAnalyticsResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{95}
}

func (x *GetSocialAnalyticsResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetBluesky() string {
	if x != nil {
		return x.Bluesky
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetFacebook() string {
	if x != nil {
		return x.Facebook
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetGmb() string {
	if x != nil {
		return x.Gmb
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetInstagram() string {
	if x != nil {
		return x.Instagram
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetLinkedin() string {
	if x != nil {
		return x.Linkedin
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetPinterest() string {
	if x != nil {
		return x.Pinterest
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetReddit() string {
	if x != nil {
		return x.Reddit
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetSnapchat() string {
	if x != nil {
		return x.Snapchat
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetThreads() string {
	if x != nil {
		return x.Threads
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetTiktok() string {
	if x != nil {
		return x.Tiktok
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetTwitter() string {
	if x != nil {
		return x.Twitter
	}
	return ""
}

func (x *GetSocialAnalyticsResponse) GetYoutube() string {
	if x != nil {
		return x.Youtube
	}
	return ""
}

// AutoHashtagsRequest 自动生成标签请求参数
type AutoHashtagsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Post       string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"`
	Max        int32  `protobuf:"varint,2,opt,name=max,proto3" json:"max"`
	Position   string `protobuf:"bytes,3,opt,name=position,proto3" json:"position"`
	Language   string `protobuf:"bytes,4,opt,name=language,proto3" json:"language"`
	ProfileKey string `protobuf:"bytes,5,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *AutoHashtagsRequest) Reset() {
	*x = AutoHashtagsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AutoHashtagsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AutoHashtagsRequest) ProtoMessage() {}

func (x *AutoHashtagsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[96]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AutoHashtagsRequest.ProtoReflect.Descriptor instead.
func (*AutoHashtagsRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{96}
}

func (x *AutoHashtagsRequest) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *AutoHashtagsRequest) GetMax() int32 {
	if x != nil {
		return x.Max
	}
	return 0
}

func (x *AutoHashtagsRequest) GetPosition() string {
	if x != nil {
		return x.Position
	}
	return ""
}

func (x *AutoHashtagsRequest) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

func (x *AutoHashtagsRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// AutoHashtagsResponse 自动生成标签返回结果
type AutoHashtagsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Post    string `protobuf:"bytes,1,opt,name=post,proto3" json:"post"`
	Action  string `protobuf:"bytes,2,opt,name=action,proto3" json:"action"`
	Status  string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"`
	Code    int32  `protobuf:"varint,4,opt,name=code,proto3" json:"code"`
	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message"`
}

func (x *AutoHashtagsResponse) Reset() {
	*x = AutoHashtagsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AutoHashtagsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AutoHashtagsResponse) ProtoMessage() {}

func (x *AutoHashtagsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[97]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AutoHashtagsResponse.ProtoReflect.Descriptor instead.
func (*AutoHashtagsResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{97}
}

func (x *AutoHashtagsResponse) GetPost() string {
	if x != nil {
		return x.Post
	}
	return ""
}

func (x *AutoHashtagsResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *AutoHashtagsResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *AutoHashtagsResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *AutoHashtagsResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// CheckBannedHashtagRequest 查看被禁用标签请求
type CheckBannedHashtagRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hashtag    string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"`
	ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *CheckBannedHashtagRequest) Reset() {
	*x = CheckBannedHashtagRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckBannedHashtagRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckBannedHashtagRequest) ProtoMessage() {}

func (x *CheckBannedHashtagRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[98]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckBannedHashtagRequest.ProtoReflect.Descriptor instead.
func (*CheckBannedHashtagRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{98}
}

func (x *CheckBannedHashtagRequest) GetHashtag() string {
	if x != nil {
		return x.Hashtag
	}
	return ""
}

func (x *CheckBannedHashtagRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// CheckBannedHashtagResponse 查看被禁用标签返回结果
type CheckBannedHashtagResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hashtag string `protobuf:"bytes,1,opt,name=hashtag,proto3" json:"hashtag"`
	Banned  bool   `protobuf:"varint,2,opt,name=banned,proto3" json:"banned"`
	Action  string `protobuf:"bytes,3,opt,name=action,proto3" json:"action"`
	Status  string `protobuf:"bytes,4,opt,name=status,proto3" json:"status"`
	Code    int32  `protobuf:"varint,5,opt,name=code,proto3" json:"code"`
	Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message"`
}

func (x *CheckBannedHashtagResponse) Reset() {
	*x = CheckBannedHashtagResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[99]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CheckBannedHashtagResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CheckBannedHashtagResponse) ProtoMessage() {}

func (x *CheckBannedHashtagResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[99]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CheckBannedHashtagResponse.ProtoReflect.Descriptor instead.
func (*CheckBannedHashtagResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{99}
}

func (x *CheckBannedHashtagResponse) GetHashtag() string {
	if x != nil {
		return x.Hashtag
	}
	return ""
}

func (x *CheckBannedHashtagResponse) GetBanned() bool {
	if x != nil {
		return x.Banned
	}
	return false
}

func (x *CheckBannedHashtagResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *CheckBannedHashtagResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *CheckBannedHashtagResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *CheckBannedHashtagResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// HashtagRecommendation 单条推荐标签信息
type HashtagRecommendation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ViewCount int64  `protobuf:"varint,1,opt,name=viewCount,proto3" json:"viewCount"`
	Name      string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
}

func (x *HashtagRecommendation) Reset() {
	*x = HashtagRecommendation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[100]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HashtagRecommendation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HashtagRecommendation) ProtoMessage() {}

func (x *HashtagRecommendation) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[100]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HashtagRecommendation.ProtoReflect.Descriptor instead.
func (*HashtagRecommendation) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{100}
}

func (x *HashtagRecommendation) GetViewCount() int64 {
	if x != nil {
		return x.ViewCount
	}
	return 0
}

func (x *HashtagRecommendation) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// RecommendHashtagsRequest 推荐话题标签请求
type RecommendHashtagsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Keyword    string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"`
	ProfileKey string `protobuf:"bytes,2,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *RecommendHashtagsRequest) Reset() {
	*x = RecommendHashtagsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[101]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RecommendHashtagsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RecommendHashtagsRequest) ProtoMessage() {}

func (x *RecommendHashtagsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[101]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RecommendHashtagsRequest.ProtoReflect.Descriptor instead.
func (*RecommendHashtagsRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{101}
}

func (x *RecommendHashtagsRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

func (x *RecommendHashtagsRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// RecommendHashtagsResponse 推荐话题标签返回结果
type RecommendHashtagsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Keyword         string                   `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"`
	Recommendations []*HashtagRecommendation `protobuf:"bytes,2,rep,name=recommendations,proto3" json:"recommendations"`
	Action          string                   `protobuf:"bytes,3,opt,name=action,proto3" json:"action"`
	Status          string                   `protobuf:"bytes,4,opt,name=status,proto3" json:"status"`
	Code            int32                    `protobuf:"varint,5,opt,name=code,proto3" json:"code"`
	Message         string                   `protobuf:"bytes,6,opt,name=message,proto3" json:"message"`
}

func (x *RecommendHashtagsResponse) Reset() {
	*x = RecommendHashtagsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[102]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RecommendHashtagsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RecommendHashtagsResponse) ProtoMessage() {}

func (x *RecommendHashtagsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[102]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RecommendHashtagsResponse.ProtoReflect.Descriptor instead.
func (*RecommendHashtagsResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{102}
}

func (x *RecommendHashtagsResponse) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

func (x *RecommendHashtagsResponse) GetRecommendations() []*HashtagRecommendation {
	if x != nil {
		return x.Recommendations
	}
	return nil
}

func (x *RecommendHashtagsResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *RecommendHashtagsResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *RecommendHashtagsResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *RecommendHashtagsResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// SearchHashtagsRequest 搜索话题标签请求
type SearchHashtagsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Keyword    string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword"`
	SearchType string `protobuf:"bytes,2,opt,name=searchType,proto3" json:"searchType"`
	ProfileKey string `protobuf:"bytes,3,opt,name=profileKey,proto3" json:"profileKey"`
}

func (x *SearchHashtagsRequest) Reset() {
	*x = SearchHashtagsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[103]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchHashtagsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchHashtagsRequest) ProtoMessage() {}

func (x *SearchHashtagsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[103]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchHashtagsRequest.ProtoReflect.Descriptor instead.
func (*SearchHashtagsRequest) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{103}
}

func (x *SearchHashtagsRequest) GetKeyword() string {
	if x != nil {
		return x.Keyword
	}
	return ""
}

func (x *SearchHashtagsRequest) GetSearchType() string {
	if x != nil {
		return x.SearchType
	}
	return ""
}

func (x *SearchHashtagsRequest) GetProfileKey() string {
	if x != nil {
		return x.ProfileKey
	}
	return ""
}

// SearchHashtagInfo 单个话题标签的基本信息
type SearchHashtagInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id   string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"`
}

func (x *SearchHashtagInfo) Reset() {
	*x = SearchHashtagInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchHashtagInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchHashtagInfo) ProtoMessage() {}

func (x *SearchHashtagInfo) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[104]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchHashtagInfo.ProtoReflect.Descriptor instead.
func (*SearchHashtagInfo) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{104}
}

func (x *SearchHashtagInfo) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *SearchHashtagInfo) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// SearchHashtagChild 搜索结果中 children.data 的元素
type SearchHashtagChild struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
}

func (x *SearchHashtagChild) Reset() {
	*x = SearchHashtagChild{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[105]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchHashtagChild) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchHashtagChild) ProtoMessage() {}

func (x *SearchHashtagChild) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[105]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchHashtagChild.ProtoReflect.Descriptor instead.
func (*SearchHashtagChild) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{105}
}

func (x *SearchHashtagChild) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

// SearchHashtagChildren 搜索结果中的 children 对象
type SearchHashtagChildren struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data []*SearchHashtagChild `protobuf:"bytes,1,rep,name=data,proto3" json:"data"`
}

func (x *SearchHashtagChildren) Reset() {
	*x = SearchHashtagChildren{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[106]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchHashtagChildren) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchHashtagChildren) ProtoMessage() {}

func (x *SearchHashtagChildren) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[106]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchHashtagChildren.ProtoReflect.Descriptor instead.
func (*SearchHashtagChildren) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{106}
}

func (x *SearchHashtagChildren) GetData() []*SearchHashtagChild {
	if x != nil {
		return x.Data
	}
	return nil
}

// SearchHashtagMedia 搜索结果中的单条 Instagram 媒体信息
type SearchHashtagMedia struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Caption       string                 `protobuf:"bytes,1,opt,name=caption,proto3" json:"caption"`
	Children      *SearchHashtagChildren `protobuf:"bytes,2,opt,name=children,proto3" json:"children"`
	CommentsCount int32                  `protobuf:"varint,3,opt,name=commentsCount,proto3" json:"commentsCount"`
	Id            string                 `protobuf:"bytes,4,opt,name=id,proto3" json:"id"`
	LikeCount     int32                  `protobuf:"varint,5,opt,name=likeCount,proto3" json:"likeCount"`
	MediaType     string                 `protobuf:"bytes,6,opt,name=mediaType,proto3" json:"mediaType"`
	MediaUrl      string                 `protobuf:"bytes,7,opt,name=mediaUrl,proto3" json:"mediaUrl"`
	Permalink     string                 `protobuf:"bytes,8,opt,name=permalink,proto3" json:"permalink"`
	Timestamp     string                 `protobuf:"bytes,9,opt,name=timestamp,proto3" json:"timestamp"`
}

func (x *SearchHashtagMedia) Reset() {
	*x = SearchHashtagMedia{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[107]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchHashtagMedia) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchHashtagMedia) ProtoMessage() {}

func (x *SearchHashtagMedia) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[107]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchHashtagMedia.ProtoReflect.Descriptor instead.
func (*SearchHashtagMedia) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{107}
}

func (x *SearchHashtagMedia) GetCaption() string {
	if x != nil {
		return x.Caption
	}
	return ""
}

func (x *SearchHashtagMedia) GetChildren() *SearchHashtagChildren {
	if x != nil {
		return x.Children
	}
	return nil
}

func (x *SearchHashtagMedia) GetCommentsCount() int32 {
	if x != nil {
		return x.CommentsCount
	}
	return 0
}

func (x *SearchHashtagMedia) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *SearchHashtagMedia) GetLikeCount() int32 {
	if x != nil {
		return x.LikeCount
	}
	return 0
}

func (x *SearchHashtagMedia) GetMediaType() string {
	if x != nil {
		return x.MediaType
	}
	return ""
}

func (x *SearchHashtagMedia) GetMediaUrl() string {
	if x != nil {
		return x.MediaUrl
	}
	return ""
}

func (x *SearchHashtagMedia) GetPermalink() string {
	if x != nil {
		return x.Permalink
	}
	return ""
}

func (x *SearchHashtagMedia) GetTimestamp() string {
	if x != nil {
		return x.Timestamp
	}
	return ""
}

// SearchHashtagsResponse 搜索话题标签响应
type SearchHashtagsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status        string                `protobuf:"bytes,1,opt,name=status,proto3" json:"status"`
	Hashtag       *SearchHashtagInfo    `protobuf:"bytes,2,opt,name=hashtag,proto3" json:"hashtag"`
	SearchResults []*SearchHashtagMedia `protobuf:"bytes,3,rep,name=searchResults,proto3" json:"searchResults"`
	Count         int32                 `protobuf:"varint,4,opt,name=count,proto3" json:"count"`
	LastUpdated   string                `protobuf:"bytes,5,opt,name=lastUpdated,proto3" json:"lastUpdated"`
	NextUpdate    string                `protobuf:"bytes,6,opt,name=nextUpdate,proto3" json:"nextUpdate"`
	Action        string                `protobuf:"bytes,7,opt,name=action,proto3" json:"action"`
	Code          int32                 `protobuf:"varint,8,opt,name=code,proto3" json:"code"`
	Message       string                `protobuf:"bytes,9,opt,name=message,proto3" json:"message"`
}

func (x *SearchHashtagsResponse) Reset() {
	*x = SearchHashtagsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pb_ayrshare_proto_msgTypes[108]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SearchHashtagsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SearchHashtagsResponse) ProtoMessage() {}

func (x *SearchHashtagsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_pb_ayrshare_proto_msgTypes[108]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SearchHashtagsResponse.ProtoReflect.Descriptor instead.
func (*SearchHashtagsResponse) Descriptor() ([]byte, []int) {
	return file_pb_ayrshare_proto_rawDescGZIP(), []int{108}
}

func (x *SearchHashtagsResponse) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *SearchHashtagsResponse) GetHashtag() *SearchHashtagInfo {
	if x != nil {
		return x.Hashtag
	}
	return nil
}

func (x *SearchHashtagsResponse) GetSearchResults() []*SearchHashtagMedia {
	if x != nil {
		return x.SearchResults
	}
	return nil
}

func (x *SearchHashtagsResponse) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *SearchHashtagsResponse) GetLastUpdated() string {
	if x != nil {
		return x.LastUpdated
	}
	return ""
}

func (x *SearchHashtagsResponse) GetNextUpdate() string {
	if x != nil {
		return x.NextUpdate
	}
	return ""
}

func (x *SearchHashtagsResponse) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (x *SearchHashtagsResponse) GetCode() int32 {
	if x != nil {
		return x.Code
	}
	return 0
}

func (x *SearchHashtagsResponse) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

var File_pb_ayrshare_proto protoreflect.FileDescriptor

var file_pb_ayrshare_proto_rawDesc = []byte{
	0x0a, 0x11, 0x70, 0x62, 0x2f, 0x61, 0x79, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x08, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x1a, 0x13, 0x70,
	0x62, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x12, 0x70, 0x62, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x41, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x54, 0x61,
	0x67, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a,
	0x01, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, 0x22, 0x93, 0x03, 0x0a, 0x10, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26,
	0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x65, 0x6c, 0x73, 0x46, 0x65, 0x65, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x52, 0x65, 0x65,
	0x6c, 0x73, 0x46, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x64, 0x69, 0x6f,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61,
	0x69, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x4f,
	0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 0x68, 0x75,
	0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07,
	0x73, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73,
	0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78,
	0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74,
	0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
	0x12, 0x2d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x55, 0x73,
	0x65, 0x72, 0x54, 0x61, 0x67, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x54, 0x61, 0x67, 0x73, 0x12,
	0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73,
	0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x62, 0x6f, 0x72,
	0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x52,
	0x65, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22,
	0xdd, 0x03, 0x0a, 0x0d, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x4d, 0x75, 0x73, 0x69,
	0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64,
	0x4d, 0x75, 0x73, 0x69, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x65, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x75, 0x65,
	0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x69, 0x74,
	0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x53, 0x74, 0x69, 0x74, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x12, 0x24, 0x0a,
	0x0d, 0x69, 0x73, 0x41, 0x49, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x41, 0x49, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
	0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64,
	0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69,
	0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
	0x26, 0x0a, 0x0e, 0x69, 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
	0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x42, 0x72, 0x61, 0x6e, 0x64,
	0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65,
	0x43, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62,
	0x4e, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12,
	0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22,
	0xe8, 0x03, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69,
	0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b,
	0x6d, 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0b, 0x6d, 0x61, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x4b, 0x69, 0x64, 0x73, 0x12, 0x1c,
	0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x4e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a,
	0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11,
	0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72,
	0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68,
	0x6f, 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x6f, 0x72,
	0x74, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x53, 0x79,
	0x6e, 0x74, 0x68, 0x65, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x53, 0x79, 0x6e, 0x74,
	0x68, 0x65, 0x74, 0x69, 0x63, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75,
	0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70,
	0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x54,
	0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73,
	0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75,
	0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0d,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x54, 0x69, 0x74,
	0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75,
	0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x0e, 0x42, 0x6c,
	0x75, 0x65, 0x73, 0x6b, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07,
	0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61,
	0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8f, 0x05, 0x0a, 0x0b, 0x50, 0x6f, 0x73, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73, 0x74,
	0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7,
	0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2,
	0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9,
	0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd,
	0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72,
	0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55,
	0x72, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x22, 0x0a,
	0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74,
	0x65, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68,
	0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12,
	0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69,
	0x6e, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a,
	0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x0d, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x4f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b,
	0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0e, 0x79, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x79, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b,
	0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b,
	0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b,
	0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa4, 0x02, 0x0a, 0x06, 0x50, 0x6f, 0x73,
	0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63,
	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a,
	0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x0a,
	0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x64, 0x65, 0x64,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x18, 0x0a,
	0x07, 0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x69, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64,
	0x65, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x69, 0x64, 0x65,
	0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x22,
	0xe0, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x07,
	0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x52,
	0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x22,
	0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74,
	0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b,
	0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6b, 0x54, 0x6f, 0x6b,
	0x49, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x70,
	0x6f, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05,
	0x70, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2a, 0x0a,
	0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64,
	0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0b, 0x69, 0x73, 0x56,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50,
	0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8,
	0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7,
	0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xfd, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74,
	0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c,
	0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f,
	0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x2a,
	0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x10, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49,
	0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72,
	0x65, 0x66, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65,
	0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72,
	0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
	0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
	0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44,
	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x5b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x21,
	0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64,
	0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x75, 0x74, 0x63, 0x22, 0x7a, 0x0a, 0x0c, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x55, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68,
	0x6c, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68,
	0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d,
	0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d,
	0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x22,
	0xb5, 0x06, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73,
	0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49,
	0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67,
	0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
	0x72, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
	0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x73, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70,
	0x6c, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c,
	0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55,
	0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77,
	0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x69, 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75,
	0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x75, 0x73, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x14, 0x72, 0x65, 0x66,
	0x72, 0x65, 0x73, 0x68, 0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e,
	0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
	0x44, 0x61, 0x79, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a,
	0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
	0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x1c, 0x69, 0x73, 0x45, 0x6c, 0x69,
	0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x72,
	0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x69,
	0x73, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x47, 0x65, 0x6f, 0x52,
	0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69,
	0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x69, 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
	0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x74, 0x77, 0x69, 0x74, 0x74,
	0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72,
	0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x55, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54,
	0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
	0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x05, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x61,
	0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12,
	0x2d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x39,
	0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e,
	0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0c, 0x64, 0x69, 0x73,
	0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61,
	0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12,
	0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c,
	0x6c, 0x12, 0x4c, 0x0a, 0x21, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f,
	0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c,
	0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x21, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62,
	0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d,
	0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69,
	0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79,
	0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74,
	0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x6f, 0x6e,
	0x74, 0x68, 0x6c, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x32, 0x0a,
	0x14, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73,
	0x51, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x6d, 0x6f, 0x6e,
	0x74, 0x68, 0x6c, 0x79, 0x41, 0x70, 0x69, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x51, 0x75, 0x6f, 0x74,
	0x61, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a,
	0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12,
	0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
	0xb7, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0xe2, 0xdf, 0x1f, 0x15, 0x2a, 0x11, 0x74,
	0x69, 0x74, 0x6c, 0x65, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba,
	0x58, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74,
	0x69, 0x76, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x54, 0x6f, 0x70, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65,
	0x54, 0x6f, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x70,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f,
	0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d,
	0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x12, 0x0a,
	0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x65, 0x61,
	0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x15, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74,
	0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c,
	0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x22, 0xc7, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14,
	0x0a, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72,
	0x65, 0x66, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
	0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x42,
	0x0a, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
	0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x73, 0x41, 0x63,
	0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x73, 0x12, 0x26, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42,
	0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0c, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
	0x48, 0x00, 0x52, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x74,
	0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x42, 0x0b,
	0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x22, 0x96, 0x02, 0x0a, 0x0b,
	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73,
	0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a,
	0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x54, 0x43, 0x12, 0x14, 0x0a, 0x05,
	0x72, 0x65, 0x66, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66,
	0x49, 0x64, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69,
	0x61, 0x6c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x63,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e,
	0x64, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x73, 0x70, 0x65,
	0x6e, 0x64, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
	0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05,
	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d,
	0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49,
	0x74, 0x65, 0x6d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a,
	0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x05, 0x45,
	0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x74, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12,
	0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f,
	0x64, 0x79, 0x22, 0xdb, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a,
	0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d,
	0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69,
	0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65,
	0x79, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba,
	0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65,
	0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
	0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c,
	0x6c, 0x6f, 0x77, 0x65, 0x64, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76,
	0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x76, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x06, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x12, 0x1c, 0x0a, 0x09, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
	0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x6d, 0x61,
	0x69, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68,
	0x61, 0x72, 0x65, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
	0x22, 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03,
	0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1c,
	0x0a, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x09, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09,
	0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x48,
	0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73,
	0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56,
	0x69, 0x64, 0x65, 0x6f, 0x22, 0xfb, 0x04, 0x0a, 0x0b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
	0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64,
	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x64,
	0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a,
	0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
	0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76,
	0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76,
	0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x42, 0x79,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64,
	0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x44, 0x61,
	0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76,
	0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74,
	0x65, 0x64, 0x42, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6a, 0x65,
	0x63, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74,
	0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65,
	0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65,
	0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x18, 0x10,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x41, 0x70,
	0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65,
	0x66, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64,
	0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x13, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22,
	0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x14,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e,
	0x6b, 0x73, 0x22, 0x8b, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x73,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x61, 0x79, 0x73,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c,
	0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79,
	0x22, 0xb3, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f,
	0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68,
	0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52,
	0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x66, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x66, 0x49, 0x64, 0x12, 0x14,
	0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x69,
	0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c, 0xe2, 0xdf,
	0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8,
	0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26,
	0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x6c,
	0x6c, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x90, 0x03, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x48, 0x69,
	0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x74, 0x69, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a,
	0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70,
	0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50,
	0x6f, 0x73, 0x74, 0x49, 0x64, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
	0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
	0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a,
	0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74,
	0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73,
	0x68, 0x6f, 0x72, 0x74, 0x65, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70,
	0x6f, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12,
	0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x50, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f,
	0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18,
	0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74,
	0x22, 0x7b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79,
	0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x3c, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x20, 0xe2, 0xdf, 0x1f, 0x1c, 0x2a, 0x18, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5,
	0x90, 0x8d, 0xe7, 0xa7, 0xb0, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9,
	0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a,
	0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xa6, 0x01,
	0x0a, 0x1c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x74, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x70,
	0x6f, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a,
	0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe4, 0xb8, 0x8d,
	0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, 0xe2, 0xdf, 0x1f, 0x1b,
	0x2a, 0x17, 0xe6, 0x8e, 0xa5, 0xe6, 0x94, 0xb6, 0xe8, 0x80, 0x85, 0x49, 0x44, 0xe4, 0xb8, 0x8d,
	0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x63,
	0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18,
	0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79,
	0x22, 0xdb, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69,
	0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72,
	0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55,
	0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55,
	0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
	0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x96,
	0x02, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20,
	0x0a, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18,
	0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x63, 0x6f, 0x64, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73,
	0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36,
	0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x1a, 0xe2, 0xdf, 0x1f, 0x16, 0x2a, 0x12, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe4, 0xb8,
	0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x08, 0x70, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26,
	0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72,
	0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b,
	0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4b, 0x65, 0x79, 0x22, 0x39, 0x0a, 0x11, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41,
	0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a,
	0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22,
	0x78, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70,
	0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69,
	0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x57, 0x0a, 0x17, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74,
	0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75,
	0x72, 0x65, 0x22, 0x3f, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a,
	0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d,
	0x6f, 0x6a, 0x69, 0x22, 0x96, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x65, 0x74,
	0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63,
	0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x72,
	0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e,
	0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69,
	0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f,
	0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61,
	0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a, 0x17,
	0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70,
	0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69,
	0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72,
	0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e,
	0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
	0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x61, 0x74,
	0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x77, 0x61,
	0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xe7, 0x02, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73,
	0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x20,
	0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
	0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65,
	0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x50, 0x0a, 0x14, 0x63, 0x6f,
	0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68,
	0x61, 0x72, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d,
	0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8,
	0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27,
	0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f,
	0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba,
	0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
	0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65,
	0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1c,
	0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x1e, 0x0a, 0x0a,
	0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x86, 0x01, 0x0a,
	0x18, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b,
	0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76,
	0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69,
	0x64, 0x65, 0x6f, 0x49, 0x64, 0x22, 0xb0, 0x01, 0x0a, 0x16, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b,
	0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18,
	0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x46, 0x61, 0x63,
	0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x22, 0xa5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x54, 0x77, 0x69,
	0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x84, 0x01,
	0x0a, 0x16, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18,
	0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
	0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x70, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xbc, 0x05, 0x0a,
	0x13, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1f, 0x0a, 0x0c, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x41, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x09, 0x69,
	0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67,
	0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x37, 0x0a,
	0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06,
	0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
	0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68,
	0x61, 0x72, 0x65, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x62, 0x6c, 0x75,
	0x65, 0x73, 0x6b, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x62, 0x6c,
	0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x3d, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f,
	0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65,
	0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3d, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e,
	0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
	0x64, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e,
	0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12,
	0x3a, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54,
	0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0x5b, 0x0a, 0x11, 0x47,
	0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf,
	0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7,
	0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x4f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74,
	0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x11, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc9,
	0x03, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
	0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49,
	0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72,
	0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69,
	0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c,
	0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c,
	0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2f,
	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61,
	0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
	0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0b, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x41, 0x6c, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x04, 0x0a, 0x0d, 0x54,
	0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e,
	0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20,
	0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77,
	0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
	0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e,
	0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69,
	0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x69, 0x6e, 0x6e,
	0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28,
	0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72,
	0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c,
	0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x10, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f,
	0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49,
	0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18,
	0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x22, 0xb4, 0x03, 0x0a, 0x0e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c,
	0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61,
	0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73,
	0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b,
	0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61,
	0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f,
	0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a,
	0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07,
	0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79,
	0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73,
	0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65,
	0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x65,
	0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x88, 0x01, 0x0a,
	0x0e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12,
	0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x16, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62,
	0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x18, 0x0a,
	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xac, 0x03, 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65,
	0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61,
	0x6e, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e,
	0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66,
	0x72, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x73, 0x65,
	0x72, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52,
	0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65, 0x73,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x6b, 0x65,
	0x73, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61,
	0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x72,
	0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x22, 0x35, 0x0a, 0x0d, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64,
	0x49, 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75,
	0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x66, 0x0a,
	0x0c, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x12, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x03, 0x0a, 0x0f, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64,
	0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6e, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72,
	0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x66,
	0x72, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x46, 0x72, 0x6f,
	0x6d, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x07,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e,
	0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x05, 0x6d,
	0x65, 0x64, 0x69, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65,
	0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73,
	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73,
	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65,
	0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64,
	0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x67, 0x61,
	0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77,
	0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x22, 0x30, 0x0a, 0x0a, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74,
	0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xfd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64,
	0x64, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x04,
	0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65, 0x64,
	0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x72, 0x65,
	0x64, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x03, 0x75, 0x70, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x53, 0x75, 0x62, 0x6d,
	0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53,
	0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x22, 0x8c, 0x04, 0x0a, 0x0e, 0x54, 0x68, 0x72,
	0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a,
	0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a,
	0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x73, 0x74, 0x12,
	0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x42, 0x79, 0x4d, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4f, 0x77, 0x6e, 0x65,
	0x64, 0x42, 0x79, 0x4d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79,
	0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
	0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70,
	0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x73,
	0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x0d,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e,
	0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07,
	0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x79,
	0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x72, 0x65, 0x70, 0x6c, 0x79, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a,
	0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x14, 0x54, 0x77, 0x69, 0x74,
	0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
	0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77,
	0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x6f, 0x6c, 0x6c,
	0x6f, 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0e, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x77, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x77, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x22, 0x3c, 0x0a, 0x16, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,
	0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xae,
	0x02, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54,
	0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67,
	0x65, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70,
	0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77,
	0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69,
	0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
	0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22,
	0xa4, 0x05, 0x0a, 0x0e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d,
	0x61, 0x72, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f,
	0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49,
	0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x44,
	0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x65, 0x74,
	0x72, 0x69, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
	0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77, 0x69, 0x74, 0x74, 0x65,
	0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65, 0x74,
	0x52, 0x10, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x77, 0x65, 0x65,
	0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x18, 0x10, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54,
	0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x52, 0x07, 0x72,
	0x65, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64,
	0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x74, 0x68,
	0x72, 0x65, 0x61, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73,
	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73,
	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x59, 0x6f, 0x75, 0x54, 0x75,
	0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b,
	0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69,
	0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d,
	0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xd0, 0x02, 0x0a, 0x0e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62,
	0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73,
	0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73,
	0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65,
	0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65,
	0x70, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x72,
	0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9e, 0x05, 0x0a, 0x12, 0x47, 0x65, 0x74,
	0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x38, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x69, 0x6b,
	0x74, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
	0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
	0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x62, 0x6c,
	0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72,
	0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x43, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x35,
	0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65,
	0x62, 0x6f, 0x6f, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x66, 0x61, 0x63,
	0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69,
	0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x06,
	0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x64, 0x69, 0x74, 0x43, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x32, 0x0a,
	0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64,
	0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64,
	0x73, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x77,
	0x69, 0x74, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x77,
	0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65,
	0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16,
	0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e, 0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8,
	0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74,
	0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,
	0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79,
	0x22, 0x73, 0x0a, 0x17, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x54, 0x69, 0x6b, 0x54, 0x6f, 0x6b,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c,
	0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcb, 0x02, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74,
	0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16,
	0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x1a,
	0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69,
	0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69,
	0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64,
	0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73,
	0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f,
	0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75,
	0x74, 0x75, 0x62, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x16, 0xe2, 0xdf, 0x1f, 0x12, 0x2a, 0x0e,
	0x69, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba,
	0x58, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b,
	0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5,
	0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83,
	0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66,
	0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x54, 0x69, 0x6b, 0x54,
	0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x49, 0x64, 0x22,
	0xd8, 0x01, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28,
	0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10,
	0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64,
	0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x72, 0x6c, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x46,
	0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4c,
	0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a,
	0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xc6, 0x01, 0x0a, 0x14, 0x54,
	0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a,
	0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x73,
	0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x73, 0x74,
	0x55, 0x72, 0x6c, 0x22, 0xac, 0x01, 0x0a, 0x14, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x22, 0xc1, 0x04, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x49,
	0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61,
	0x6d, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6b,
	0x54, 0x6f, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x38,
	0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x73,
	0x6b, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52,
	0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65,
	0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x66, 0x61, 0x63,
	0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x3b, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69,
	0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64,
	0x69, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x54,
	0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07,
	0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x59, 0x6f, 0x75, 0x54, 0x75, 0x62, 0x65,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x79,
	0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x6f,
	0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1c,
	0xe2, 0xdf, 0x1f, 0x18, 0x2a, 0x14, 0xe5, 0xb8, 0x96, 0xe5, 0xad, 0x90, 0x49, 0x44, 0xe4, 0xb8,
	0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c, 0x61, 0x74, 0x66,
	0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97, 0xe8, 0xa1, 0xa8,
	0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x60, 0x01,
	0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee, 0x01, 0x0a, 0x21,
	0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
	0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x32, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe2,
	0xdf, 0x1f, 0x1e, 0x2a, 0x1a, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x50, 0x6f, 0x73, 0x74,
	0x20, 0x49, 0x44, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58,
	0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
	0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21,
	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5,
	0x88, 0x97, 0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9,
	0xba, 0x58, 0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73,
	0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72,
	0x63, 0x68, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a,
	0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xe6, 0x02, 0x0a,
	0x18, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12,
	0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x69,
	0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
	0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x6e,
	0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x69, 0x6e,
	0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65,
	0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72,
	0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x12,
	0x18, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b,
	0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f,
	0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x74, 0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79,
	0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f,
	0x75, 0x74, 0x75, 0x62, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63,
	0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xe2, 0xdf, 0x1f, 0x27, 0x2a, 0x21, 0x70, 0x6c,
	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0xe5, 0xb9, 0xb3, 0xe5, 0x8f, 0xb0, 0xe5, 0x88, 0x97,
	0xe8, 0xa1, 0xa8, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58,
	0x01, 0x60, 0x01, 0x52, 0x09, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x12, 0x1e,
	0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xee,
	0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6c, 0x75, 0x65, 0x73, 0x6b, 0x79, 0x12,
	0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x67,
	0x6d, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x6d, 0x62, 0x12, 0x1c, 0x0a,
	0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6c,
	0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c,
	0x69, 0x6e, 0x6b, 0x65, 0x64, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x69, 0x6e, 0x74,
	0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x64, 0x64, 0x69, 0x74, 0x12, 0x1a, 0x0a,
	0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x73, 0x6e, 0x61, 0x70, 0x63, 0x68, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x72,
	0x65, 0x61, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65,
	0x61, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x6b, 0x74, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x74,
	0x77, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x77,
	0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x22,
	0xb3, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xe2, 0xdf, 0x1f, 0x1a, 0x2a, 0x16, 0x70, 0x6f, 0x73,
	0x74, 0xe5, 0x86, 0x85, 0xe5, 0xae, 0xb9, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba,
	0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6d,
	0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x12, 0x1a, 0x0a,
	0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61,
	0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f,
	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x22, 0x72, 0x0a, 0x19, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48,
	0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a,
	0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b,
	0xe2, 0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0xe4, 0xb8, 0x8d,
	0xe8, 0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x68, 0x61, 0x73,
	0x68, 0x74, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b,
	0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
	0x65, 0x4b, 0x65, 0x79, 0x22, 0xac, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61,
	0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12, 0x16, 0x0a,
	0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62,
	0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x15, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
	0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x71,
	0x0a, 0x18, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74,
	0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x6b, 0x65,
	0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2, 0xdf, 0x1f,
	0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8, 0x83, 0xbd,
	0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65,
	0x79, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48,
	0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x65, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x48, 0x61,
	0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73,
	0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x07,
	0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xe2,
	0xdf, 0x1f, 0x17, 0x2a, 0x13, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0xe4, 0xb8, 0x8d, 0xe8,
	0x83, 0xbd, 0xe4, 0xb8, 0xba, 0xe7, 0xa9, 0xba, 0x58, 0x01, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77,
	0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65,
	0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
	0x4b, 0x65, 0x79, 0x22, 0x37, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73,
	0x68, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x24, 0x0a, 0x12,
	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69,
	0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x22, 0x49, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68,
	0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74,
	0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb5, 0x02,
	0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d,
	0x65, 0x64, 0x69, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b,
	0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72,
	0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65,
	0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x69, 0x6b, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
	0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72,
	0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65,
	0x72, 0x6d, 0x61, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc9, 0x02, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68,
	0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74,
	0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x12,
	0x42, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x4d,
	0x65, 0x64, 0x69, 0x61, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73,
	0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6e,
	0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x6e, 0x65, 0x78, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x32, 0x8c, 0x0e, 0x0a, 0x08, 0x41, 0x79, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x35,
	0x0a, 0x04, 0x50, 0x6f, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74,
	0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50,
	0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x12, 0x18, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50,
	0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72,
	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e,
	0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a,
	0x57, 0x54, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65,
	0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65,
	0x72, 0x61, 0x74, 0x65, 0x4a, 0x57, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74,
	0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x48,
	0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x72, 0x79,
	0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
	0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x72,
	0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
	0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a,
	0x14, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x25, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65,
	0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f,
	0x72, 0x79, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53,
	0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x6e,
	0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12,
	0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b,
	0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x61, 0x72,
	0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43,
	0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47,
	0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x50, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65,
	0x70, 0x6c, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61,
	0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73,
	0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a,
	0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x2b, 0x2e, 0x61, 0x72,
	0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x42, 0x79, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49,
	0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68,
	0x61, 0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12,
	0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x47, 0x65,
	0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x41, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a,
	0x0c, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1d, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73,
	0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61,
	0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x61, 0x73, 0x68,
	0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12,
	0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74,
	0x61, 0x67, 0x12, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x43, 0x68,
	0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61,
	0x72, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x61,
	0x73, 0x68, 0x74, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a,
	0x11, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61,
	0x67, 0x73, 0x12, 0x22, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x52, 0x65,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x74,
	0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x53,
	0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x2e,
	0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48,
	0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
	0x2e, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
	0x48, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x42, 0x0c, 0x5a, 0x0a, 0x2e, 0x2f, 0x61, 0x72, 0x79, 0x73, 0x68, 0x61, 0x72, 0x65, 0x62, 0x06,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_pb_ayrshare_proto_rawDescOnce sync.Once
	file_pb_ayrshare_proto_rawDescData = file_pb_ayrshare_proto_rawDesc
)

func file_pb_ayrshare_proto_rawDescGZIP() []byte {
	file_pb_ayrshare_proto_rawDescOnce.Do(func() {
		file_pb_ayrshare_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_ayrshare_proto_rawDescData)
	})
	return file_pb_ayrshare_proto_rawDescData
}

var file_pb_ayrshare_proto_msgTypes = make([]protoimpl.MessageInfo, 109)
var file_pb_ayrshare_proto_goTypes = []interface{}{
	(*UserTag)(nil),                           // 0: aryshare.UserTag
	(*InstagramOptions)(nil),                  // 1: aryshare.InstagramOptions
	(*TikTokOptions)(nil),                     // 2: aryshare.TikTokOptions
	(*YouTubeOptions)(nil),                    // 3: aryshare.YouTubeOptions
	(*BlueskyOptions)(nil),                    // 4: aryshare.BlueskyOptions
	(*PostRequest)(nil),                       // 5: aryshare.PostRequest
	(*PostId)(nil),                            // 6: aryshare.PostId
	(*PostItem)(nil),                          // 7: aryshare.PostItem
	(*PostResponse)(nil),                      // 8: aryshare.PostResponse
	(*GetPostRequest)(nil),                    // 9: aryshare.GetPostRequest
	(*GetPostResponse)(nil),                   // 10: aryshare.GetPostResponse
	(*GetUserRequest)(nil),                    // 11: aryshare.GetUserRequest
	(*Timestamp)(nil),                         // 12: aryshare.Timestamp
	(*TwitterUsage)(nil),                      // 13: aryshare.TwitterUsage
	(*DisplayName)(nil),                       // 14: aryshare.DisplayName
	(*GetUserResponse)(nil),                   // 15: aryshare.GetUserResponse
	(*CreateProfileRequest)(nil),              // 16: aryshare.CreateProfileRequest
	(*CreateProfileResponse)(nil),             // 17: aryshare.CreateProfileResponse
	(*GetProfilesRequest)(nil),                // 18: aryshare.GetProfilesRequest
	(*ProfileItem)(nil),                       // 19: aryshare.ProfileItem
	(*Pagination)(nil),                        // 20: aryshare.Pagination
	(*GetProfilesResponse)(nil),               // 21: aryshare.GetProfilesResponse
	(*Email)(nil),                             // 22: aryshare.Email
	(*GenerateJWTRequest)(nil),                // 23: aryshare.GenerateJWTRequest
	(*GenerateJWTResponse)(nil),               // 24: aryshare.GenerateJWTResponse
	(*HistoryPostId)(nil),                     // 25: aryshare.HistoryPostId
	(*HistoryItem)(nil),                       // 26: aryshare.HistoryItem
	(*GetHistoryRequest)(nil),                 // 27: aryshare.GetHistoryRequest
	(*GetHistoryResponse)(nil),                // 28: aryshare.GetHistoryResponse
	(*GetHistoryByIdRequest)(nil),             // 29: aryshare.GetHistoryByIdRequest
	(*GetHistoryByIdResponse)(nil),            // 30: aryshare.GetHistoryByIdResponse
	(*PlatformPost)(nil),                      // 31: aryshare.PlatformPost
	(*GetHistoryByPlatformRequest)(nil),       // 32: aryshare.GetHistoryByPlatformRequest
	(*GetHistoryByPlatformResponse)(nil),      // 33: aryshare.GetHistoryByPlatformResponse
	(*SendMessageRequest)(nil),                // 34: aryshare.SendMessageRequest
	(*MessageItem)(nil),                       // 35: aryshare.MessageItem
	(*SendMessageResponse)(nil),               // 36: aryshare.SendMessageResponse
	(*GetMessagesRequest)(nil),                // 37: aryshare.GetMessagesRequest
	(*MessageAttachment)(nil),                 // 38: aryshare.MessageAttachment
	(*MessageSenderDetails)(nil),              // 39: aryshare.MessageSenderDetails
	(*MessageRecipientDetails)(nil),           // 40: aryshare.MessageRecipientDetails
	(*MessageReaction)(nil),                   // 41: aryshare.MessageReaction
	(*GetMessagesItem)(nil),                   // 42: aryshare.GetMessagesItem
	(*ConversationParticipant)(nil),           // 43: aryshare.ConversationParticipant
	(*ConversationDetail)(nil),                // 44: aryshare.ConversationDetail
	(*GetMessagesResponse)(nil),               // 45: aryshare.GetMessagesResponse
	(*PostCommentRequest)(nil),                // 46: aryshare.PostCommentRequest
	(*InstagramCommentResponse)(nil),          // 47: aryshare.InstagramCommentResponse
	(*TikTokCommentResponse)(nil),             // 48: aryshare.TikTokCommentResponse
	(*BlueskyCommentResponse)(nil),            // 49: aryshare.BlueskyCommentResponse
	(*FacebookCommentResponse)(nil),           // 50: aryshare.FacebookCommentResponse
	(*LinkedInCommentResponse)(nil),           // 51: aryshare.LinkedInCommentResponse
	(*TwitterCommentResponse)(nil),            // 52: aryshare.TwitterCommentResponse
	(*YouTubeCommentResponse)(nil),            // 53: aryshare.YouTubeCommentResponse
	(*PlatformError)(nil),                     // 54: aryshare.PlatformError
	(*PostCommentResponse)(nil),               // 55: aryshare.PostCommentResponse
	(*GetCommentRequest)(nil),                 // 56: aryshare.GetCommentRequest
	(*InstagramUser)(nil),                     // 57: aryshare.InstagramUser
	(*InstagramUserInfo)(nil),                 // 58: aryshare.InstagramUserInfo
	(*InstagramComment)(nil),                  // 59: aryshare.InstagramComment
	(*TikTokComment)(nil),                     // 60: aryshare.TikTokComment
	(*BlueskyComment)(nil),                    // 61: aryshare.BlueskyComment
	(*FacebookUser)(nil),                      // 62: aryshare.FacebookUser
	(*FacebookParent)(nil),                    // 63: aryshare.FacebookParent
	(*FacebookComment)(nil),                   // 64: aryshare.FacebookComment
	(*LinkedInMedia)(nil),                     // 65: aryshare.LinkedInMedia
	(*LinkedInFrom)(nil),                      // 66: aryshare.LinkedInFrom
	(*LinkedInComment)(nil),                   // 67: aryshare.LinkedInComment
	(*RedditUser)(nil),                        // 68: aryshare.RedditUser
	(*RedditComment)(nil),                     // 69: aryshare.RedditComment
	(*ThreadsComment)(nil),                    // 70: aryshare.ThreadsComment
	(*TwitterPublicMetrics)(nil),              // 71: aryshare.TwitterPublicMetrics
	(*TwitterReferencedTweet)(nil),            // 72: aryshare.TwitterReferencedTweet
	(*TwitterReplyTo)(nil),                    // 73: aryshare.TwitterReplyTo
	(*TwitterComment)(nil),                    // 74: aryshare.TwitterComment
	(*YouTubeReply)(nil),                      // 75: aryshare.YouTubeReply
	(*YouTubeComment)(nil),                    // 76: aryshare.YouTubeComment
	(*GetCommentResponse)(nil),                // 77: aryshare.GetCommentResponse
	(*DeleteCommentRequest)(nil),              // 78: aryshare.DeleteCommentRequest
	(*InstagramDeleteResponse)(nil),           // 79: aryshare.InstagramDeleteResponse
	(*TikTokDeleteResponse)(nil),              // 80: aryshare.TikTokDeleteResponse
	(*DeleteCommentResponse)(nil),             // 81: aryshare.DeleteCommentResponse
	(*ReplyCommentRequest)(nil),               // 82: aryshare.ReplyCommentRequest
	(*InstagramReplyResponse)(nil),            // 83: aryshare.InstagramReplyResponse
	(*TikTokReplyResponse)(nil),               // 84: aryshare.TikTokReplyResponse
	(*BlueskyReplyResponse)(nil),              // 85: aryshare.BlueskyReplyResponse
	(*FacebookReplyResponse)(nil),             // 86: aryshare.FacebookReplyResponse
	(*LinkedInReplyResponse)(nil),             // 87: aryshare.LinkedInReplyResponse
	(*TwitterReplyResponse)(nil),              // 88: aryshare.TwitterReplyResponse
	(*YouTubeReplyResponse)(nil),              // 89: aryshare.YouTubeReplyResponse
	(*ReplyCommentResponse)(nil),              // 90: aryshare.ReplyCommentResponse
	(*GetPostAnalyticsRequest)(nil),           // 91: aryshare.GetPostAnalyticsRequest
	(*GetPostAnalyticsBySocialIDRequest)(nil), // 92: aryshare.GetPostAnalyticsBySocialIDRequest
	(*GetPostAnalyticsResponse)(nil),          // 93: aryshare.GetPostAnalyticsResponse
	(*GetSocialAnalyticsRequest)(nil),         // 94: aryshare.GetSocialAnalyticsRequest
	(*GetSocialAnalyticsResponse)(nil),        // 95: aryshare.GetSocialAnalyticsResponse
	(*AutoHashtagsRequest)(nil),               // 96: aryshare.AutoHashtagsRequest
	(*AutoHashtagsResponse)(nil),              // 97: aryshare.AutoHashtagsResponse
	(*CheckBannedHashtagRequest)(nil),         // 98: aryshare.CheckBannedHashtagRequest
	(*CheckBannedHashtagResponse)(nil),        // 99: aryshare.CheckBannedHashtagResponse
	(*HashtagRecommendation)(nil),             // 100: aryshare.HashtagRecommendation
	(*RecommendHashtagsRequest)(nil),          // 101: aryshare.RecommendHashtagsRequest
	(*RecommendHashtagsResponse)(nil),         // 102: aryshare.RecommendHashtagsResponse
	(*SearchHashtagsRequest)(nil),             // 103: aryshare.SearchHashtagsRequest
	(*SearchHashtagInfo)(nil),                 // 104: aryshare.SearchHashtagInfo
	(*SearchHashtagChild)(nil),                // 105: aryshare.SearchHashtagChild
	(*SearchHashtagChildren)(nil),             // 106: aryshare.SearchHashtagChildren
	(*SearchHashtagMedia)(nil),                // 107: aryshare.SearchHashtagMedia
	(*SearchHashtagsResponse)(nil),            // 108: aryshare.SearchHashtagsResponse
}
var file_pb_ayrshare_proto_depIdxs = []int32{
	0,   // 0: aryshare.InstagramOptions.userTags:type_name -> aryshare.UserTag
	1,   // 1: aryshare.PostRequest.instagramOptions:type_name -> aryshare.InstagramOptions
	2,   // 2: aryshare.PostRequest.tikTokOptions:type_name -> aryshare.TikTokOptions
	3,   // 3: aryshare.PostRequest.youTubeOptions:type_name -> aryshare.YouTubeOptions
	4,   // 4: aryshare.PostRequest.blueskyOptions:type_name -> aryshare.BlueskyOptions
	6,   // 5: aryshare.PostItem.postIds:type_name -> aryshare.PostId
	7,   // 6: aryshare.PostResponse.posts:type_name -> aryshare.PostItem
	6,   // 7: aryshare.PostResponse.postIds:type_name -> aryshare.PostId
	6,   // 8: aryshare.GetPostResponse.postIds:type_name -> aryshare.PostId
	13,  // 9: aryshare.DisplayName.twitterUsage:type_name -> aryshare.TwitterUsage
	12,  // 10: aryshare.GetUserResponse.created:type_name -> aryshare.Timestamp
	14,  // 11: aryshare.GetUserResponse.displayNames:type_name -> aryshare.DisplayName
	12,  // 12: aryshare.ProfileItem.created:type_name -> aryshare.Timestamp
	19,  // 13: aryshare.GetProfilesResponse.profiles:type_name -> aryshare.ProfileItem
	20,  // 14: aryshare.GetProfilesResponse.pagination:type_name -> aryshare.Pagination
	22,  // 15: aryshare.GenerateJWTRequest.email:type_name -> aryshare.Email
	25,  // 16: aryshare.HistoryItem.postIds:type_name -> aryshare.HistoryPostId
	12,  // 17: aryshare.HistoryItem.scheduleDate:type_name -> aryshare.Timestamp
	26,  // 18: aryshare.GetHistoryResponse.history:type_name -> aryshare.HistoryItem
	25,  // 19: aryshare.GetHistoryByIdResponse.postIds:type_name -> aryshare.HistoryPostId
	12,  // 20: aryshare.GetHistoryByIdResponse.scheduleDate:type_name -> aryshare.Timestamp
	31,  // 21: aryshare.GetHistoryByPlatformResponse.posts:type_name -> aryshare.PlatformPost
	35,  // 22: aryshare.SendMessageResponse.messages:type_name -> aryshare.MessageItem
	39,  // 23: aryshare.GetMessagesItem.senderDetails:type_name -> aryshare.MessageSenderDetails
	40,  // 24: aryshare.GetMessagesItem.recipientDetails:type_name -> aryshare.MessageRecipientDetails
	38,  // 25: aryshare.GetMessagesItem.attachments:type_name -> aryshare.MessageAttachment
	41,  // 26: aryshare.GetMessagesItem.reactions:type_name -> aryshare.MessageReaction
	43,  // 27: aryshare.ConversationDetail.participant:type_name -> aryshare.ConversationParticipant
	42,  // 28: aryshare.GetMessagesResponse.messages:type_name -> aryshare.GetMessagesItem
	44,  // 29: aryshare.GetMessagesResponse.conversationsDetails:type_name -> aryshare.ConversationDetail
	47,  // 30: aryshare.PostCommentResponse.instagram:type_name -> aryshare.InstagramCommentResponse
	48,  // 31: aryshare.PostCommentResponse.tiktok:type_name -> aryshare.TikTokCommentResponse
	54,  // 32: aryshare.PostCommentResponse.errors:type_name -> aryshare.PlatformError
	49,  // 33: aryshare.PostCommentResponse.bluesky:type_name -> aryshare.BlueskyCommentResponse
	50,  // 34: aryshare.PostCommentResponse.facebook:type_name -> aryshare.FacebookCommentResponse
	51,  // 35: aryshare.PostCommentResponse.linkedin:type_name -> aryshare.LinkedInCommentResponse
	52,  // 36: aryshare.PostCommentResponse.twitter:type_name -> aryshare.TwitterCommentResponse
	53,  // 37: aryshare.PostCommentResponse.youtube:type_name -> aryshare.YouTubeCommentResponse
	57,  // 38: aryshare.InstagramComment.from:type_name -> aryshare.InstagramUser
	59,  // 39: aryshare.InstagramComment.replies:type_name -> aryshare.InstagramComment
	58,  // 40: aryshare.InstagramComment.user:type_name -> aryshare.InstagramUserInfo
	60,  // 41: aryshare.TikTokComment.replies:type_name -> aryshare.TikTokComment
	61,  // 42: aryshare.BlueskyComment.replies:type_name -> aryshare.BlueskyComment
	62,  // 43: aryshare.FacebookParent.from:type_name -> aryshare.FacebookUser
	62,  // 44: aryshare.FacebookComment.from:type_name -> aryshare.FacebookUser
	63,  // 45: aryshare.FacebookComment.parent:type_name -> aryshare.FacebookParent
	64,  // 46: aryshare.FacebookComment.replies:type_name -> aryshare.FacebookComment
	66,  // 47: aryshare.LinkedInComment.from:type_name -> aryshare.LinkedInFrom
	65,  // 48: aryshare.LinkedInComment.media:type_name -> aryshare.LinkedInMedia
	68,  // 49: aryshare.RedditComment.from:type_name -> aryshare.RedditUser
	70,  // 50: aryshare.ThreadsComment.replies:type_name -> aryshare.ThreadsComment
	71,  // 51: aryshare.TwitterReplyTo.publicMetrics:type_name -> aryshare.TwitterPublicMetrics
	71,  // 52: aryshare.TwitterComment.publicMetrics:type_name -> aryshare.TwitterPublicMetrics
	72,  // 53: aryshare.TwitterComment.referencedTweets:type_name -> aryshare.TwitterReferencedTweet
	73,  // 54: aryshare.TwitterComment.replyTo:type_name -> aryshare.TwitterReplyTo
	75,  // 55: aryshare.YouTubeComment.replies:type_name -> aryshare.YouTubeReply
	59,  // 56: aryshare.GetCommentResponse.instagram:type_name -> aryshare.InstagramComment
	60,  // 57: aryshare.GetCommentResponse.tiktok:type_name -> aryshare.TikTokComment
	61,  // 58: aryshare.GetCommentResponse.bluesky:type_name -> aryshare.BlueskyComment
	64,  // 59: aryshare.GetCommentResponse.facebook:type_name -> aryshare.FacebookComment
	67,  // 60: aryshare.GetCommentResponse.linkedin:type_name -> aryshare.LinkedInComment
	69,  // 61: aryshare.GetCommentResponse.reddit:type_name -> aryshare.RedditComment
	70,  // 62: aryshare.GetCommentResponse.threads:type_name -> aryshare.ThreadsComment
	74,  // 63: aryshare.GetCommentResponse.twitter:type_name -> aryshare.TwitterComment
	76,  // 64: aryshare.GetCommentResponse.youtube:type_name -> aryshare.YouTubeComment
	83,  // 65: aryshare.ReplyCommentResponse.instagram:type_name -> aryshare.InstagramReplyResponse
	84,  // 66: aryshare.ReplyCommentResponse.tiktok:type_name -> aryshare.TikTokReplyResponse
	85,  // 67: aryshare.ReplyCommentResponse.bluesky:type_name -> aryshare.BlueskyReplyResponse
	86,  // 68: aryshare.ReplyCommentResponse.facebook:type_name -> aryshare.FacebookReplyResponse
	87,  // 69: aryshare.ReplyCommentResponse.linkedin:type_name -> aryshare.LinkedInReplyResponse
	88,  // 70: aryshare.ReplyCommentResponse.twitter:type_name -> aryshare.TwitterReplyResponse
	89,  // 71: aryshare.ReplyCommentResponse.youtube:type_name -> aryshare.YouTubeReplyResponse
	100, // 72: aryshare.RecommendHashtagsResponse.recommendations:type_name -> aryshare.HashtagRecommendation
	105, // 73: aryshare.SearchHashtagChildren.data:type_name -> aryshare.SearchHashtagChild
	106, // 74: aryshare.SearchHashtagMedia.children:type_name -> aryshare.SearchHashtagChildren
	104, // 75: aryshare.SearchHashtagsResponse.hashtag:type_name -> aryshare.SearchHashtagInfo
	107, // 76: aryshare.SearchHashtagsResponse.searchResults:type_name -> aryshare.SearchHashtagMedia
	5,   // 77: aryshare.Ayrshare.Post:input_type -> aryshare.PostRequest
	9,   // 78: aryshare.Ayrshare.GetPost:input_type -> aryshare.GetPostRequest
	11,  // 79: aryshare.Ayrshare.GetUser:input_type -> aryshare.GetUserRequest
	16,  // 80: aryshare.Ayrshare.CreateProfile:input_type -> aryshare.CreateProfileRequest
	18,  // 81: aryshare.Ayrshare.GetProfiles:input_type -> aryshare.GetProfilesRequest
	23,  // 82: aryshare.Ayrshare.GenerateJWT:input_type -> aryshare.GenerateJWTRequest
	27,  // 83: aryshare.Ayrshare.GetHistory:input_type -> aryshare.GetHistoryRequest
	29,  // 84: aryshare.Ayrshare.GetHistoryById:input_type -> aryshare.GetHistoryByIdRequest
	32,  // 85: aryshare.Ayrshare.GetHistoryByPlatform:input_type -> aryshare.GetHistoryByPlatformRequest
	34,  // 86: aryshare.Ayrshare.SendMessage:input_type -> aryshare.SendMessageRequest
	37,  // 87: aryshare.Ayrshare.GetMessages:input_type -> aryshare.GetMessagesRequest
	46,  // 88: aryshare.Ayrshare.PostComment:input_type -> aryshare.PostCommentRequest
	56,  // 89: aryshare.Ayrshare.GetComment:input_type -> aryshare.GetCommentRequest
	78,  // 90: aryshare.Ayrshare.DeleteComment:input_type -> aryshare.DeleteCommentRequest
	82,  // 91: aryshare.Ayrshare.ReplyComment:input_type -> aryshare.ReplyCommentRequest
	91,  // 92: aryshare.Ayrshare.GetPostAnalytics:input_type -> aryshare.GetPostAnalyticsRequest
	92,  // 93: aryshare.Ayrshare.GetPostAnalyticsBySocialID:input_type -> aryshare.GetPostAnalyticsBySocialIDRequest
	94,  // 94: aryshare.Ayrshare.GetSocialAnalytics:input_type -> aryshare.GetSocialAnalyticsRequest
	96,  // 95: aryshare.Ayrshare.AutoHashtags:input_type -> aryshare.AutoHashtagsRequest
	98,  // 96: aryshare.Ayrshare.CheckBannedHashtag:input_type -> aryshare.CheckBannedHashtagRequest
	101, // 97: aryshare.Ayrshare.RecommendHashtags:input_type -> aryshare.RecommendHashtagsRequest
	103, // 98: aryshare.Ayrshare.SearchHashtags:input_type -> aryshare.SearchHashtagsRequest
	8,   // 99: aryshare.Ayrshare.Post:output_type -> aryshare.PostResponse
	10,  // 100: aryshare.Ayrshare.GetPost:output_type -> aryshare.GetPostResponse
	15,  // 101: aryshare.Ayrshare.GetUser:output_type -> aryshare.GetUserResponse
	17,  // 102: aryshare.Ayrshare.CreateProfile:output_type -> aryshare.CreateProfileResponse
	21,  // 103: aryshare.Ayrshare.GetProfiles:output_type -> aryshare.GetProfilesResponse
	24,  // 104: aryshare.Ayrshare.GenerateJWT:output_type -> aryshare.GenerateJWTResponse
	28,  // 105: aryshare.Ayrshare.GetHistory:output_type -> aryshare.GetHistoryResponse
	30,  // 106: aryshare.Ayrshare.GetHistoryById:output_type -> aryshare.GetHistoryByIdResponse
	33,  // 107: aryshare.Ayrshare.GetHistoryByPlatform:output_type -> aryshare.GetHistoryByPlatformResponse
	36,  // 108: aryshare.Ayrshare.SendMessage:output_type -> aryshare.SendMessageResponse
	45,  // 109: aryshare.Ayrshare.GetMessages:output_type -> aryshare.GetMessagesResponse
	55,  // 110: aryshare.Ayrshare.PostComment:output_type -> aryshare.PostCommentResponse
	77,  // 111: aryshare.Ayrshare.GetComment:output_type -> aryshare.GetCommentResponse
	81,  // 112: aryshare.Ayrshare.DeleteComment:output_type -> aryshare.DeleteCommentResponse
	90,  // 113: aryshare.Ayrshare.ReplyComment:output_type -> aryshare.ReplyCommentResponse
	93,  // 114: aryshare.Ayrshare.GetPostAnalytics:output_type -> aryshare.GetPostAnalyticsResponse
	93,  // 115: aryshare.Ayrshare.GetPostAnalyticsBySocialID:output_type -> aryshare.GetPostAnalyticsResponse
	95,  // 116: aryshare.Ayrshare.GetSocialAnalytics:output_type -> aryshare.GetSocialAnalyticsResponse
	97,  // 117: aryshare.Ayrshare.AutoHashtags:output_type -> aryshare.AutoHashtagsResponse
	99,  // 118: aryshare.Ayrshare.CheckBannedHashtag:output_type -> aryshare.CheckBannedHashtagResponse
	102, // 119: aryshare.Ayrshare.RecommendHashtags:output_type -> aryshare.RecommendHashtagsResponse
	108, // 120: aryshare.Ayrshare.SearchHashtags:output_type -> aryshare.SearchHashtagsResponse
	99,  // [99:121] is the sub-list for method output_type
	77,  // [77:99] is the sub-list for method input_type
	77,  // [77:77] is the sub-list for extension type_name
	77,  // [77:77] is the sub-list for extension extendee
	0,   // [0:77] is the sub-list for field type_name
}

func init() { file_pb_ayrshare_proto_init() }
func file_pb_ayrshare_proto_init() {
	if File_pb_ayrshare_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pb_ayrshare_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserTag); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TikTokOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*YouTubeOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlueskyOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostId); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPostRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPostResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Timestamp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterUsage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DisplayName); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetUserResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateProfileRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateProfileResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProfilesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProfileItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Pagination); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProfilesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Email); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GenerateJWTRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GenerateJWTResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HistoryPostId); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HistoryItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetHistoryRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetHistoryResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetHistoryByIdRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetHistoryByIdResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PlatformPost); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetHistoryByPlatformRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetHistoryByPlatformResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SendMessageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MessageItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SendMessageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetMessagesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MessageAttachment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MessageSenderDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MessageRecipientDetails); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MessageReaction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetMessagesItem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConversationParticipant); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConversationDetail); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetMessagesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostCommentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TikTokCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlueskyCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FacebookCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LinkedInCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*YouTubeCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PlatformError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCommentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramUser); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramUserInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TikTokComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlueskyComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FacebookUser); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FacebookParent); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FacebookComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LinkedInMedia); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LinkedInFrom); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LinkedInComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RedditUser); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RedditComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ThreadsComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterPublicMetrics); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterReferencedTweet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterReplyTo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*YouTubeReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*YouTubeComment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteCommentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramDeleteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TikTokDeleteResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyCommentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstagramReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TikTokReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlueskyReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FacebookReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LinkedInReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TwitterReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*YouTubeReplyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReplyCommentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPostAnalyticsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPostAnalyticsBySocialIDRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPostAnalyticsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSocialAnalyticsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetSocialAnalyticsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AutoHashtagsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AutoHashtagsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckBannedHashtagRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CheckBannedHashtagResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HashtagRecommendation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RecommendHashtagsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RecommendHashtagsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchHashtagsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchHashtagInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchHashtagChild); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchHashtagChildren); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchHashtagMedia); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pb_ayrshare_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SearchHashtagsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_pb_ayrshare_proto_msgTypes[18].OneofWrappers = []interface{}{
		(*GetProfilesRequest_ActionLogBool)(nil),
		(*GetProfilesRequest_ActionLogInt)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pb_ayrshare_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   109,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_pb_ayrshare_proto_goTypes,
		DependencyIndexes: file_pb_ayrshare_proto_depIdxs,
		MessageInfos:      file_pb_ayrshare_proto_msgTypes,
	}.Build()
	File_pb_ayrshare_proto = out.File
	file_pb_ayrshare_proto_rawDesc = nil
	file_pb_ayrshare_proto_goTypes = nil
	file_pb_ayrshare_proto_depIdxs = nil
}
