diff --git a/messages/control.py b/messages/control.py
new file mode 100644
index 0000000..9357de3
--- /dev/null
+++ b/messages/control.py
@@ -0,0 +1,13 @@
+import time
+
+from messages.base import Base
+from protobuf import message_pb2
+
+
+class ControlMessage(Base):
+    def __init__(self):
+        self.instance = message_pb2.ChatMessage()
+
+    def __str__(self):
+        # 基本上都是下播了,比如主播离开了,违规被Ban了啥的,有这个消息,直播间信息必然发生变化
+        return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '【直播间信息】'
diff --git a/messages/fansclub.py b/messages/fansclub.py
new file mode 100644
index 0000000..51e164c
--- /dev/null
+++ b/messages/fansclub.py
@@ -0,0 +1,17 @@
+import time
+
+from protobuf import message_pb2
+from messages.base import Base
+
+class FansclubMessage(Base):
+    def __init__(self):
+        self.instance = message_pb2.FansclubMessage()
+
+    def format_content(self):
+        return self.instance.content
+
+    def __str__(self):
+        if self.instance.type == 1:
+            return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '【加入粉丝团】' +  self.format_content()
+        elif self.instance.type == 2:
+            return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '【粉丝牌升级】' +  self.format_content()
diff --git a/messages/utils.py b/messages/utils.py
index 386fe52..239136b 100644
--- a/messages/utils.py
+++ b/messages/utils.py
@@ -1,4 +1,7 @@
 import os
+
+from messages.control import ControlMessage
+from messages.fansclub import FansclubMessage
 from protobuf import message_pb2
 from protobuf import wss_pb2
 import gzip
@@ -82,5 +85,19 @@ def decodeMsg(messages):
 
                 print(f"\n{YELLOW}[+] {room_user_seq_message} {RESET}")
 
+            elif message.method == 'WebcastFansclubMessage':
+                fansclub_message = FansclubMessage()
+                fansclub_message.set_payload(message.payload)
+                fansclub_message.persists()
+
+                print(f"\n{RED}[+] {fansclub_message} {RESET}")
+
+            elif message.method == 'WebcastControlMessage':
+                control_message = ControlMessage()
+                control_message.set_payload(message.payload)
+                control_message.persists()
+
+                print(f"\n{CYAN}[+] {control_message} {RESET}")
+
         except Exception as e:
             print(e)
diff --git a/protobuf/message.proto b/protobuf/message.proto
index bb5c07b..ca906c0 100644
--- a/protobuf/message.proto
+++ b/protobuf/message.proto
@@ -168,6 +168,14 @@ message ControlMessage {
     int32 status = 2;
 }
 
+message FansclubMessage {
+	Common commonInfo = 1;
+	// 升级是1,加入是2
+	int32 type = 2;
+	string content = 3;
+	User user = 4;
+}
+
 message Common{
     string method = 1;
     int64 msgId = 2;
diff --git a/protobuf/message_pb2.py b/protobuf/message_pb2.py
index 6dc5287..6c90ec6 100644
--- a/protobuf/message_pb2.py
+++ b/protobuf/message_pb2.py
@@ -19,7 +19,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
   package='',
   syntax='proto3',
   serialized_options=None,
-  serialized_pb=_b('\n\rmessage.proto\"\xa7\x02\n\x08Response\x12\x1a\n\x08messages\x18\x01 \x03(\x0b\x32\x08.Message\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\t\x12\x15\n\rfetchInterval\x18\x03 \x01(\x03\x12\x0b\n\x03now\x18\x04 \x01(\x03\x12\x13\n\x0binternalExt\x18\x05 \x01(\t\x12\x11\n\tfetchType\x18\x06 \x01(\x05\x12/\n\x0brouteParams\x18\x07 \x03(\x0b\x32\x1a.Response.RouteParamsEntry\x12\x19\n\x11heartbeatDuration\x18\x08 \x01(\x03\x12\x0f\n\x07needAck\x18\t \x01(\x08\x12\x12\n\npushServer\x18\n \x01(\t\x1a\x32\n\x10RouteParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Z\n\x07Message\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\r\n\x05msgId\x18\x03 \x01(\x03\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x01(\x03\"\xc5\x03\n\x12RoomUserSeqMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12.\n\x05ranks\x18\x02 \x03(\x0b\x32\x1f.RoomUserSeqMessage.Contributor\x12\r\n\x05total\x18\x03 \x01(\x03\x12\x0e\n\x06popStr\x18\x04 \x01(\t\x12.\n\x05seats\x18\x05 \x03(\x0b\x32\x1f.RoomUserSeqMessage.Contributor\x12\x12\n\npopularity\x18\x06 \x01(\x03\x12\x11\n\ttotalUser\x18\x07 \x01(\x03\x12\x14\n\x0ctotalUserStr\x18\x08 \x01(\t\x12\x10\n\x08totalStr\x18\t \x01(\t\x12\x1b\n\x13onlineUserForAnchor\x18\n \x01(\t\x12\x18\n\x10totalPvForAnchor\x18\x0b \x01(\t\x1a\x90\x01\n\x0b\x43ontributor\x12\r\n\x05score\x18\x01 \x01(\x03\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x0c\n\x04rank\x18\x03 \x01(\x03\x12\r\n\x05\x64\x65lta\x18\x04 \x01(\x03\x12\x10\n\x08isHidden\x18\x05 \x01(\x08\x12\x18\n\x10scoreDescription\x18\x06 \x01(\t\x12\x14\n\x0c\x65xactlyScore\x18\x07 \x01(\t\"\xee\x07\n\x0bGiftMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x0e\n\x06giftId\x18\x02 \x01(\x03\x12\x16\n\x0e\x66\x61nTicketCount\x18\x03 \x01(\x03\x12\x12\n\ngroupCount\x18\x04 \x01(\x03\x12\x13\n\x0brepeatCount\x18\x05 \x01(\x03\x12\x12\n\ncomboCount\x18\x06 \x01(\x03\x12\x13\n\x04user\x18\x07 \x01(\x0b\x32\x05.User\x12\x15\n\x06toUser\x18\x08 \x01(\x0b\x32\x05.User\x12\x11\n\trepeatEnd\x18\t \x01(\x05\x12+\n\ntextEffect\x18\n \x01(\x0b\x32\x17.GiftMessage.TextEffect\x12\x0f\n\x07groupId\x18\x0b \x01(\x03\x12\x17\n\x0fincomeTaskgifts\x18\x0c \x01(\x03\x12\x1a\n\x12roomFanTicketCount\x18\r \x01(\x03\x12!\n\x08priority\x18\x0e \x01(\x0b\x32\x0f.GiftIMPriority\x12\x19\n\x04gift\x18\x0f \x01(\x0b\x32\x0b.GiftStruct\x12\r\n\x05logId\x18\x10 \x01(\t\x12\x10\n\x08sendType\x18\x11 \x01(\x03\x12+\n\x10publicAreaCommon\x18\x12 \x01(\x0b\x32\x11.PublicAreaCommon\x12\x1e\n\x0ftrayDisplayText\x18\x13 \x01(\x0b\x32\x05.Text\x12\x1c\n\x14\x62\x61nnedDisplayEffects\x18\x14 \x01(\x03\x12\x1f\n\x08trayInfo\x18\x15 \x01(\x0b\x32\r.GiftTrayInfo\x12/\n\x12\x61ssetEffectMixInfo\x18\x18 \x01(\x0b\x32\x13.AssetEffectMixInfo\x1a\x92\x03\n\nTextEffect\x12\x30\n\x08portrait\x18\x01 \x01(\x0b\x32\x1e.GiftMessage.TextEffect.Detail\x12\x31\n\tlandscape\x18\x02 \x01(\x0b\x32\x1e.GiftMessage.TextEffect.Detail\x1a\x9e\x02\n\x06\x44\x65tail\x12\x13\n\x04text\x18\x01 \x01(\x0b\x32\x05.Text\x12\x14\n\x0ctextFontSize\x18\x02 \x01(\x05\x12\x1a\n\nbackground\x18\x03 \x01(\x0b\x32\x06.Image\x12\r\n\x05start\x18\x04 \x01(\x05\x12\x10\n\x08\x64uration\x18\x05 \x01(\x05\x12\t\n\x01x\x18\x06 \x01(\x05\x12\t\n\x01y\x18\x07 \x01(\x05\x12\r\n\x05width\x18\x08 \x01(\x05\x12\x0e\n\x06height\x18\t \x01(\x05\x12\x10\n\x08shadowDx\x18\n \x01(\x05\x12\x10\n\x08shadowDy\x18\x0b \x01(\x05\x12\x14\n\x0cshadowRadius\x18\x0c \x01(\x05\x12\x13\n\x0bshadowColor\x18\r \x01(\t\x12\x13\n\x0bstrokeColor\x18\x0e \x01(\t\x12\x13\n\x0bstrokeWidth\x18\x0f \x01(\x05\"v\n\x0bLikeMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\r\n\x05total\x18\x03 \x01(\x03\x12\r\n\x05\x63olor\x18\x04 \x01(\x03\x12\x13\n\x04user\x18\x05 \x01(\x0b\x32\x05.User\x12\x0c\n\x04icon\x18\x06 \x01(\t\"\x8e\x02\n\x0b\x43hatMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\t\x12\x17\n\x0fvisibleToSender\x18\x04 \x01(\x08\x12\x1f\n\x0f\x62\x61\x63kgroundImage\x18\x05 \x01(\x0b\x32\x06.Image\x12\x1b\n\x13\x66ullScreenTextColor\x18\x06 \x01(\t\x12!\n\x11\x62\x61\x63kgroundImageV2\x18\x07 \x01(\x0b\x32\x06.Image\x12+\n\x10publicAreaCommon\x18\t \x01(\x0b\x32\x11.PublicAreaCommon\x12\x19\n\tgiftImage\x18\n \x01(\x0b\x32\x06.Image\"\xb7\x01\n\rSocialMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x11\n\tshareType\x18\x03 \x01(\x03\x12\x0e\n\x06\x61\x63tion\x18\x04 \x01(\x03\x12\x13\n\x0bshareTarget\x18\x05 \x01(\t\x12\x13\n\x0b\x66ollowCount\x18\x06 \x01(\x03\x12+\n\x10publicAreaCommon\x18\x07 \x01(\x0b\x32\x11.PublicAreaCommon\"\xf5\x06\n\rMemberMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x13\n\x0bmemberCount\x18\x03 \x01(\x03\x12\x17\n\x08operator\x18\x04 \x01(\x0b\x32\x05.User\x12\x14\n\x0cisSetToAdmin\x18\x05 \x01(\x08\x12\x11\n\tisTopUser\x18\x06 \x01(\x08\x12\x11\n\trankScore\x18\x07 \x01(\x03\x12\x11\n\ttopUserNo\x18\x08 \x01(\x03\x12\x11\n\tenterType\x18\t \x01(\x03\x12\x0e\n\x06\x61\x63tion\x18\n \x01(\x03\x12\x19\n\x11\x61\x63tionDescription\x18\x0b \x01(\t\x12\x0e\n\x06userId\x18\x0c \x01(\x03\x12\x31\n\x0c\x65\x66\x66\x65\x63tConfig\x18\r \x01(\x0b\x32\x1b.MemberMessage.EffectConfig\x12\x0e\n\x06popStr\x18\x0e \x01(\t\x12\x36\n\x11\x65nterEffectConfig\x18\x0f \x01(\x0b\x32\x1b.MemberMessage.EffectConfig\x12\x1f\n\x0f\x62\x61\x63kgroundImage\x18\x10 \x01(\x0b\x32\x06.Image\x12!\n\x11\x62\x61\x63kgroundImageV2\x18\x11 \x01(\x0b\x32\x06.Image\x12 \n\x11\x61nchorDisplayText\x18\x12 \x01(\x0b\x32\x05.Text\x12+\n\x10publicAreaCommon\x18\x13 \x01(\x0b\x32\x11.PublicAreaCommon\x1a\xdc\x02\n\x0c\x45\x66\x66\x65\x63tConfig\x12\x0c\n\x04type\x18\x01 \x01(\x03\x12\x14\n\x04icon\x18\x02 \x01(\x0b\x32\x06.Image\x12\x11\n\tavatarPos\x18\x03 \x01(\x03\x12\x13\n\x04text\x18\x04 \x01(\x0b\x32\x05.Text\x12\x18\n\x08textIcon\x18\x05 \x01(\x0b\x32\x06.Image\x12\x10\n\x08stayTime\x18\x06 \x01(\x05\x12\x13\n\x0b\x61nimAssetId\x18\x07 \x01(\x03\x12\x15\n\x05\x62\x61\x64ge\x18\x08 \x01(\x0b\x32\x06.Image\x12\x18\n\x10\x66lexSettingArray\x18\t \x03(\x03\x12\x1f\n\x0ftextIconOverlay\x18\n \x01(\x0b\x32\x06.Image\x12\x1d\n\ranimatedBadge\x18\x0b \x01(\x0b\x32\x06.Image\x12\x15\n\rhasSweepLight\x18\x0c \x01(\x08\x12\x1c\n\x14textFlexSettingArray\x18\r \x03(\x03\x12\x19\n\x11\x63\x65nterAnimAssetId\x18\x0e \x01(\x03\"9\n\x0e\x43ontrolMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x0e\n\x06status\x18\x02 \x01(\x05\"\x83\x03\n\x06\x43ommon\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\r\n\x05msgId\x18\x02 \x01(\x03\x12\x0e\n\x06roomId\x18\x03 \x01(\x03\x12\x12\n\ncreateTime\x18\x04 \x01(\x03\x12\x0f\n\x07monitor\x18\x05 \x01(\x05\x12\x11\n\tisShowMsg\x18\x06 \x01(\x08\x12\x10\n\x08\x64\x65scribe\x18\x07 \x01(\t\x12\x1a\n\x0b\x64isplayText\x18\x08 \x01(\x0b\x32\x05.Text\x12\x10\n\x08\x66oldType\x18\t \x01(\x03\x12\x16\n\x0e\x61nchorFoldType\x18\n \x01(\x03\x12\x15\n\rpriorityScore\x18\x0b \x01(\x03\x12\r\n\x05logId\x18\x0c \x01(\t\x12\x19\n\x11msgProcessFilterK\x18\r \x01(\t\x12\x19\n\x11msgProcessFilterV\x18\x0e \x01(\t\x12\x13\n\x04user\x18\x0f \x01(\x0b\x32\x05.User\x12\x13\n\x04room\x18\x10 \x01(\x0b\x32\x05.Room\x12\x18\n\x10\x61nchorFoldTypeV2\x18\x11 \x01(\x03\x12\x1a\n\x12processAtSeiTimeMs\x18\x12 \x01(\x03\"k\n\x04Text\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x0e\x64\x65\x66\x61ultPattern\x18\x02 \x01(\t\x12\"\n\rdefaultFormat\x18\x03 \x01(\x0b\x32\x0b.TextFormat\x12\x1a\n\x06pieces\x18\x04 \x03(\x0b\x32\n.TextPiece\"\x92\t\n\x04Room\x12\n\n\x02id\x18\x01 \x01(\x03\x12\r\n\x05idStr\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x03\x12\x13\n\x0bownerUserId\x18\x04 \x01(\x03\x12\r\n\x05title\x18\x05 \x01(\t\x12\x11\n\tuserCount\x18\x06 \x01(\x03\x12\x12\n\ncreateTime\x18\x07 \x01(\x03\x12\x15\n\rlinkmicLayout\x18\x08 \x01(\x03\x12\x12\n\nfinishTime\x18\t \x01(\x03\x12\x19\n\x05\x65xtra\x18\n \x01(\x0b\x32\n.RoomExtra\x12\x17\n\x0f\x64ynamicCoverUri\x18\x0b \x01(\t\x12\x35\n\x10\x64ynamicCoverDict\x18\x0c \x03(\x0b\x32\x1b.Room.DynamicCoverDictEntry\x12\x14\n\x0clastPingTime\x18\r \x01(\x03\x12\x0e\n\x06liveId\x18\x0e \x01(\x03\x12\x16\n\x0estreamProvider\x18\x0f \x01(\x03\x12\x0e\n\x06osType\x18\x10 \x01(\x03\x12\x15\n\rclientVersion\x18\x11 \x01(\x03\x12\x13\n\x0bwithLinkmic\x18\x12 \x01(\x08\x12\x1d\n\x15\x65nableRoomPerspective\x18\x13 \x01(\x08\x12\x15\n\x05\x63over\x18\x14 \x01(\x0b\x32\x06.Image\x12\x1c\n\x0c\x64ynamicCover\x18\x15 \x01(\x0b\x32\x06.Image\x12\x1f\n\x0f\x64ynamicCoverLow\x18\x16 \x01(\x0b\x32\x06.Image\x12\x10\n\x08shareUrl\x18\x17 \x01(\t\x12\x17\n\x0f\x61nchorShareText\x18\x18 \x01(\t\x12\x15\n\ruserShareText\x18\x19 \x01(\t\x12\x10\n\x08streamId\x18\x1a \x01(\x03\x12\x13\n\x0bstreamIdStr\x18\x1b \x01(\t\x12\x1d\n\tstreamUrl\x18\x1c \x01(\x0b\x32\n.StreamUrl\x12\x14\n\x0cmosaicStatus\x18\x1d \x01(\x03\x12\x11\n\tmosaicTip\x18\x1e \x01(\t\x12\x11\n\tcellStyle\x18\x1f \x01(\x03\x12\x19\n\x07linkMic\x18  \x01(\x0b\x32\x08.LinkMic\x12\x15\n\rluckymoneyNum\x18! \x01(\x03\x12\x1d\n\x08\x64\x65\x63oList\x18\" \x03(\x0b\x32\x0b.Decoration\x12\x18\n\x07topFans\x18# \x03(\x0b\x32\x07.TopFan\x12\x19\n\x05stats\x18$ \x01(\x0b\x32\n.RoomStats\x12\x1b\n\x13sunDailyIconContent\x18% \x01(\t\x12\x10\n\x08\x64istance\x18& \x01(\t\x12\x14\n\x0c\x64istanceCity\x18\' \x01(\t\x12\x10\n\x08location\x18( \x01(\t\x12\x14\n\x0crealDistance\x18) \x01(\t\x12\x1d\n\rfeedRoomLabel\x18* \x01(\x0b\x32\x06.Image\x12\x17\n\x0f\x63ommonLabelList\x18+ \x01(\t\x12&\n\x0flivingRoomAttrs\x18, \x01(\x0b\x32\r.RoomUserAttr\x12\x14\n\x0c\x61\x64minUserIds\x18- \x03(\x03\x12\x14\n\x05owner\x18. \x01(\x0b\x32\x05.User\x12\x13\n\x0bprivateInfo\x18/ \x01(\t\x1a\x37\n\x15\x44ynamicCoverDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x0b\n\tRoomExtra\"\x0b\n\tRoomStats\"\x0e\n\x0cRoomUserAttr\"\x0b\n\tStreamUrl\"\t\n\x07LinkMic\"\x0c\n\nDecoration\"\x08\n\x06TopFan\"\xf2\x14\n\x04User\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0f\n\x07shortId\x18\x02 \x01(\x03\x12\x10\n\x08nickname\x18\x03 \x01(\t\x12\x0e\n\x06gender\x18\x04 \x01(\x05\x12\x11\n\tsignature\x18\x05 \x01(\t\x12\r\n\x05level\x18\x06 \x01(\x05\x12\x10\n\x08\x62irthday\x18\x07 \x01(\x03\x12\x11\n\ttelephone\x18\x08 \x01(\t\x12\x1b\n\x0b\x61vatarThumb\x18\t \x01(\x0b\x32\x06.Image\x12\x1c\n\x0c\x61vatarMedium\x18\n \x01(\x0b\x32\x06.Image\x12\x1b\n\x0b\x61vatarLarge\x18\x0b \x01(\x0b\x32\x06.Image\x12\x10\n\x08verified\x18\x0c \x01(\x08\x12\x12\n\nexperience\x18\r \x01(\x05\x12\x0c\n\x04\x63ity\x18\x0e \x01(\t\x12\x0e\n\x06status\x18\x0f \x01(\x05\x12\x12\n\ncreateTime\x18\x10 \x01(\x03\x12\x12\n\nmodifyTime\x18\x11 \x01(\x03\x12\x0e\n\x06secret\x18\x12 \x01(\x05\x12\x16\n\x0eshareQrcodeUri\x18\x13 \x01(\t\x12\x1a\n\x12incomeSharePercent\x18\x14 \x01(\x05\x12\x1e\n\x0e\x62\x61\x64geImageList\x18\x15 \x01(\x0b\x32\x06.Image\x12$\n\nfollowInfo\x18\x16 \x01(\x0b\x32\x10.User.FollowInfo\x12 \n\x08payGrade\x18\x17 \x01(\x0b\x32\x0e.User.PayGrade\x12 \n\x08\x66\x61nsClub\x18\x18 \x01(\x0b\x32\x0e.User.FansClub\x12\x1c\n\x06\x62order\x18\x19 \x01(\x0b\x32\x0c.User.Border\x12\x11\n\tspecialId\x18\x1a \x01(\t\x12\x1c\n\x0c\x61vatarBorder\x18\x1b \x01(\x0b\x32\x06.Image\x12\x15\n\x05medal\x18\x1c \x01(\x0b\x32\x06.Image\x12\x1d\n\rrealTimeIcons\x18\x1d \x03(\x0b\x32\x06.Image\x12 \n\x10newRealTimeIcons\x18\x1e \x03(\x0b\x32\x06.Image\x12\x10\n\x08topVipNo\x18\x1f \x01(\x03\x12 \n\x08userAttr\x18  \x01(\x0b\x32\x0e.User.UserAttr\x12\x1e\n\x07ownRoom\x18! \x01(\x0b\x32\r.User.OwnRoom\x12\x10\n\x08payScore\x18\" \x01(\x03\x12\x13\n\x0bticketCount\x18# \x01(\x03\x12$\n\nanchorInfo\x18$ \x01(\x0b\x32\x10.User.AnchorInfo\x12\x14\n\x0clinkMicStats\x18% \x01(\x05\x12\x11\n\tdisplayId\x18& \x01(\t\x1a\n\n\x08UserAttr\x1a\t\n\x07OwnRoom\x1a\x0c\n\nAnchorInfo\x1ay\n\nFollowInfo\x12\x16\n\x0e\x66ollowingCount\x18\x01 \x01(\x03\x12\x15\n\rfollowerCount\x18\x02 \x01(\x03\x12\x14\n\x0c\x66ollowStatus\x18\x03 \x01(\x03\x12\x12\n\npushStatus\x18\x04 \x01(\x03\x12\x12\n\nremarkName\x18\x05 \x01(\t\x1a\xfd\x03\n\x08\x46\x61nsClub\x12)\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1b.User.FansClub.FansClubData\x12\x32\n\npreferData\x18\x02 \x03(\x0b\x32\x1e.User.FansClub.PreferDataEntry\x1aN\n\x0fPreferDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.User.FansClub.FansClubData:\x02\x38\x01\x1a\xc1\x02\n\x0c\x46\x61nsClubData\x12\x10\n\x08\x63lubName\x18\x01 \x01(\t\x12\r\n\x05level\x18\x02 \x01(\x05\x12\x1a\n\x12userFansClubStatus\x18\x03 \x01(\x05\x12\x34\n\x05\x62\x61\x64ge\x18\x04 \x01(\x0b\x32%.User.FansClub.FansClubData.UserBadge\x12\x18\n\x10\x61vailableGiftIds\x18\x05 \x03(\x03\x12\x10\n\x08\x61nchorId\x18\x06 \x01(\x03\x1a\x91\x01\n\tUserBadge\x12?\n\x05icons\x18\x01 \x03(\x0b\x32\x30.User.FansClub.FansClubData.UserBadge.IconsEntry\x12\r\n\x05title\x18\x02 \x01(\t\x1a\x34\n\nIconsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x15\n\x05value\x18\x02 \x01(\x0b\x32\x06.Image:\x02\x38\x01\x1a\x08\n\x06\x42order\x1a\xc7\x01\n\rGradeBuffInfo\x12\x11\n\tbuffLevel\x18\x01 \x01(\x03\x12\x0e\n\x06status\x18\x02 \x01(\x05\x12\x0f\n\x07\x65ndTime\x18\x03 \x01(\x03\x12\x35\n\tstatsInfo\x18\x04 \x03(\x0b\x32\".User.GradeBuffInfo.StatsInfoEntry\x12\x19\n\tbuffBadge\x18\x05 \x01(\x0b\x32\x06.Image\x1a\x30\n\x0eStatsInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\xec\x06\n\x08PayGrade\x12\x19\n\x11totalDiamondCount\x18\x01 \x01(\x03\x12\x1b\n\x0b\x64iamondIcon\x18\x02 \x01(\x0b\x32\x06.Image\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x14\n\x04icon\x18\x04 \x01(\x0b\x32\x06.Image\x12\x10\n\x08nextName\x18\x05 \x01(\t\x12\r\n\x05level\x18\x06 \x01(\x03\x12\x18\n\x08nextIcon\x18\x07 \x01(\x0b\x32\x06.Image\x12\x13\n\x0bnextDiamond\x18\x08 \x01(\x03\x12\x12\n\nnowDiamond\x18\t \x01(\x03\x12\x1b\n\x13thisGradeMinDiamond\x18\n \x01(\x03\x12\x1b\n\x13thisGradeMaxDiamond\x18\x0b \x01(\x03\x12\x15\n\rpayDiamondBak\x18\x0c \x01(\x03\x12\x15\n\rgradeDescribe\x18\r \x01(\t\x12/\n\rgradeIconList\x18\x0e \x03(\x0b\x32\x18.User.PayGrade.GradeIcon\x12\x16\n\x0escreenChatType\x18\x0f \x01(\x03\x12\x16\n\x06imIcon\x18\x10 \x01(\x0b\x32\x06.Image\x12\x1f\n\x0fimIconWithLevel\x18\x11 \x01(\x0b\x32\x06.Image\x12\x18\n\x08liveIcon\x18\x12 \x01(\x0b\x32\x06.Image\x12\"\n\x12newImIconWithLevel\x18\x13 \x01(\x0b\x32\x06.Image\x12\x1b\n\x0bnewLiveIcon\x18\x14 \x01(\x0b\x32\x06.Image\x12\x1a\n\x12upgradeNeedConsume\x18\x15 \x01(\x03\x12\x16\n\x0enextPrivileges\x18\x16 \x01(\t\x12\x1a\n\nbackground\x18\x17 \x01(\x0b\x32\x06.Image\x12\x1e\n\x0e\x62\x61\x63kgroundBack\x18\x18 \x01(\x0b\x32\x06.Image\x12\r\n\x05score\x18\x19 \x01(\x03\x12%\n\x08\x62uffInfo\x18\x1a \x01(\x0b\x32\x13.User.GradeBuffInfo\x12\x14\n\x0bgradeBanner\x18\xe9\x07 \x01(\t\x12 \n\x0fprofileDialogBg\x18\xea\x07 \x01(\x0b\x32\x06.Image\x12$\n\x13profileDialogBgBack\x18\xeb\x07 \x01(\x0b\x32\x06.Image\x1aW\n\tGradeIcon\x12\x14\n\x04icon\x18\x01 \x01(\x0b\x32\x06.Image\x12\x13\n\x0biconDiamond\x18\x02 \x01(\x03\x12\r\n\x05level\x18\x03 \x01(\x03\x12\x10\n\x08levelStr\x18\x04 \x01(\t\"\xa5\x01\n\nTextFormat\x12\r\n\x05\x63olor\x18\x01 \x01(\t\x12\x0c\n\x04\x62old\x18\x02 \x01(\x08\x12\x0e\n\x06italic\x18\x03 \x01(\x08\x12\x0e\n\x06weight\x18\x04 \x01(\x05\x12\x13\n\x0bitalicAngle\x18\x05 \x01(\x05\x12\x10\n\x08\x66ontSize\x18\x06 \x01(\x05\x12\x1c\n\x14userHeightLightColor\x18\x07 \x01(\x08\x12\x15\n\ruseRemoteClor\x18\x08 \x01(\x08\"n\n\tTextPiece\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x1b\n\x06\x66ormat\x18\x02 \x01(\x0b\x32\x0b.TextFormat\x12\x13\n\x0bstringValue\x18\x0b \x01(\t\x12!\n\tuserValue\x18\x15 \x01(\x0b\x32\x0e.TextPieceUser\"\x86\x02\n\x05Image\x12\x0f\n\x07urlList\x18\x01 \x03(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x0e\n\x06height\x18\x03 \x01(\x03\x12\r\n\x05width\x18\x04 \x01(\x03\x12\x10\n\x08\x61vgColor\x18\x05 \x01(\t\x12\x11\n\timageType\x18\x06 \x01(\x05\x12\x12\n\nopenWebUrl\x18\x07 \x01(\t\x12\x1f\n\x07\x63ontent\x18\x08 \x01(\x0b\x32\x0e.Image.Content\x12\x12\n\nisAnimated\x18\t \x01(\x08\x1aR\n\x07\x43ontent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tfontColor\x18\x02 \x01(\t\x12\r\n\x05level\x18\x03 \x01(\x03\x12\x17\n\x0f\x61lternativeText\x18\x04 \x01(\t\"7\n\rTextPieceUser\x12\x13\n\x04user\x18\x01 \x01(\x0b\x32\x05.User\x12\x11\n\twithColon\x18\x02 \x01(\x08\"g\n\x10PublicAreaCommon\x12\x19\n\tuserLabel\x18\x01 \x01(\x0b\x32\x06.Image\x12\x19\n\x11userConsumeInRoom\x18\x02 \x01(\x03\x12\x1d\n\x15userSendGiftCntInRoom\x18\x03 \x01(\x03\"Q\n\x0eGiftIMPriority\x12\x12\n\nqueueSizes\x18\x01 \x03(\x03\x12\x19\n\x11selfQueuePriority\x18\x02 \x01(\x03\x12\x10\n\x08priority\x18\x03 \x01(\x03\"\xb9\x01\n\x0cGiftTrayInfo\x12\x1e\n\x0ftrayDisplayText\x18\x01 \x01(\x0b\x32\x05.Text\x12\x1b\n\x0btrayBaseImg\x18\x02 \x01(\x0b\x32\x06.Image\x12\x1b\n\x0btrayHeadImg\x18\x03 \x01(\x0b\x32\x06.Image\x12\x1c\n\x0ctrayRightImg\x18\x04 \x01(\x0b\x32\x06.Image\x12\x11\n\ttrayLevel\x18\x05 \x01(\x03\x12\x1e\n\x0etrayDynamicImg\x18\x06 \x01(\x0b\x32\x06.Image\"\x84\x0c\n\nGiftStruct\x12\x15\n\x05image\x18\x01 \x01(\x0b\x32\x06.Image\x12\x10\n\x08\x64\x65scribe\x18\x02 \x01(\t\x12\x0e\n\x06notify\x18\x03 \x01(\x08\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12\n\n\x02id\x18\x05 \x01(\x03\x12\x38\n\x0c\x66\x61nsclubInfo\x18\x06 \x01(\x0b\x32\".GiftStruct.GiftStructFansClubInfo\x12\x12\n\nforLinkmic\x18\x07 \x01(\x08\x12\x0e\n\x06\x64oodle\x18\x08 \x01(\x08\x12\x13\n\x0b\x66orFansclub\x18\t \x01(\x08\x12\r\n\x05\x63ombo\x18\n \x01(\x08\x12\x0c\n\x04type\x18\x0b \x01(\x05\x12\x14\n\x0c\x64iamondCount\x18\x0c \x01(\x05\x12\x1a\n\x12isDisplayedOnPanel\x18\r \x01(\x05\x12\x17\n\x0fprimaryEffectId\x18\x0e \x01(\x03\x12\x1d\n\rgiftLabelIcon\x18\x0f \x01(\x0b\x32\x06.Image\x12\x0c\n\x04name\x18\x10 \x01(\t\x12\x0e\n\x06region\x18\x11 \x01(\t\x12\x0e\n\x06manual\x18\x12 \x01(\t\x12\x11\n\tforCustom\x18\x13 \x01(\x08\x12\x37\n\x0especialEffects\x18\x14 \x03(\x0b\x32\x1f.GiftStruct.SpecialEffectsEntry\x12\x14\n\x04icon\x18\x15 \x01(\x0b\x32\x06.Image\x12\x12\n\nactionType\x18\x16 \x01(\x05\x12\x17\n\x0fwatermelonSeeds\x18\x17 \x01(\x05\x12\x12\n\ngoldEffect\x18\x18 \x01(\t\x12!\n\x04subs\x18\x19 \x03(\x0b\x32\x13.LuckyMoneyGiftMeta\x12\x13\n\x0bgoldenBeans\x18\x1a \x01(\x03\x12\x12\n\nhonorLevel\x18\x1b \x01(\x03\x12\x10\n\x08itemType\x18\x1c \x01(\x05\x12\x11\n\tschemeUrl\x18\x1d \x01(\t\x12*\n\rgiftOperation\x18\x1e \x01(\x0b\x32\x13.GiftPanelOperation\x12\x11\n\teventName\x18\x1f \x01(\t\x12\x12\n\nnobleLevel\x18  \x01(\x03\x12\x10\n\x08guideUrl\x18! \x01(\t\x12\x16\n\x0epunishMedicine\x18\" \x01(\x08\x12\x11\n\tforPortal\x18# \x01(\x08\x12\x14\n\x0c\x62usinessText\x18$ \x01(\t\x12\x0f\n\x07\x63nyGift\x18% \x01(\x08\x12\r\n\x05\x61ppId\x18& \x01(\x03\x12\x10\n\x08vipLevel\x18\' \x01(\x03\x12\x0e\n\x06isGray\x18( \x01(\x08\x12\x15\n\rgraySchemeUrl\x18) \x01(\t\x12\x11\n\tgiftScene\x18* \x01(\x03\x12\x1f\n\ngiftBanner\x18+ \x01(\x0b\x32\x0b.GiftBanner\x12\x14\n\x0ctriggerWords\x18, \x03(\t\x12$\n\rgiftBuffInfos\x18- \x03(\x0b\x32\r.GiftBuffInfo\x12\x18\n\x10\x66orFirstRecharge\x18. \x01(\x08\x12%\n\x15\x64ynamicImgForSelected\x18/ \x01(\x0b\x32\x06.Image\x12\x17\n\x0f\x61\x66terSendAction\x18\x30 \x01(\x05\x12\x17\n\x0fgiftOfflineTime\x18\x31 \x01(\x03\x12\x12\n\ntopBarText\x18\x32 \x01(\t\x12\x1e\n\x0etopRightAvatar\x18\x33 \x01(\x0b\x32\x06.Image\x12\x17\n\x0f\x62\x61nnerSchemeUrl\x18\x34 \x01(\t\x12\x10\n\x08isLocked\x18\x35 \x01(\x08\x12\x14\n\x0creqExtraType\x18\x36 \x01(\x03\x12\x10\n\x08\x61ssetIds\x18\x37 \x03(\x03\x12)\n\x0fgiftPreviewInfo\x18\x38 \x01(\x0b\x32\x10.GiftPreviewInfo\x12\x19\n\x07giftTip\x18\x39 \x01(\x0b\x32\x08.GiftTip\x12\x1b\n\x13needSweepLightCount\x18: \x01(\x05\x12!\n\tgroupInfo\x18; \x03(\x0b\x32\x0e.GiftGroupInfo\x1a\x35\n\x13SpecialEffectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a=\n\x16GiftStructFansClubInfo\x12\x10\n\x08minLevel\x18\x01 \x01(\x05\x12\x11\n\tinsertPos\x18\x02 \x01(\x05\"\x14\n\x12\x41ssetEffectMixInfo\"\x14\n\x12LuckyMoneyGiftMeta\"\x14\n\x12GiftPanelOperation\"\x0c\n\nGiftBanner\"\x0e\n\x0cGiftBuffInfo\"\x11\n\x0fGiftPreviewInfo\"\t\n\x07GiftTip\"\x0f\n\rGiftGroupInfo\"\x14\n\x12\x45\x66\x66\x65\x63tMixImageInfob\x06proto3')
+  serialized_pb=_b('\n\rmessage.proto\"\xa7\x02\n\x08Response\x12\x1a\n\x08messages\x18\x01 \x03(\x0b\x32\x08.Message\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\t\x12\x15\n\rfetchInterval\x18\x03 \x01(\x03\x12\x0b\n\x03now\x18\x04 \x01(\x03\x12\x13\n\x0binternalExt\x18\x05 \x01(\t\x12\x11\n\tfetchType\x18\x06 \x01(\x05\x12/\n\x0brouteParams\x18\x07 \x03(\x0b\x32\x1a.Response.RouteParamsEntry\x12\x19\n\x11heartbeatDuration\x18\x08 \x01(\x03\x12\x0f\n\x07needAck\x18\t \x01(\x08\x12\x12\n\npushServer\x18\n \x01(\t\x1a\x32\n\x10RouteParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Z\n\x07Message\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x12\r\n\x05msgId\x18\x03 \x01(\x03\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0e\n\x06offset\x18\x05 \x01(\x03\"\xc5\x03\n\x12RoomUserSeqMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12.\n\x05ranks\x18\x02 \x03(\x0b\x32\x1f.RoomUserSeqMessage.Contributor\x12\r\n\x05total\x18\x03 \x01(\x03\x12\x0e\n\x06popStr\x18\x04 \x01(\t\x12.\n\x05seats\x18\x05 \x03(\x0b\x32\x1f.RoomUserSeqMessage.Contributor\x12\x12\n\npopularity\x18\x06 \x01(\x03\x12\x11\n\ttotalUser\x18\x07 \x01(\x03\x12\x14\n\x0ctotalUserStr\x18\x08 \x01(\t\x12\x10\n\x08totalStr\x18\t \x01(\t\x12\x1b\n\x13onlineUserForAnchor\x18\n \x01(\t\x12\x18\n\x10totalPvForAnchor\x18\x0b \x01(\t\x1a\x90\x01\n\x0b\x43ontributor\x12\r\n\x05score\x18\x01 \x01(\x03\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x0c\n\x04rank\x18\x03 \x01(\x03\x12\r\n\x05\x64\x65lta\x18\x04 \x01(\x03\x12\x10\n\x08isHidden\x18\x05 \x01(\x08\x12\x18\n\x10scoreDescription\x18\x06 \x01(\t\x12\x14\n\x0c\x65xactlyScore\x18\x07 \x01(\t\"\xee\x07\n\x0bGiftMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x0e\n\x06giftId\x18\x02 \x01(\x03\x12\x16\n\x0e\x66\x61nTicketCount\x18\x03 \x01(\x03\x12\x12\n\ngroupCount\x18\x04 \x01(\x03\x12\x13\n\x0brepeatCount\x18\x05 \x01(\x03\x12\x12\n\ncomboCount\x18\x06 \x01(\x03\x12\x13\n\x04user\x18\x07 \x01(\x0b\x32\x05.User\x12\x15\n\x06toUser\x18\x08 \x01(\x0b\x32\x05.User\x12\x11\n\trepeatEnd\x18\t \x01(\x05\x12+\n\ntextEffect\x18\n \x01(\x0b\x32\x17.GiftMessage.TextEffect\x12\x0f\n\x07groupId\x18\x0b \x01(\x03\x12\x17\n\x0fincomeTaskgifts\x18\x0c \x01(\x03\x12\x1a\n\x12roomFanTicketCount\x18\r \x01(\x03\x12!\n\x08priority\x18\x0e \x01(\x0b\x32\x0f.GiftIMPriority\x12\x19\n\x04gift\x18\x0f \x01(\x0b\x32\x0b.GiftStruct\x12\r\n\x05logId\x18\x10 \x01(\t\x12\x10\n\x08sendType\x18\x11 \x01(\x03\x12+\n\x10publicAreaCommon\x18\x12 \x01(\x0b\x32\x11.PublicAreaCommon\x12\x1e\n\x0ftrayDisplayText\x18\x13 \x01(\x0b\x32\x05.Text\x12\x1c\n\x14\x62\x61nnedDisplayEffects\x18\x14 \x01(\x03\x12\x1f\n\x08trayInfo\x18\x15 \x01(\x0b\x32\r.GiftTrayInfo\x12/\n\x12\x61ssetEffectMixInfo\x18\x18 \x01(\x0b\x32\x13.AssetEffectMixInfo\x1a\x92\x03\n\nTextEffect\x12\x30\n\x08portrait\x18\x01 \x01(\x0b\x32\x1e.GiftMessage.TextEffect.Detail\x12\x31\n\tlandscape\x18\x02 \x01(\x0b\x32\x1e.GiftMessage.TextEffect.Detail\x1a\x9e\x02\n\x06\x44\x65tail\x12\x13\n\x04text\x18\x01 \x01(\x0b\x32\x05.Text\x12\x14\n\x0ctextFontSize\x18\x02 \x01(\x05\x12\x1a\n\nbackground\x18\x03 \x01(\x0b\x32\x06.Image\x12\r\n\x05start\x18\x04 \x01(\x05\x12\x10\n\x08\x64uration\x18\x05 \x01(\x05\x12\t\n\x01x\x18\x06 \x01(\x05\x12\t\n\x01y\x18\x07 \x01(\x05\x12\r\n\x05width\x18\x08 \x01(\x05\x12\x0e\n\x06height\x18\t \x01(\x05\x12\x10\n\x08shadowDx\x18\n \x01(\x05\x12\x10\n\x08shadowDy\x18\x0b \x01(\x05\x12\x14\n\x0cshadowRadius\x18\x0c \x01(\x05\x12\x13\n\x0bshadowColor\x18\r \x01(\t\x12\x13\n\x0bstrokeColor\x18\x0e \x01(\t\x12\x13\n\x0bstrokeWidth\x18\x0f \x01(\x05\"v\n\x0bLikeMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\r\n\x05total\x18\x03 \x01(\x03\x12\r\n\x05\x63olor\x18\x04 \x01(\x03\x12\x13\n\x04user\x18\x05 \x01(\x0b\x32\x05.User\x12\x0c\n\x04icon\x18\x06 \x01(\t\"\x8e\x02\n\x0b\x43hatMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\t\x12\x17\n\x0fvisibleToSender\x18\x04 \x01(\x08\x12\x1f\n\x0f\x62\x61\x63kgroundImage\x18\x05 \x01(\x0b\x32\x06.Image\x12\x1b\n\x13\x66ullScreenTextColor\x18\x06 \x01(\t\x12!\n\x11\x62\x61\x63kgroundImageV2\x18\x07 \x01(\x0b\x32\x06.Image\x12+\n\x10publicAreaCommon\x18\t \x01(\x0b\x32\x11.PublicAreaCommon\x12\x19\n\tgiftImage\x18\n \x01(\x0b\x32\x06.Image\"\xb7\x01\n\rSocialMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x11\n\tshareType\x18\x03 \x01(\x03\x12\x0e\n\x06\x61\x63tion\x18\x04 \x01(\x03\x12\x13\n\x0bshareTarget\x18\x05 \x01(\t\x12\x13\n\x0b\x66ollowCount\x18\x06 \x01(\x03\x12+\n\x10publicAreaCommon\x18\x07 \x01(\x0b\x32\x11.PublicAreaCommon\"\xf5\x06\n\rMemberMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x13\n\x04user\x18\x02 \x01(\x0b\x32\x05.User\x12\x13\n\x0bmemberCount\x18\x03 \x01(\x03\x12\x17\n\x08operator\x18\x04 \x01(\x0b\x32\x05.User\x12\x14\n\x0cisSetToAdmin\x18\x05 \x01(\x08\x12\x11\n\tisTopUser\x18\x06 \x01(\x08\x12\x11\n\trankScore\x18\x07 \x01(\x03\x12\x11\n\ttopUserNo\x18\x08 \x01(\x03\x12\x11\n\tenterType\x18\t \x01(\x03\x12\x0e\n\x06\x61\x63tion\x18\n \x01(\x03\x12\x19\n\x11\x61\x63tionDescription\x18\x0b \x01(\t\x12\x0e\n\x06userId\x18\x0c \x01(\x03\x12\x31\n\x0c\x65\x66\x66\x65\x63tConfig\x18\r \x01(\x0b\x32\x1b.MemberMessage.EffectConfig\x12\x0e\n\x06popStr\x18\x0e \x01(\t\x12\x36\n\x11\x65nterEffectConfig\x18\x0f \x01(\x0b\x32\x1b.MemberMessage.EffectConfig\x12\x1f\n\x0f\x62\x61\x63kgroundImage\x18\x10 \x01(\x0b\x32\x06.Image\x12!\n\x11\x62\x61\x63kgroundImageV2\x18\x11 \x01(\x0b\x32\x06.Image\x12 \n\x11\x61nchorDisplayText\x18\x12 \x01(\x0b\x32\x05.Text\x12+\n\x10publicAreaCommon\x18\x13 \x01(\x0b\x32\x11.PublicAreaCommon\x1a\xdc\x02\n\x0c\x45\x66\x66\x65\x63tConfig\x12\x0c\n\x04type\x18\x01 \x01(\x03\x12\x14\n\x04icon\x18\x02 \x01(\x0b\x32\x06.Image\x12\x11\n\tavatarPos\x18\x03 \x01(\x03\x12\x13\n\x04text\x18\x04 \x01(\x0b\x32\x05.Text\x12\x18\n\x08textIcon\x18\x05 \x01(\x0b\x32\x06.Image\x12\x10\n\x08stayTime\x18\x06 \x01(\x05\x12\x13\n\x0b\x61nimAssetId\x18\x07 \x01(\x03\x12\x15\n\x05\x62\x61\x64ge\x18\x08 \x01(\x0b\x32\x06.Image\x12\x18\n\x10\x66lexSettingArray\x18\t \x03(\x03\x12\x1f\n\x0ftextIconOverlay\x18\n \x01(\x0b\x32\x06.Image\x12\x1d\n\ranimatedBadge\x18\x0b \x01(\x0b\x32\x06.Image\x12\x15\n\rhasSweepLight\x18\x0c \x01(\x08\x12\x1c\n\x14textFlexSettingArray\x18\r \x03(\x03\x12\x19\n\x11\x63\x65nterAnimAssetId\x18\x0e \x01(\x03\"9\n\x0e\x43ontrolMessage\x12\x17\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x07.Common\x12\x0e\n\x06status\x18\x02 \x01(\x05\"b\n\x0f\x46\x61nsclubMessage\x12\x1b\n\ncommonInfo\x18\x01 \x01(\x0b\x32\x07.Common\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ontent\x18\x03 \x01(\t\x12\x13\n\x04user\x18\x04 \x01(\x0b\x32\x05.User\"\x83\x03\n\x06\x43ommon\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\r\n\x05msgId\x18\x02 \x01(\x03\x12\x0e\n\x06roomId\x18\x03 \x01(\x03\x12\x12\n\ncreateTime\x18\x04 \x01(\x03\x12\x0f\n\x07monitor\x18\x05 \x01(\x05\x12\x11\n\tisShowMsg\x18\x06 \x01(\x08\x12\x10\n\x08\x64\x65scribe\x18\x07 \x01(\t\x12\x1a\n\x0b\x64isplayText\x18\x08 \x01(\x0b\x32\x05.Text\x12\x10\n\x08\x66oldType\x18\t \x01(\x03\x12\x16\n\x0e\x61nchorFoldType\x18\n \x01(\x03\x12\x15\n\rpriorityScore\x18\x0b \x01(\x03\x12\r\n\x05logId\x18\x0c \x01(\t\x12\x19\n\x11msgProcessFilterK\x18\r \x01(\t\x12\x19\n\x11msgProcessFilterV\x18\x0e \x01(\t\x12\x13\n\x04user\x18\x0f \x01(\x0b\x32\x05.User\x12\x13\n\x04room\x18\x10 \x01(\x0b\x32\x05.Room\x12\x18\n\x10\x61nchorFoldTypeV2\x18\x11 \x01(\x03\x12\x1a\n\x12processAtSeiTimeMs\x18\x12 \x01(\x03\"k\n\x04Text\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x0e\x64\x65\x66\x61ultPattern\x18\x02 \x01(\t\x12\"\n\rdefaultFormat\x18\x03 \x01(\x0b\x32\x0b.TextFormat\x12\x1a\n\x06pieces\x18\x04 \x03(\x0b\x32\n.TextPiece\"\x92\t\n\x04Room\x12\n\n\x02id\x18\x01 \x01(\x03\x12\r\n\x05idStr\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\x03\x12\x13\n\x0bownerUserId\x18\x04 \x01(\x03\x12\r\n\x05title\x18\x05 \x01(\t\x12\x11\n\tuserCount\x18\x06 \x01(\x03\x12\x12\n\ncreateTime\x18\x07 \x01(\x03\x12\x15\n\rlinkmicLayout\x18\x08 \x01(\x03\x12\x12\n\nfinishTime\x18\t \x01(\x03\x12\x19\n\x05\x65xtra\x18\n \x01(\x0b\x32\n.RoomExtra\x12\x17\n\x0f\x64ynamicCoverUri\x18\x0b \x01(\t\x12\x35\n\x10\x64ynamicCoverDict\x18\x0c \x03(\x0b\x32\x1b.Room.DynamicCoverDictEntry\x12\x14\n\x0clastPingTime\x18\r \x01(\x03\x12\x0e\n\x06liveId\x18\x0e \x01(\x03\x12\x16\n\x0estreamProvider\x18\x0f \x01(\x03\x12\x0e\n\x06osType\x18\x10 \x01(\x03\x12\x15\n\rclientVersion\x18\x11 \x01(\x03\x12\x13\n\x0bwithLinkmic\x18\x12 \x01(\x08\x12\x1d\n\x15\x65nableRoomPerspective\x18\x13 \x01(\x08\x12\x15\n\x05\x63over\x18\x14 \x01(\x0b\x32\x06.Image\x12\x1c\n\x0c\x64ynamicCover\x18\x15 \x01(\x0b\x32\x06.Image\x12\x1f\n\x0f\x64ynamicCoverLow\x18\x16 \x01(\x0b\x32\x06.Image\x12\x10\n\x08shareUrl\x18\x17 \x01(\t\x12\x17\n\x0f\x61nchorShareText\x18\x18 \x01(\t\x12\x15\n\ruserShareText\x18\x19 \x01(\t\x12\x10\n\x08streamId\x18\x1a \x01(\x03\x12\x13\n\x0bstreamIdStr\x18\x1b \x01(\t\x12\x1d\n\tstreamUrl\x18\x1c \x01(\x0b\x32\n.StreamUrl\x12\x14\n\x0cmosaicStatus\x18\x1d \x01(\x03\x12\x11\n\tmosaicTip\x18\x1e \x01(\t\x12\x11\n\tcellStyle\x18\x1f \x01(\x03\x12\x19\n\x07linkMic\x18  \x01(\x0b\x32\x08.LinkMic\x12\x15\n\rluckymoneyNum\x18! \x01(\x03\x12\x1d\n\x08\x64\x65\x63oList\x18\" \x03(\x0b\x32\x0b.Decoration\x12\x18\n\x07topFans\x18# \x03(\x0b\x32\x07.TopFan\x12\x19\n\x05stats\x18$ \x01(\x0b\x32\n.RoomStats\x12\x1b\n\x13sunDailyIconContent\x18% \x01(\t\x12\x10\n\x08\x64istance\x18& \x01(\t\x12\x14\n\x0c\x64istanceCity\x18\' \x01(\t\x12\x10\n\x08location\x18( \x01(\t\x12\x14\n\x0crealDistance\x18) \x01(\t\x12\x1d\n\rfeedRoomLabel\x18* \x01(\x0b\x32\x06.Image\x12\x17\n\x0f\x63ommonLabelList\x18+ \x01(\t\x12&\n\x0flivingRoomAttrs\x18, \x01(\x0b\x32\r.RoomUserAttr\x12\x14\n\x0c\x61\x64minUserIds\x18- \x03(\x03\x12\x14\n\x05owner\x18. \x01(\x0b\x32\x05.User\x12\x13\n\x0bprivateInfo\x18/ \x01(\t\x1a\x37\n\x15\x44ynamicCoverDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x0b\n\tRoomExtra\"\x0b\n\tRoomStats\"\x0e\n\x0cRoomUserAttr\"\x0b\n\tStreamUrl\"\t\n\x07LinkMic\"\x0c\n\nDecoration\"\x08\n\x06TopFan\"\xf2\x14\n\x04User\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0f\n\x07shortId\x18\x02 \x01(\x03\x12\x10\n\x08nickname\x18\x03 \x01(\t\x12\x0e\n\x06gender\x18\x04 \x01(\x05\x12\x11\n\tsignature\x18\x05 \x01(\t\x12\r\n\x05level\x18\x06 \x01(\x05\x12\x10\n\x08\x62irthday\x18\x07 \x01(\x03\x12\x11\n\ttelephone\x18\x08 \x01(\t\x12\x1b\n\x0b\x61vatarThumb\x18\t \x01(\x0b\x32\x06.Image\x12\x1c\n\x0c\x61vatarMedium\x18\n \x01(\x0b\x32\x06.Image\x12\x1b\n\x0b\x61vatarLarge\x18\x0b \x01(\x0b\x32\x06.Image\x12\x10\n\x08verified\x18\x0c \x01(\x08\x12\x12\n\nexperience\x18\r \x01(\x05\x12\x0c\n\x04\x63ity\x18\x0e \x01(\t\x12\x0e\n\x06status\x18\x0f \x01(\x05\x12\x12\n\ncreateTime\x18\x10 \x01(\x03\x12\x12\n\nmodifyTime\x18\x11 \x01(\x03\x12\x0e\n\x06secret\x18\x12 \x01(\x05\x12\x16\n\x0eshareQrcodeUri\x18\x13 \x01(\t\x12\x1a\n\x12incomeSharePercent\x18\x14 \x01(\x05\x12\x1e\n\x0e\x62\x61\x64geImageList\x18\x15 \x01(\x0b\x32\x06.Image\x12$\n\nfollowInfo\x18\x16 \x01(\x0b\x32\x10.User.FollowInfo\x12 \n\x08payGrade\x18\x17 \x01(\x0b\x32\x0e.User.PayGrade\x12 \n\x08\x66\x61nsClub\x18\x18 \x01(\x0b\x32\x0e.User.FansClub\x12\x1c\n\x06\x62order\x18\x19 \x01(\x0b\x32\x0c.User.Border\x12\x11\n\tspecialId\x18\x1a \x01(\t\x12\x1c\n\x0c\x61vatarBorder\x18\x1b \x01(\x0b\x32\x06.Image\x12\x15\n\x05medal\x18\x1c \x01(\x0b\x32\x06.Image\x12\x1d\n\rrealTimeIcons\x18\x1d \x03(\x0b\x32\x06.Image\x12 \n\x10newRealTimeIcons\x18\x1e \x03(\x0b\x32\x06.Image\x12\x10\n\x08topVipNo\x18\x1f \x01(\x03\x12 \n\x08userAttr\x18  \x01(\x0b\x32\x0e.User.UserAttr\x12\x1e\n\x07ownRoom\x18! \x01(\x0b\x32\r.User.OwnRoom\x12\x10\n\x08payScore\x18\" \x01(\x03\x12\x13\n\x0bticketCount\x18# \x01(\x03\x12$\n\nanchorInfo\x18$ \x01(\x0b\x32\x10.User.AnchorInfo\x12\x14\n\x0clinkMicStats\x18% \x01(\x05\x12\x11\n\tdisplayId\x18& \x01(\t\x1a\n\n\x08UserAttr\x1a\t\n\x07OwnRoom\x1a\x0c\n\nAnchorInfo\x1ay\n\nFollowInfo\x12\x16\n\x0e\x66ollowingCount\x18\x01 \x01(\x03\x12\x15\n\rfollowerCount\x18\x02 \x01(\x03\x12\x14\n\x0c\x66ollowStatus\x18\x03 \x01(\x03\x12\x12\n\npushStatus\x18\x04 \x01(\x03\x12\x12\n\nremarkName\x18\x05 \x01(\t\x1a\xfd\x03\n\x08\x46\x61nsClub\x12)\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1b.User.FansClub.FansClubData\x12\x32\n\npreferData\x18\x02 \x03(\x0b\x32\x1e.User.FansClub.PreferDataEntry\x1aN\n\x0fPreferDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.User.FansClub.FansClubData:\x02\x38\x01\x1a\xc1\x02\n\x0c\x46\x61nsClubData\x12\x10\n\x08\x63lubName\x18\x01 \x01(\t\x12\r\n\x05level\x18\x02 \x01(\x05\x12\x1a\n\x12userFansClubStatus\x18\x03 \x01(\x05\x12\x34\n\x05\x62\x61\x64ge\x18\x04 \x01(\x0b\x32%.User.FansClub.FansClubData.UserBadge\x12\x18\n\x10\x61vailableGiftIds\x18\x05 \x03(\x03\x12\x10\n\x08\x61nchorId\x18\x06 \x01(\x03\x1a\x91\x01\n\tUserBadge\x12?\n\x05icons\x18\x01 \x03(\x0b\x32\x30.User.FansClub.FansClubData.UserBadge.IconsEntry\x12\r\n\x05title\x18\x02 \x01(\t\x1a\x34\n\nIconsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x15\n\x05value\x18\x02 \x01(\x0b\x32\x06.Image:\x02\x38\x01\x1a\x08\n\x06\x42order\x1a\xc7\x01\n\rGradeBuffInfo\x12\x11\n\tbuffLevel\x18\x01 \x01(\x03\x12\x0e\n\x06status\x18\x02 \x01(\x05\x12\x0f\n\x07\x65ndTime\x18\x03 \x01(\x03\x12\x35\n\tstatsInfo\x18\x04 \x03(\x0b\x32\".User.GradeBuffInfo.StatsInfoEntry\x12\x19\n\tbuffBadge\x18\x05 \x01(\x0b\x32\x06.Image\x1a\x30\n\x0eStatsInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\xec\x06\n\x08PayGrade\x12\x19\n\x11totalDiamondCount\x18\x01 \x01(\x03\x12\x1b\n\x0b\x64iamondIcon\x18\x02 \x01(\x0b\x32\x06.Image\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x14\n\x04icon\x18\x04 \x01(\x0b\x32\x06.Image\x12\x10\n\x08nextName\x18\x05 \x01(\t\x12\r\n\x05level\x18\x06 \x01(\x03\x12\x18\n\x08nextIcon\x18\x07 \x01(\x0b\x32\x06.Image\x12\x13\n\x0bnextDiamond\x18\x08 \x01(\x03\x12\x12\n\nnowDiamond\x18\t \x01(\x03\x12\x1b\n\x13thisGradeMinDiamond\x18\n \x01(\x03\x12\x1b\n\x13thisGradeMaxDiamond\x18\x0b \x01(\x03\x12\x15\n\rpayDiamondBak\x18\x0c \x01(\x03\x12\x15\n\rgradeDescribe\x18\r \x01(\t\x12/\n\rgradeIconList\x18\x0e \x03(\x0b\x32\x18.User.PayGrade.GradeIcon\x12\x16\n\x0escreenChatType\x18\x0f \x01(\x03\x12\x16\n\x06imIcon\x18\x10 \x01(\x0b\x32\x06.Image\x12\x1f\n\x0fimIconWithLevel\x18\x11 \x01(\x0b\x32\x06.Image\x12\x18\n\x08liveIcon\x18\x12 \x01(\x0b\x32\x06.Image\x12\"\n\x12newImIconWithLevel\x18\x13 \x01(\x0b\x32\x06.Image\x12\x1b\n\x0bnewLiveIcon\x18\x14 \x01(\x0b\x32\x06.Image\x12\x1a\n\x12upgradeNeedConsume\x18\x15 \x01(\x03\x12\x16\n\x0enextPrivileges\x18\x16 \x01(\t\x12\x1a\n\nbackground\x18\x17 \x01(\x0b\x32\x06.Image\x12\x1e\n\x0e\x62\x61\x63kgroundBack\x18\x18 \x01(\x0b\x32\x06.Image\x12\r\n\x05score\x18\x19 \x01(\x03\x12%\n\x08\x62uffInfo\x18\x1a \x01(\x0b\x32\x13.User.GradeBuffInfo\x12\x14\n\x0bgradeBanner\x18\xe9\x07 \x01(\t\x12 \n\x0fprofileDialogBg\x18\xea\x07 \x01(\x0b\x32\x06.Image\x12$\n\x13profileDialogBgBack\x18\xeb\x07 \x01(\x0b\x32\x06.Image\x1aW\n\tGradeIcon\x12\x14\n\x04icon\x18\x01 \x01(\x0b\x32\x06.Image\x12\x13\n\x0biconDiamond\x18\x02 \x01(\x03\x12\r\n\x05level\x18\x03 \x01(\x03\x12\x10\n\x08levelStr\x18\x04 \x01(\t\"\xa5\x01\n\nTextFormat\x12\r\n\x05\x63olor\x18\x01 \x01(\t\x12\x0c\n\x04\x62old\x18\x02 \x01(\x08\x12\x0e\n\x06italic\x18\x03 \x01(\x08\x12\x0e\n\x06weight\x18\x04 \x01(\x05\x12\x13\n\x0bitalicAngle\x18\x05 \x01(\x05\x12\x10\n\x08\x66ontSize\x18\x06 \x01(\x05\x12\x1c\n\x14userHeightLightColor\x18\x07 \x01(\x08\x12\x15\n\ruseRemoteClor\x18\x08 \x01(\x08\"n\n\tTextPiece\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x1b\n\x06\x66ormat\x18\x02 \x01(\x0b\x32\x0b.TextFormat\x12\x13\n\x0bstringValue\x18\x0b \x01(\t\x12!\n\tuserValue\x18\x15 \x01(\x0b\x32\x0e.TextPieceUser\"\x86\x02\n\x05Image\x12\x0f\n\x07urlList\x18\x01 \x03(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x0e\n\x06height\x18\x03 \x01(\x03\x12\r\n\x05width\x18\x04 \x01(\x03\x12\x10\n\x08\x61vgColor\x18\x05 \x01(\t\x12\x11\n\timageType\x18\x06 \x01(\x05\x12\x12\n\nopenWebUrl\x18\x07 \x01(\t\x12\x1f\n\x07\x63ontent\x18\x08 \x01(\x0b\x32\x0e.Image.Content\x12\x12\n\nisAnimated\x18\t \x01(\x08\x1aR\n\x07\x43ontent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tfontColor\x18\x02 \x01(\t\x12\r\n\x05level\x18\x03 \x01(\x03\x12\x17\n\x0f\x61lternativeText\x18\x04 \x01(\t\"7\n\rTextPieceUser\x12\x13\n\x04user\x18\x01 \x01(\x0b\x32\x05.User\x12\x11\n\twithColon\x18\x02 \x01(\x08\"g\n\x10PublicAreaCommon\x12\x19\n\tuserLabel\x18\x01 \x01(\x0b\x32\x06.Image\x12\x19\n\x11userConsumeInRoom\x18\x02 \x01(\x03\x12\x1d\n\x15userSendGiftCntInRoom\x18\x03 \x01(\x03\"Q\n\x0eGiftIMPriority\x12\x12\n\nqueueSizes\x18\x01 \x03(\x03\x12\x19\n\x11selfQueuePriority\x18\x02 \x01(\x03\x12\x10\n\x08priority\x18\x03 \x01(\x03\"\xb9\x01\n\x0cGiftTrayInfo\x12\x1e\n\x0ftrayDisplayText\x18\x01 \x01(\x0b\x32\x05.Text\x12\x1b\n\x0btrayBaseImg\x18\x02 \x01(\x0b\x32\x06.Image\x12\x1b\n\x0btrayHeadImg\x18\x03 \x01(\x0b\x32\x06.Image\x12\x1c\n\x0ctrayRightImg\x18\x04 \x01(\x0b\x32\x06.Image\x12\x11\n\ttrayLevel\x18\x05 \x01(\x03\x12\x1e\n\x0etrayDynamicImg\x18\x06 \x01(\x0b\x32\x06.Image\"\x84\x0c\n\nGiftStruct\x12\x15\n\x05image\x18\x01 \x01(\x0b\x32\x06.Image\x12\x10\n\x08\x64\x65scribe\x18\x02 \x01(\t\x12\x0e\n\x06notify\x18\x03 \x01(\x08\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12\n\n\x02id\x18\x05 \x01(\x03\x12\x38\n\x0c\x66\x61nsclubInfo\x18\x06 \x01(\x0b\x32\".GiftStruct.GiftStructFansClubInfo\x12\x12\n\nforLinkmic\x18\x07 \x01(\x08\x12\x0e\n\x06\x64oodle\x18\x08 \x01(\x08\x12\x13\n\x0b\x66orFansclub\x18\t \x01(\x08\x12\r\n\x05\x63ombo\x18\n \x01(\x08\x12\x0c\n\x04type\x18\x0b \x01(\x05\x12\x14\n\x0c\x64iamondCount\x18\x0c \x01(\x05\x12\x1a\n\x12isDisplayedOnPanel\x18\r \x01(\x05\x12\x17\n\x0fprimaryEffectId\x18\x0e \x01(\x03\x12\x1d\n\rgiftLabelIcon\x18\x0f \x01(\x0b\x32\x06.Image\x12\x0c\n\x04name\x18\x10 \x01(\t\x12\x0e\n\x06region\x18\x11 \x01(\t\x12\x0e\n\x06manual\x18\x12 \x01(\t\x12\x11\n\tforCustom\x18\x13 \x01(\x08\x12\x37\n\x0especialEffects\x18\x14 \x03(\x0b\x32\x1f.GiftStruct.SpecialEffectsEntry\x12\x14\n\x04icon\x18\x15 \x01(\x0b\x32\x06.Image\x12\x12\n\nactionType\x18\x16 \x01(\x05\x12\x17\n\x0fwatermelonSeeds\x18\x17 \x01(\x05\x12\x12\n\ngoldEffect\x18\x18 \x01(\t\x12!\n\x04subs\x18\x19 \x03(\x0b\x32\x13.LuckyMoneyGiftMeta\x12\x13\n\x0bgoldenBeans\x18\x1a \x01(\x03\x12\x12\n\nhonorLevel\x18\x1b \x01(\x03\x12\x10\n\x08itemType\x18\x1c \x01(\x05\x12\x11\n\tschemeUrl\x18\x1d \x01(\t\x12*\n\rgiftOperation\x18\x1e \x01(\x0b\x32\x13.GiftPanelOperation\x12\x11\n\teventName\x18\x1f \x01(\t\x12\x12\n\nnobleLevel\x18  \x01(\x03\x12\x10\n\x08guideUrl\x18! \x01(\t\x12\x16\n\x0epunishMedicine\x18\" \x01(\x08\x12\x11\n\tforPortal\x18# \x01(\x08\x12\x14\n\x0c\x62usinessText\x18$ \x01(\t\x12\x0f\n\x07\x63nyGift\x18% \x01(\x08\x12\r\n\x05\x61ppId\x18& \x01(\x03\x12\x10\n\x08vipLevel\x18\' \x01(\x03\x12\x0e\n\x06isGray\x18( \x01(\x08\x12\x15\n\rgraySchemeUrl\x18) \x01(\t\x12\x11\n\tgiftScene\x18* \x01(\x03\x12\x1f\n\ngiftBanner\x18+ \x01(\x0b\x32\x0b.GiftBanner\x12\x14\n\x0ctriggerWords\x18, \x03(\t\x12$\n\rgiftBuffInfos\x18- \x03(\x0b\x32\r.GiftBuffInfo\x12\x18\n\x10\x66orFirstRecharge\x18. \x01(\x08\x12%\n\x15\x64ynamicImgForSelected\x18/ \x01(\x0b\x32\x06.Image\x12\x17\n\x0f\x61\x66terSendAction\x18\x30 \x01(\x05\x12\x17\n\x0fgiftOfflineTime\x18\x31 \x01(\x03\x12\x12\n\ntopBarText\x18\x32 \x01(\t\x12\x1e\n\x0etopRightAvatar\x18\x33 \x01(\x0b\x32\x06.Image\x12\x17\n\x0f\x62\x61nnerSchemeUrl\x18\x34 \x01(\t\x12\x10\n\x08isLocked\x18\x35 \x01(\x08\x12\x14\n\x0creqExtraType\x18\x36 \x01(\x03\x12\x10\n\x08\x61ssetIds\x18\x37 \x03(\x03\x12)\n\x0fgiftPreviewInfo\x18\x38 \x01(\x0b\x32\x10.GiftPreviewInfo\x12\x19\n\x07giftTip\x18\x39 \x01(\x0b\x32\x08.GiftTip\x12\x1b\n\x13needSweepLightCount\x18: \x01(\x05\x12!\n\tgroupInfo\x18; \x03(\x0b\x32\x0e.GiftGroupInfo\x1a\x35\n\x13SpecialEffectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a=\n\x16GiftStructFansClubInfo\x12\x10\n\x08minLevel\x18\x01 \x01(\x05\x12\x11\n\tinsertPos\x18\x02 \x01(\x05\"\x14\n\x12\x41ssetEffectMixInfo\"\x14\n\x12LuckyMoneyGiftMeta\"\x14\n\x12GiftPanelOperation\"\x0c\n\nGiftBanner\"\x0e\n\x0cGiftBuffInfo\"\x11\n\x0fGiftPreviewInfo\"\t\n\x07GiftTip\"\x0f\n\rGiftGroupInfo\"\x14\n\x12\x45\x66\x66\x65\x63tMixImageInfob\x06proto3')
 )
 
 
@@ -1273,6 +1273,58 @@ _CONTROLMESSAGE = _descriptor.Descriptor(
 )
 
 
+_FANSCLUBMESSAGE = _descriptor.Descriptor(
+  name='FansclubMessage',
+  full_name='FansclubMessage',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='commonInfo', full_name='FansclubMessage.commonInfo', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='type', full_name='FansclubMessage.type', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='content', full_name='FansclubMessage.content', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='user', full_name='FansclubMessage.user', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3398,
+  serialized_end=3496,
+)
+
+
 _COMMON = _descriptor.Descriptor(
   name='Common',
   full_name='Common',
@@ -1418,8 +1470,8 @@ _COMMON = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3399,
-  serialized_end=3786,
+  serialized_start=3499,
+  serialized_end=3886,
 )
 
 
@@ -1470,8 +1522,8 @@ _TEXT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3788,
-  serialized_end=3895,
+  serialized_start=3888,
+  serialized_end=3995,
 )
 
 
@@ -1508,8 +1560,8 @@ _ROOM_DYNAMICCOVERDICTENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5013,
-  serialized_end=5068,
+  serialized_start=5113,
+  serialized_end=5168,
 )
 
 _ROOM = _descriptor.Descriptor(
@@ -1860,8 +1912,8 @@ _ROOM = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=3898,
-  serialized_end=5068,
+  serialized_start=3998,
+  serialized_end=5168,
 )
 
 
@@ -1884,8 +1936,8 @@ _ROOMEXTRA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5070,
-  serialized_end=5081,
+  serialized_start=5170,
+  serialized_end=5181,
 )
 
 
@@ -1908,8 +1960,8 @@ _ROOMSTATS = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5083,
-  serialized_end=5094,
+  serialized_start=5183,
+  serialized_end=5194,
 )
 
 
@@ -1932,8 +1984,8 @@ _ROOMUSERATTR = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5096,
-  serialized_end=5110,
+  serialized_start=5196,
+  serialized_end=5210,
 )
 
 
@@ -1956,8 +2008,8 @@ _STREAMURL = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5112,
-  serialized_end=5123,
+  serialized_start=5212,
+  serialized_end=5223,
 )
 
 
@@ -1980,8 +2032,8 @@ _LINKMIC = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5125,
-  serialized_end=5134,
+  serialized_start=5225,
+  serialized_end=5234,
 )
 
 
@@ -2004,8 +2056,8 @@ _DECORATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5136,
-  serialized_end=5148,
+  serialized_start=5236,
+  serialized_end=5248,
 )
 
 
@@ -2028,8 +2080,8 @@ _TOPFAN = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5150,
-  serialized_end=5158,
+  serialized_start=5250,
+  serialized_end=5258,
 )
 
 
@@ -2052,8 +2104,8 @@ _USER_USERATTR = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6074,
-  serialized_end=6084,
+  serialized_start=6174,
+  serialized_end=6184,
 )
 
 _USER_OWNROOM = _descriptor.Descriptor(
@@ -2075,8 +2127,8 @@ _USER_OWNROOM = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6086,
-  serialized_end=6095,
+  serialized_start=6186,
+  serialized_end=6195,
 )
 
 _USER_ANCHORINFO = _descriptor.Descriptor(
@@ -2098,8 +2150,8 @@ _USER_ANCHORINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6097,
-  serialized_end=6109,
+  serialized_start=6197,
+  serialized_end=6209,
 )
 
 _USER_FOLLOWINFO = _descriptor.Descriptor(
@@ -2156,8 +2208,8 @@ _USER_FOLLOWINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6111,
-  serialized_end=6232,
+  serialized_start=6211,
+  serialized_end=6332,
 )
 
 _USER_FANSCLUB_PREFERDATAENTRY = _descriptor.Descriptor(
@@ -2193,8 +2245,8 @@ _USER_FANSCLUB_PREFERDATAENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6342,
-  serialized_end=6420,
+  serialized_start=6442,
+  serialized_end=6520,
 )
 
 _USER_FANSCLUB_FANSCLUBDATA_USERBADGE_ICONSENTRY = _descriptor.Descriptor(
@@ -2230,8 +2282,8 @@ _USER_FANSCLUB_FANSCLUBDATA_USERBADGE_ICONSENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6692,
-  serialized_end=6744,
+  serialized_start=6792,
+  serialized_end=6844,
 )
 
 _USER_FANSCLUB_FANSCLUBDATA_USERBADGE = _descriptor.Descriptor(
@@ -2267,8 +2319,8 @@ _USER_FANSCLUB_FANSCLUBDATA_USERBADGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6599,
-  serialized_end=6744,
+  serialized_start=6699,
+  serialized_end=6844,
 )
 
 _USER_FANSCLUB_FANSCLUBDATA = _descriptor.Descriptor(
@@ -2332,8 +2384,8 @@ _USER_FANSCLUB_FANSCLUBDATA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6423,
-  serialized_end=6744,
+  serialized_start=6523,
+  serialized_end=6844,
 )
 
 _USER_FANSCLUB = _descriptor.Descriptor(
@@ -2369,8 +2421,8 @@ _USER_FANSCLUB = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6235,
-  serialized_end=6744,
+  serialized_start=6335,
+  serialized_end=6844,
 )
 
 _USER_BORDER = _descriptor.Descriptor(
@@ -2392,8 +2444,8 @@ _USER_BORDER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6746,
-  serialized_end=6754,
+  serialized_start=6846,
+  serialized_end=6854,
 )
 
 _USER_GRADEBUFFINFO_STATSINFOENTRY = _descriptor.Descriptor(
@@ -2429,8 +2481,8 @@ _USER_GRADEBUFFINFO_STATSINFOENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6908,
-  serialized_end=6956,
+  serialized_start=7008,
+  serialized_end=7056,
 )
 
 _USER_GRADEBUFFINFO = _descriptor.Descriptor(
@@ -2487,8 +2539,8 @@ _USER_GRADEBUFFINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6757,
-  serialized_end=6956,
+  serialized_start=6857,
+  serialized_end=7056,
 )
 
 _USER_PAYGRADE_GRADEICON = _descriptor.Descriptor(
@@ -2538,8 +2590,8 @@ _USER_PAYGRADE_GRADEICON = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7748,
-  serialized_end=7835,
+  serialized_start=7848,
+  serialized_end=7935,
 )
 
 _USER_PAYGRADE = _descriptor.Descriptor(
@@ -2764,8 +2816,8 @@ _USER_PAYGRADE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=6959,
-  serialized_end=7835,
+  serialized_start=7059,
+  serialized_end=7935,
 )
 
 _USER = _descriptor.Descriptor(
@@ -3053,8 +3105,8 @@ _USER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=5161,
-  serialized_end=7835,
+  serialized_start=5261,
+  serialized_end=7935,
 )
 
 
@@ -3133,8 +3185,8 @@ _TEXTFORMAT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=7838,
-  serialized_end=8003,
+  serialized_start=7938,
+  serialized_end=8103,
 )
 
 
@@ -3185,8 +3237,8 @@ _TEXTPIECE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8005,
-  serialized_end=8115,
+  serialized_start=8105,
+  serialized_end=8215,
 )
 
 
@@ -3237,8 +3289,8 @@ _IMAGE_CONTENT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8298,
-  serialized_end=8380,
+  serialized_start=8398,
+  serialized_end=8480,
 )
 
 _IMAGE = _descriptor.Descriptor(
@@ -3323,8 +3375,8 @@ _IMAGE = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8118,
-  serialized_end=8380,
+  serialized_start=8218,
+  serialized_end=8480,
 )
 
 
@@ -3361,8 +3413,8 @@ _TEXTPIECEUSER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8382,
-  serialized_end=8437,
+  serialized_start=8482,
+  serialized_end=8537,
 )
 
 
@@ -3406,8 +3458,8 @@ _PUBLICAREACOMMON = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8439,
-  serialized_end=8542,
+  serialized_start=8539,
+  serialized_end=8642,
 )
 
 
@@ -3451,8 +3503,8 @@ _GIFTIMPRIORITY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8544,
-  serialized_end=8625,
+  serialized_start=8644,
+  serialized_end=8725,
 )
 
 
@@ -3517,8 +3569,8 @@ _GIFTTRAYINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8628,
-  serialized_end=8813,
+  serialized_start=8728,
+  serialized_end=8913,
 )
 
 
@@ -3555,8 +3607,8 @@ _GIFTSTRUCT_SPECIALEFFECTSENTRY = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10240,
-  serialized_end=10293,
+  serialized_start=10340,
+  serialized_end=10393,
 )
 
 _GIFTSTRUCT_GIFTSTRUCTFANSCLUBINFO = _descriptor.Descriptor(
@@ -3592,8 +3644,8 @@ _GIFTSTRUCT_GIFTSTRUCTFANSCLUBINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10295,
-  serialized_end=10356,
+  serialized_start=10395,
+  serialized_end=10456,
 )
 
 _GIFTSTRUCT = _descriptor.Descriptor(
@@ -4028,8 +4080,8 @@ _GIFTSTRUCT = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=8816,
-  serialized_end=10356,
+  serialized_start=8916,
+  serialized_end=10456,
 )
 
 
@@ -4052,8 +4104,8 @@ _ASSETEFFECTMIXINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10358,
-  serialized_end=10378,
+  serialized_start=10458,
+  serialized_end=10478,
 )
 
 
@@ -4076,8 +4128,8 @@ _LUCKYMONEYGIFTMETA = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10380,
-  serialized_end=10400,
+  serialized_start=10480,
+  serialized_end=10500,
 )
 
 
@@ -4100,8 +4152,8 @@ _GIFTPANELOPERATION = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10402,
-  serialized_end=10422,
+  serialized_start=10502,
+  serialized_end=10522,
 )
 
 
@@ -4124,8 +4176,8 @@ _GIFTBANNER = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10424,
-  serialized_end=10436,
+  serialized_start=10524,
+  serialized_end=10536,
 )
 
 
@@ -4148,8 +4200,8 @@ _GIFTBUFFINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10438,
-  serialized_end=10452,
+  serialized_start=10538,
+  serialized_end=10552,
 )
 
 
@@ -4172,8 +4224,8 @@ _GIFTPREVIEWINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10454,
-  serialized_end=10471,
+  serialized_start=10554,
+  serialized_end=10571,
 )
 
 
@@ -4196,8 +4248,8 @@ _GIFTTIP = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10473,
-  serialized_end=10482,
+  serialized_start=10573,
+  serialized_end=10582,
 )
 
 
@@ -4220,8 +4272,8 @@ _GIFTGROUPINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10484,
-  serialized_end=10499,
+  serialized_start=10584,
+  serialized_end=10599,
 )
 
 
@@ -4244,8 +4296,8 @@ _EFFECTMIXIMAGEINFO = _descriptor.Descriptor(
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=10501,
-  serialized_end=10521,
+  serialized_start=10601,
+  serialized_end=10621,
 )
 
 _RESPONSE_ROUTEPARAMSENTRY.containing_type = _RESPONSE
@@ -4300,6 +4352,8 @@ _MEMBERMESSAGE.fields_by_name['backgroundImageV2'].message_type = _IMAGE
 _MEMBERMESSAGE.fields_by_name['anchorDisplayText'].message_type = _TEXT
 _MEMBERMESSAGE.fields_by_name['publicAreaCommon'].message_type = _PUBLICAREACOMMON
 _CONTROLMESSAGE.fields_by_name['common'].message_type = _COMMON
+_FANSCLUBMESSAGE.fields_by_name['commonInfo'].message_type = _COMMON
+_FANSCLUBMESSAGE.fields_by_name['user'].message_type = _USER
 _COMMON.fields_by_name['displayText'].message_type = _TEXT
 _COMMON.fields_by_name['user'].message_type = _USER
 _COMMON.fields_by_name['room'].message_type = _ROOM
@@ -4407,6 +4461,7 @@ DESCRIPTOR.message_types_by_name['ChatMessage'] = _CHATMESSAGE
 DESCRIPTOR.message_types_by_name['SocialMessage'] = _SOCIALMESSAGE
 DESCRIPTOR.message_types_by_name['MemberMessage'] = _MEMBERMESSAGE
 DESCRIPTOR.message_types_by_name['ControlMessage'] = _CONTROLMESSAGE
+DESCRIPTOR.message_types_by_name['FansclubMessage'] = _FANSCLUBMESSAGE
 DESCRIPTOR.message_types_by_name['Common'] = _COMMON
 DESCRIPTOR.message_types_by_name['Text'] = _TEXT
 DESCRIPTOR.message_types_by_name['Room'] = _ROOM
@@ -4540,6 +4595,13 @@ ControlMessage = _reflection.GeneratedProtocolMessageType('ControlMessage', (_me
   ))
 _sym_db.RegisterMessage(ControlMessage)
 
+FansclubMessage = _reflection.GeneratedProtocolMessageType('FansclubMessage', (_message.Message,), dict(
+  DESCRIPTOR = _FANSCLUBMESSAGE,
+  __module__ = 'message_pb2'
+  # @@protoc_insertion_point(class_scope:FansclubMessage)
+  ))
+_sym_db.RegisterMessage(FansclubMessage)
+
 Common = _reflection.GeneratedProtocolMessageType('Common', (_message.Message,), dict(
   DESCRIPTOR = _COMMON,
   __module__ = 'message_pb2'