From d7db442a4655baa0c0f282aa415fd12da4edc40a Mon Sep 17 00:00:00 2001
From: wangguan <wangguan@kt007.com>
Date: Tue, 27 Oct 2020 09:46:31 +0800
Subject: [PATCH] Merge branch 'master' of ssh://172.16.1.52:8091/GemBattle

---
 Assets/Scripts/Net/NetExtends/Common.cs | 2229 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 2,067 insertions(+), 162 deletions(-)

diff --git a/Assets/Scripts/Net/NetExtends/Common.cs b/Assets/Scripts/Net/NetExtends/Common.cs
index 6c34f3d..9b695e6 100644
--- a/Assets/Scripts/Net/NetExtends/Common.cs
+++ b/Assets/Scripts/Net/NetExtends/Common.cs
@@ -23,53 +23,85 @@
       byte[] descriptorData = global::System.Convert.FromBase64String(
           string.Concat(
             "Cgxjb21tb24ucHJvdG8SCHByb3RvYnVmIjUKBkdlbU1zZxINCgVnZW1JZBgB",
-            "IAEoBRINCgVsZXZlbBgCIAEoBRINCgVjb3VudBgDIAEoBSL4AgoLVXNlckRh",
+            "IAEoBRINCgVsZXZlbBgCIAEoBRINCgVjb3VudBgDIAEoBSLrAgoLVXNlckRh",
             "dGFNc2cSEAoIdXNlcm5hbWUYASABKAkSEAoIbmlja25hbWUYAiABKAkSDwoH",
             "aGVhZGltZxgDIAEoBRIRCglzaW5nYXR1cmUYBCABKAkSDQoFbGV2ZWwYBSAB",
-            "KAUSDAoEcmFuaxgGIAEoBRINCgVzY29yZRgHIAEoBRILCgNleHAYCCABKAUS",
-            "DQoFbW9uZXkYCSABKAUSDAoEZ29sZBgKIAEoBRIeCgRnZW1zGAsgAygLMhAu",
-            "cHJvdG9idWYuR2VtTXNnEhAKCGdlbWRlY2sxGAwgAygFEhAKCGdlbWRlY2sy",
-            "GA0gAygFEhAKCGdlbWRlY2szGA4gAygFEg4KBmRlY2tpZBgPIAEoBRIUCgxh",
-            "Y2NlcHRmcmllbmQYECABKAgSFAoMbmFtZWRjaGFuZ2VkGBEgASgIEg8KB2Fy",
-            "ZWFleHAYEiABKAUSKAoJYXJlYWJveGVzGBMgAygLMhUucHJvdG9idWYuQXJl",
-            "bmFCb3hNc2cinwEKCUZyaWVuZE1zZxIQCgh1c2VybmFtZRgBIAEoCRIQCghu",
-            "aWNrbmFtZRgCIAEoCRIPCgdoZWFkaW1nGAMgASgFEg0KBWxldmVsGAUgASgF",
-            "EgwKBHJhbmsYBiABKAUSDQoFc2NvcmUYByABKAUSDgoGb25saW5lGAggASgI",
-            "EiEKB2dlbWRlY2sYCSADKAsyEC5wcm90b2J1Zi5HZW1Nc2ciVgoMU3RvcmVB",
-            "cmVhTXNnEgoKAmlkGAEgASgFEhMKC3JlZnJlc2hUaW1lGAIgASgFEiUKBWl0",
-            "ZW1zGAMgAygLMhYucHJvdG9idWYuU3RvcmVJdGVtTXNnIiwKDFN0b3JlSXRl",
-            "bU1zZxIKCgJpZBgBIAEoBRIQCghidXlDb3VudBgCIAEoBSI4Cg1SZXdhcmRJ",
-            "dGVtTXNnEgwKBHR5cGUYASABKAUSCgoCaWQYAiABKAUSDQoFY291bnQYAyAB",
-            "KAUiPQoLQXJlbmFCb3hNc2cSCwoDcG9zGAEgASgFEg0KBWJveGlkGAIgASgF",
-            "EhIKCmV4cGlyZVRpbWUYAyABKAUqXAoIQ1VSUkVOQ1kSEgoOQ1VSUkVOQ1lf",
-            "QkVHSU4QABIJCgVNT05FWRABEggKBEdPTEQQAhIHCgNSTUIQAxIHCgNHRU0Q",
-            "BBIHCgNCT1gQBRIMCghBUkVOQUVYUBAGKiYKCUNoYW5uZWxJRBIRCg1DSEFO",
-            "TkVMX0JFR0lOEAASBgoCR00QASqNBQoJRXJyb3JDb2RlEgsKB1N1Y2Nlc3MQ",
-            "ABIVChFDaGFubmVsSWRfTm9FeGlzdBABEhQKEFVzZXJOYW1lX0ludmFsaWQQ",
-            "AhIYChRVc2VyUGFzc1dvcmRfSW52YWxpZBADEhAKDFVua25vd19FcnJvchAE",
-            "EhEKDUlucHV0X0ludmFsaWQQBRILCgdUaW1lb3V0EAYSFgoSU2Vzc2lvbktl",
-            "eV9JbnZhbGlkEAcSEAoMTG9naW5fTm9Vc2VyEAgSEwoPTm90RW5vdWdoX01v",
-            "bmV5EAkSEgoOTm90RW5vdWdoX0dvbGQQChIRCg1Ob3RFbm91Z2hfR2VtEAsS",
-            "EwoPTm90Rm91bmRfRnJpZW5kEAwSEgoOQWxyZWFkeV9GcmllbmQQDRISCg5J",
-            "bkJsb2NrX0ZyaWVuZBAOEg4KCk1heF9GcmllbmQQDxIQCgxNYXhfTmlja05h",
-            "bWUQEBIUChBJbnZhbGlkX05pY2tOYW1lEBESEgoOTWF4X1N0b3JlTGltaXQQ",
-            "EhIWChJOb3RFbm91Z2hfU3RvcmVCdXkQExIUChBOb3RPcGVuX1Bhc3NQb3J0",
-            "EBQSFAoQQWxyZWFkeV9QYXNzUG9ydBAVEhwKGE5lZWRWaXBfUGFzc1BvcnRU",
-            "YWtlSXRlbRAWEh4KGk5lZWRMZXZlbF9QYXNzUG9ydFRha2VJdGVtEBcSHAoY",
-            "QWxyZWFkeV9QYXNzUG9ydFRha2VJdGVtEBgSHAoYSW52YWxpZF9QYXNzUG9y",
-            "dEJ1eUxldmVsEBkSFgoSSGFzVW5sb2NrX0FyZW5hQm94EBoSGwoXT3RoZXJV",
-            "bmxvY2tpbmdfQXJlbmFCb3gQGxIYChROb3RUaW1lVGFrZV9BcmVuYUJveBAc",
-            "YgZwcm90bzM="));
+            "KAUSCwoDZXhwGAYgASgFEg0KBW1vbmV5GAcgASgFEgwKBGdvbGQYCCABKAUS",
+            "HgoEZ2VtcxgJIAMoCzIQLnByb3RvYnVmLkdlbU1zZxIQCghnZW1kZWNrMRgK",
+            "IAMoBRIQCghnZW1kZWNrMhgLIAMoBRIQCghnZW1kZWNrMxgMIAMoBRIOCgZk",
+            "ZWNraWQYDSABKAUSFAoMYWNjZXB0ZnJpZW5kGA4gASgIEhQKDG5hbWVkY2hh",
+            "bmdlZBgPIAEoCBIPCgdhcmVhZXhwGBAgASgFEigKCWFyZWFib3hlcxgRIAMo",
+            "CzIVLnByb3RvYnVmLkFyZW5hQm94TXNnEg4KBmRvbmF0ZRgSIAEoBSKhAQoJ",
+            "RnJpZW5kTXNnEhAKCHVzZXJuYW1lGAEgASgJEhAKCG5pY2tuYW1lGAIgASgJ",
+            "Eg8KB2hlYWRpbWcYAyABKAUSDQoFbGV2ZWwYBSABKAUSDAoEcmFuaxgGIAEo",
+            "BRIPCgdhcmVhZXhwGAcgASgFEg4KBm9ubGluZRgIIAEoCBIhCgdnZW1kZWNr",
+            "GAkgAygLMhAucHJvdG9idWYuR2VtTXNnIlYKDFN0b3JlQXJlYU1zZxIKCgJp",
+            "ZBgBIAEoBRITCgtyZWZyZXNoVGltZRgCIAEoBRIlCgVpdGVtcxgDIAMoCzIW",
+            "LnByb3RvYnVmLlN0b3JlSXRlbU1zZyIsCgxTdG9yZUl0ZW1Nc2cSCgoCaWQY",
+            "ASABKAUSEAoIYnV5Q291bnQYAiABKAUiOAoNUmV3YXJkSXRlbU1zZxIMCgR0",
+            "eXBlGAEgASgFEgoKAmlkGAIgASgFEg0KBWNvdW50GAMgASgFIj0KC0FyZW5h",
+            "Qm94TXNnEgsKA3BvcxgBIAEoBRINCgVib3hpZBgCIAEoBRISCgpleHBpcmVU",
+            "aW1lGAMgASgFItQBCg9GYW1pbHlNZW1iZXJNc2cSEAoIdXNlcm5hbWUYASAB",
+            "KAkSEAoIbmlja25hbWUYAiABKAkSDwoHaGVhZGltZxgDIAEoBRIQCghwb3Np",
+            "dGlvbhgEIAEoBRIOCgZvbmxpbmUYBSABKAgSDwoHYXJlYWV4cBgGIAEoBRIN",
+            "CgVsZXZlbBgIIAEoBRISCgp3ZWVrRG9uYXRlGAkgASgFEhMKC3RvdGFsRG9u",
+            "YXRlGAogASgFEiEKB2dlbWRlY2sYCyADKAsyEC5wcm90b2J1Zi5HZW1Nc2ci",
+            "PAoTRmFtaWx5RG9uYXRlSXRlbU1zZxIQCgh1c2VybmFtZRgBIAEoCRITCgtk",
+            "b25hdGVDb3VudBgCIAEoBSKSAwoNRmFtaWx5Q2hhdE1zZxIRCgltZXNzYWdl",
+            "SWQYASABKAUSEAoIdXNlcm5hbWUYAiABKAkSEAoIbmlja25hbWUYAyABKAkS",
+            "DwoHaGVhZGltZxgEIAEoBRISCgpjcmVhdGVUaW1lGAUgASgFEg8KB2NvbnRl",
+            "bnQYBiABKAkSJAoIY2hhdFR5cGUYByABKA4yEi5wcm90b2J1Zi5DaGF0VHlw",
+            "ZRINCgVnZW1JZBgIIAEoBRIxCgpkb25hdGVsaXN0GAkgAygLMh0ucHJvdG9i",
+            "dWYuRmFtaWx5RG9uYXRlSXRlbU1zZxIUCgxyZWNlaXZlQ291bnQYCiABKAUS",
+            "EgoKVG90YWxDb3VudBgLIAEoBRIQCghub3RpY2VJZBgMIAEoBRIOCgZwYXJh",
+            "bXMYDSADKAkSEwoLbmV3VXNlcm5hbWUYDiABKAkSEwoLbmV3Tmlja25hbWUY",
+            "DyABKAkSEgoKbmV3SGVhZGltZxgQIAEoBRIQCghuZXdMZXZlbBgRIAEoBRIQ",
+            "CghuZXdTY29yZRgSIAEoBSLSAQoJRmFtaWx5TXNnEgsKA3VpZBgBIAEoCRIM",
+            "CgRuYW1lGAIgASgJEgwKBGRlc2MYAyABKAkSDQoFaWNvbnMYBCADKAUSDQoF",
+            "c2NvcmUYBSABKAUSEwoLc2NvcmVzaG9wSWQYBiABKAUSGAoQc2NvcmVzaG9w",
+            "RXhwaXJlZBgHIAEoBRIQCghmcmVlSm9pbhgIIAEoBRIRCgluZWVkU2NvcmUY",
+            "CSABKAUSKgoHbWVtYmVycxgKIAMoCzIZLnByb3RvYnVmLkZhbWlseU1lbWJl",
+            "ck1zZyKaAQoTRmFtaWx5U2VhcmNoSXRlbU1zZxILCgN1aWQYASABKAkSDAoE",
+            "bmFtZRgCIAEoCRINCgVpY29ucxgDIAMoBRITCgttZW1iZXJDb3VudBgEIAEo",
+            "BRIQCghpc0FjdGl2ZRgFIAEoCBISCgppc0ZyaWVuZEluGAYgASgIEg0KBWlz",
+            "TmV3GAcgASgIEg8KB2lzQXBwbHkYCCABKAgqaAoIQ1VSUkVOQ1kSEgoOQ1VS",
+            "UkVOQ1lfQkVHSU4QABIJCgVNT05FWRABEggKBEdPTEQQAhIHCgNSTUIQAxIH",
+            "CgNHRU0QBBIHCgNCT1gQBRIMCghBUkVOQUVYUBAGEgoKBkRPTkFURRAHKiYK",
+            "CUNoYW5uZWxJRBIRCg1DSEFOTkVMX0JFR0lOEAASBgoCR00QASrNBQoJRXJy",
+            "b3JDb2RlEgsKB1N1Y2Nlc3MQABIVChFDaGFubmVsSWRfTm9FeGlzdBABEhQK",
+            "EFVzZXJOYW1lX0ludmFsaWQQAhIYChRVc2VyUGFzc1dvcmRfSW52YWxpZBAD",
+            "EhAKDFVua25vd19FcnJvchAEEhEKDUlucHV0X0ludmFsaWQQBRILCgdUaW1l",
+            "b3V0EAYSFgoSU2Vzc2lvbktleV9JbnZhbGlkEAcSEAoMTG9naW5fTm9Vc2Vy",
+            "EAgSEwoPTm90RW5vdWdoX01vbmV5EAkSEgoOTm90RW5vdWdoX0dvbGQQChIR",
+            "Cg1Ob3RFbm91Z2hfR2VtEAsSEwoPTm90Rm91bmRfRnJpZW5kEAwSEgoOQWxy",
+            "ZWFkeV9GcmllbmQQDRISCg5JbkJsb2NrX0ZyaWVuZBAOEg4KCk1heF9Gcmll",
+            "bmQQDxIQCgxNYXhfTmlja05hbWUQEBIUChBJbnZhbGlkX05pY2tOYW1lEBES",
+            "EgoOTWF4X1N0b3JlTGltaXQQEhIWChJOb3RFbm91Z2hfU3RvcmVCdXkQExIU",
+            "ChBOb3RPcGVuX1Bhc3NQb3J0EBQSFAoQQWxyZWFkeV9QYXNzUG9ydBAVEhwK",
+            "GE5lZWRWaXBfUGFzc1BvcnRUYWtlSXRlbRAWEh4KGk5lZWRMZXZlbF9QYXNz",
+            "UG9ydFRha2VJdGVtEBcSHAoYQWxyZWFkeV9QYXNzUG9ydFRha2VJdGVtEBgS",
+            "HAoYSW52YWxpZF9QYXNzUG9ydEJ1eUxldmVsEBkSFgoSSGFzVW5sb2NrX0Fy",
+            "ZW5hQm94EBoSGwoXT3RoZXJVbmxvY2tpbmdfQXJlbmFCb3gQGxIYChROb3RU",
+            "aW1lVGFrZV9BcmVuYUJveBAcEhMKD05vdEVub3VnaF9MZXZlbBAdEhQKEEFs",
+            "cmVhZHlJbl9GYW1pbHkQHhITCg9Ob3RFeGlzdF9GYW1pbHkQHypxCghDaGF0",
+            "VHlwZRISCg5DaGF0VHlwZV9CZWdpbhAAEhEKDUNoYXRUeXBlX1RleHQQARIW",
+            "ChJDaGF0VHlwZV9Eb25hdGVHZW0QAhITCg9DaGF0VHlwZV9TeXN0ZW0QAxIR",
+            "Cg1DaGF0VHlwZV9Kb2luEARiBnByb3RvMw=="));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
-          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Protobuf.CURRENCY), typeof(global::Protobuf.ChannelID), typeof(global::Protobuf.ErrorCode), }, new pbr::GeneratedClrTypeInfo[] {
+          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Protobuf.CURRENCY), typeof(global::Protobuf.ChannelID), typeof(global::Protobuf.ErrorCode), typeof(global::Protobuf.ChatType), }, new pbr::GeneratedClrTypeInfo[] {
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.GemMsg), global::Protobuf.GemMsg.Parser, new[]{ "GemId", "Level", "Count" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.UserDataMsg), global::Protobuf.UserDataMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Singature", "Level", "Rank", "Score", "Exp", "Money", "Gold", "Gems", "Gemdeck1", "Gemdeck2", "Gemdeck3", "Deckid", "Acceptfriend", "Namedchanged", "Areaexp", "Areaboxes" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FriendMsg), global::Protobuf.FriendMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Level", "Rank", "Score", "Online", "Gemdeck" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.UserDataMsg), global::Protobuf.UserDataMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Singature", "Level", "Exp", "Money", "Gold", "Gems", "Gemdeck1", "Gemdeck2", "Gemdeck3", "Deckid", "Acceptfriend", "Namedchanged", "Areaexp", "Areaboxes", "Donate" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FriendMsg), global::Protobuf.FriendMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Level", "Rank", "Areaexp", "Online", "Gemdeck" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.StoreAreaMsg), global::Protobuf.StoreAreaMsg.Parser, new[]{ "Id", "RefreshTime", "Items" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.StoreItemMsg), global::Protobuf.StoreItemMsg.Parser, new[]{ "Id", "BuyCount" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.RewardItemMsg), global::Protobuf.RewardItemMsg.Parser, new[]{ "Type", "Id", "Count" }, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.ArenaBoxMsg), global::Protobuf.ArenaBoxMsg.Parser, new[]{ "Pos", "Boxid", "ExpireTime" }, null, null, null)
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.ArenaBoxMsg), global::Protobuf.ArenaBoxMsg.Parser, new[]{ "Pos", "Boxid", "ExpireTime" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyMemberMsg), global::Protobuf.FamilyMemberMsg.Parser, new[]{ "Username", "Nickname", "Headimg", "Position", "Online", "Areaexp", "Level", "WeekDonate", "TotalDonate", "Gemdeck" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyDonateItemMsg), global::Protobuf.FamilyDonateItemMsg.Parser, new[]{ "Username", "DonateCount" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyChatMsg), global::Protobuf.FamilyChatMsg.Parser, new[]{ "MessageId", "Username", "Nickname", "Headimg", "CreateTime", "Content", "ChatType", "GemId", "Donatelist", "ReceiveCount", "TotalCount", "NoticeId", "Params", "NewUsername", "NewNickname", "NewHeadimg", "NewLevel", "NewScore" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilyMsg), global::Protobuf.FamilyMsg.Parser, new[]{ "Uid", "Name", "Desc", "Icons", "Score", "ScoreshopId", "ScoreshopExpired", "FreeJoin", "NeedScore", "Members" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::Protobuf.FamilySearchItemMsg), global::Protobuf.FamilySearchItemMsg.Parser, new[]{ "Uid", "Name", "Icons", "MemberCount", "IsActive", "IsFriendIn", "IsNew", "IsApply" }, null, null, null)
           }));
     }
     #endregion
@@ -106,6 +138,10 @@
     /// !竞技场经验
     /// </summary>
     [pbr::OriginalName("ARENAEXP")] Arenaexp = 6,
+    /// <summary>
+    /// 工会捐献积分
+    /// </summary>
+    [pbr::OriginalName("DONATE")] Donate = 7,
   }
 
   /// <summary>
@@ -239,6 +275,38 @@
     /// ! 开宝箱失败,时间没到
     /// </summary>
     [pbr::OriginalName("NotTimeTake_ArenaBox")] NotTimeTakeArenaBox = 28,
+    /// <summary>
+    /// 等级不足
+    /// </summary>
+    [pbr::OriginalName("NotEnough_Level")] NotEnoughLevel = 29,
+    /// <summary>
+    /// 已经在工会中
+    /// </summary>
+    [pbr::OriginalName("AlreadyIn_Family")] AlreadyInFamily = 30,
+    /// <summary>
+    /// !工会不存在
+    /// </summary>
+    [pbr::OriginalName("NotExist_Family")] NotExistFamily = 31,
+  }
+
+  public enum ChatType {
+    [pbr::OriginalName("ChatType_Begin")] Begin = 0,
+    /// <summary>
+    ///  文本聊天
+    /// </summary>
+    [pbr::OriginalName("ChatType_Text")] Text = 1,
+    /// <summary>
+    ///  捐赠卡牌
+    /// </summary>
+    [pbr::OriginalName("ChatType_DonateGem")] DonateGem = 2,
+    /// <summary>
+    ///  系统消息,需要查询文字字符串配置表
+    /// </summary>
+    [pbr::OriginalName("ChatType_System")] System = 3,
+    /// <summary>
+    ///  新成员加入申请
+    /// </summary>
+    [pbr::OriginalName("ChatType_Join")] Join = 4,
   }
 
   #endregion
@@ -461,8 +529,6 @@
       headimg_ = other.headimg_;
       singature_ = other.singature_;
       level_ = other.level_;
-      rank_ = other.rank_;
-      score_ = other.score_;
       exp_ = other.exp_;
       money_ = other.money_;
       gold_ = other.gold_;
@@ -475,6 +541,7 @@
       namedchanged_ = other.namedchanged_;
       areaexp_ = other.areaexp_;
       areaboxes_ = other.areaboxes_.Clone();
+      donate_ = other.donate_;
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -535,6 +602,9 @@
     /// <summary>Field number for the "level" field.</summary>
     public const int LevelFieldNumber = 5;
     private int level_;
+    /// <summary>
+    /// 等级
+    /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Level {
       get { return level_; }
@@ -543,38 +613,11 @@
       }
     }
 
-    /// <summary>Field number for the "rank" field.</summary>
-    public const int RankFieldNumber = 6;
-    private int rank_;
-    /// <summary>
-    /// 段位
-    /// </summary>
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
-    public int Rank {
-      get { return rank_; }
-      set {
-        rank_ = value;
-      }
-    }
-
-    /// <summary>Field number for the "score" field.</summary>
-    public const int ScoreFieldNumber = 7;
-    private int score_;
-    /// <summary>
-    /// 分数
-    /// </summary>
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
-    public int Score {
-      get { return score_; }
-      set {
-        score_ = value;
-      }
-    }
-
     /// <summary>Field number for the "exp" field.</summary>
-    public const int ExpFieldNumber = 8;
+    public const int ExpFieldNumber = 6;
     private int exp_;
     /// <summary>
+    /// int32  score =7;
     /// !经验
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -586,7 +629,7 @@
     }
 
     /// <summary>Field number for the "money" field.</summary>
-    public const int MoneyFieldNumber = 9;
+    public const int MoneyFieldNumber = 7;
     private int money_;
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Money {
@@ -597,7 +640,7 @@
     }
 
     /// <summary>Field number for the "gold" field.</summary>
-    public const int GoldFieldNumber = 10;
+    public const int GoldFieldNumber = 8;
     private int gold_;
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Gold {
@@ -608,9 +651,9 @@
     }
 
     /// <summary>Field number for the "gems" field.</summary>
-    public const int GemsFieldNumber = 11;
+    public const int GemsFieldNumber = 9;
     private static readonly pb::FieldCodec<global::Protobuf.GemMsg> _repeated_gems_codec
-        = pb::FieldCodec.ForMessage(90, global::Protobuf.GemMsg.Parser);
+        = pb::FieldCodec.ForMessage(74, global::Protobuf.GemMsg.Parser);
     private readonly pbc::RepeatedField<global::Protobuf.GemMsg> gems_ = new pbc::RepeatedField<global::Protobuf.GemMsg>();
     /// <summary>
     /// *已有宝石列表
@@ -621,9 +664,9 @@
     }
 
     /// <summary>Field number for the "gemdeck1" field.</summary>
-    public const int Gemdeck1FieldNumber = 12;
+    public const int Gemdeck1FieldNumber = 10;
     private static readonly pb::FieldCodec<int> _repeated_gemdeck1_codec
-        = pb::FieldCodec.ForInt32(98);
+        = pb::FieldCodec.ForInt32(82);
     private readonly pbc::RepeatedField<int> gemdeck1_ = new pbc::RepeatedField<int>();
     /// <summary>
     /// 编队
@@ -634,9 +677,9 @@
     }
 
     /// <summary>Field number for the "gemdeck2" field.</summary>
-    public const int Gemdeck2FieldNumber = 13;
+    public const int Gemdeck2FieldNumber = 11;
     private static readonly pb::FieldCodec<int> _repeated_gemdeck2_codec
-        = pb::FieldCodec.ForInt32(106);
+        = pb::FieldCodec.ForInt32(90);
     private readonly pbc::RepeatedField<int> gemdeck2_ = new pbc::RepeatedField<int>();
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<int> Gemdeck2 {
@@ -644,9 +687,9 @@
     }
 
     /// <summary>Field number for the "gemdeck3" field.</summary>
-    public const int Gemdeck3FieldNumber = 14;
+    public const int Gemdeck3FieldNumber = 12;
     private static readonly pb::FieldCodec<int> _repeated_gemdeck3_codec
-        = pb::FieldCodec.ForInt32(114);
+        = pb::FieldCodec.ForInt32(98);
     private readonly pbc::RepeatedField<int> gemdeck3_ = new pbc::RepeatedField<int>();
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<int> Gemdeck3 {
@@ -654,7 +697,7 @@
     }
 
     /// <summary>Field number for the "deckid" field.</summary>
-    public const int DeckidFieldNumber = 15;
+    public const int DeckidFieldNumber = 13;
     private int deckid_;
     /// <summary>
     /// 默认编队索引0,1,2
@@ -668,7 +711,7 @@
     }
 
     /// <summary>Field number for the "acceptfriend" field.</summary>
-    public const int AcceptfriendFieldNumber = 16;
+    public const int AcceptfriendFieldNumber = 14;
     private bool acceptfriend_;
     /// <summary>
     ///  是否接受好友申请
@@ -682,7 +725,7 @@
     }
 
     /// <summary>Field number for the "namedchanged" field.</summary>
-    public const int NamedchangedFieldNumber = 17;
+    public const int NamedchangedFieldNumber = 15;
     private bool namedchanged_;
     /// <summary>
     ///  true 表示改过名字,false没有改过
@@ -696,7 +739,7 @@
     }
 
     /// <summary>Field number for the "areaexp" field.</summary>
-    public const int AreaexpFieldNumber = 18;
+    public const int AreaexpFieldNumber = 16;
     private int areaexp_;
     /// <summary>
     /// !竞技场经验
@@ -710,9 +753,9 @@
     }
 
     /// <summary>Field number for the "areaboxes" field.</summary>
-    public const int AreaboxesFieldNumber = 19;
+    public const int AreaboxesFieldNumber = 17;
     private static readonly pb::FieldCodec<global::Protobuf.ArenaBoxMsg> _repeated_areaboxes_codec
-        = pb::FieldCodec.ForMessage(154, global::Protobuf.ArenaBoxMsg.Parser);
+        = pb::FieldCodec.ForMessage(138, global::Protobuf.ArenaBoxMsg.Parser);
     private readonly pbc::RepeatedField<global::Protobuf.ArenaBoxMsg> areaboxes_ = new pbc::RepeatedField<global::Protobuf.ArenaBoxMsg>();
     /// <summary>
     /// !竞技宝箱列表
@@ -720,6 +763,20 @@
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public pbc::RepeatedField<global::Protobuf.ArenaBoxMsg> Areaboxes {
       get { return areaboxes_; }
+    }
+
+    /// <summary>Field number for the "donate" field.</summary>
+    public const int DonateFieldNumber = 18;
+    private int donate_;
+    /// <summary>
+    /// 工会捐赠积分
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Donate {
+      get { return donate_; }
+      set {
+        donate_ = value;
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -740,8 +797,6 @@
       if (Headimg != other.Headimg) return false;
       if (Singature != other.Singature) return false;
       if (Level != other.Level) return false;
-      if (Rank != other.Rank) return false;
-      if (Score != other.Score) return false;
       if (Exp != other.Exp) return false;
       if (Money != other.Money) return false;
       if (Gold != other.Gold) return false;
@@ -754,6 +809,7 @@
       if (Namedchanged != other.Namedchanged) return false;
       if (Areaexp != other.Areaexp) return false;
       if(!areaboxes_.Equals(other.areaboxes_)) return false;
+      if (Donate != other.Donate) return false;
       return true;
     }
 
@@ -765,8 +821,6 @@
       if (Headimg != 0) hash ^= Headimg.GetHashCode();
       if (Singature.Length != 0) hash ^= Singature.GetHashCode();
       if (Level != 0) hash ^= Level.GetHashCode();
-      if (Rank != 0) hash ^= Rank.GetHashCode();
-      if (Score != 0) hash ^= Score.GetHashCode();
       if (Exp != 0) hash ^= Exp.GetHashCode();
       if (Money != 0) hash ^= Money.GetHashCode();
       if (Gold != 0) hash ^= Gold.GetHashCode();
@@ -779,6 +833,7 @@
       if (Namedchanged != false) hash ^= Namedchanged.GetHashCode();
       if (Areaexp != 0) hash ^= Areaexp.GetHashCode();
       hash ^= areaboxes_.GetHashCode();
+      if (Donate != 0) hash ^= Donate.GetHashCode();
       return hash;
     }
 
@@ -809,24 +864,16 @@
         output.WriteRawTag(40);
         output.WriteInt32(Level);
       }
-      if (Rank != 0) {
-        output.WriteRawTag(48);
-        output.WriteInt32(Rank);
-      }
-      if (Score != 0) {
-        output.WriteRawTag(56);
-        output.WriteInt32(Score);
-      }
       if (Exp != 0) {
-        output.WriteRawTag(64);
+        output.WriteRawTag(48);
         output.WriteInt32(Exp);
       }
       if (Money != 0) {
-        output.WriteRawTag(72);
+        output.WriteRawTag(56);
         output.WriteInt32(Money);
       }
       if (Gold != 0) {
-        output.WriteRawTag(80);
+        output.WriteRawTag(64);
         output.WriteInt32(Gold);
       }
       gems_.WriteTo(output, _repeated_gems_codec);
@@ -834,22 +881,26 @@
       gemdeck2_.WriteTo(output, _repeated_gemdeck2_codec);
       gemdeck3_.WriteTo(output, _repeated_gemdeck3_codec);
       if (Deckid != 0) {
-        output.WriteRawTag(120);
+        output.WriteRawTag(104);
         output.WriteInt32(Deckid);
       }
       if (Acceptfriend != false) {
-        output.WriteRawTag(128, 1);
+        output.WriteRawTag(112);
         output.WriteBool(Acceptfriend);
       }
       if (Namedchanged != false) {
-        output.WriteRawTag(136, 1);
+        output.WriteRawTag(120);
         output.WriteBool(Namedchanged);
       }
       if (Areaexp != 0) {
-        output.WriteRawTag(144, 1);
+        output.WriteRawTag(128, 1);
         output.WriteInt32(Areaexp);
       }
       areaboxes_.WriteTo(output, _repeated_areaboxes_codec);
+      if (Donate != 0) {
+        output.WriteRawTag(144, 1);
+        output.WriteInt32(Donate);
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -870,12 +921,6 @@
       if (Level != 0) {
         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Level);
       }
-      if (Rank != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Rank);
-      }
-      if (Score != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Score);
-      }
       if (Exp != 0) {
         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Exp);
       }
@@ -893,15 +938,18 @@
         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Deckid);
       }
       if (Acceptfriend != false) {
-        size += 2 + 1;
+        size += 1 + 1;
       }
       if (Namedchanged != false) {
-        size += 2 + 1;
+        size += 1 + 1;
       }
       if (Areaexp != 0) {
         size += 2 + pb::CodedOutputStream.ComputeInt32Size(Areaexp);
       }
       size += areaboxes_.CalculateSize(_repeated_areaboxes_codec);
+      if (Donate != 0) {
+        size += 2 + pb::CodedOutputStream.ComputeInt32Size(Donate);
+      }
       return size;
     }
 
@@ -924,12 +972,6 @@
       }
       if (other.Level != 0) {
         Level = other.Level;
-      }
-      if (other.Rank != 0) {
-        Rank = other.Rank;
-      }
-      if (other.Score != 0) {
-        Score = other.Score;
       }
       if (other.Exp != 0) {
         Exp = other.Exp;
@@ -957,6 +999,9 @@
         Areaexp = other.Areaexp;
       }
       areaboxes_.Add(other.areaboxes_);
+      if (other.Donate != 0) {
+        Donate = other.Donate;
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -988,62 +1033,58 @@
             break;
           }
           case 48: {
-            Rank = input.ReadInt32();
-            break;
-          }
-          case 56: {
-            Score = input.ReadInt32();
-            break;
-          }
-          case 64: {
             Exp = input.ReadInt32();
             break;
           }
-          case 72: {
+          case 56: {
             Money = input.ReadInt32();
             break;
           }
-          case 80: {
+          case 64: {
             Gold = input.ReadInt32();
             break;
           }
-          case 90: {
+          case 74: {
             gems_.AddEntriesFrom(input, _repeated_gems_codec);
+            break;
+          }
+          case 82:
+          case 80: {
+            gemdeck1_.AddEntriesFrom(input, _repeated_gemdeck1_codec);
+            break;
+          }
+          case 90:
+          case 88: {
+            gemdeck2_.AddEntriesFrom(input, _repeated_gemdeck2_codec);
             break;
           }
           case 98:
           case 96: {
-            gemdeck1_.AddEntriesFrom(input, _repeated_gemdeck1_codec);
-            break;
-          }
-          case 106:
-          case 104: {
-            gemdeck2_.AddEntriesFrom(input, _repeated_gemdeck2_codec);
-            break;
-          }
-          case 114:
-          case 112: {
             gemdeck3_.AddEntriesFrom(input, _repeated_gemdeck3_codec);
             break;
           }
-          case 120: {
+          case 104: {
             Deckid = input.ReadInt32();
             break;
           }
-          case 128: {
+          case 112: {
             Acceptfriend = input.ReadBool();
             break;
           }
-          case 136: {
+          case 120: {
             Namedchanged = input.ReadBool();
             break;
           }
-          case 144: {
+          case 128: {
             Areaexp = input.ReadInt32();
             break;
           }
-          case 154: {
+          case 138: {
             areaboxes_.AddEntriesFrom(input, _repeated_areaboxes_codec);
+            break;
+          }
+          case 144: {
+            Donate = input.ReadInt32();
             break;
           }
         }
@@ -1084,7 +1125,7 @@
       headimg_ = other.headimg_;
       level_ = other.level_;
       rank_ = other.rank_;
-      score_ = other.score_;
+      areaexp_ = other.areaexp_;
       online_ = other.online_;
       gemdeck_ = other.gemdeck_.Clone();
     }
@@ -1155,17 +1196,17 @@
       }
     }
 
-    /// <summary>Field number for the "score" field.</summary>
-    public const int ScoreFieldNumber = 7;
-    private int score_;
+    /// <summary>Field number for the "areaexp" field.</summary>
+    public const int AreaexpFieldNumber = 7;
+    private int areaexp_;
     /// <summary>
     /// 分数
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
-    public int Score {
-      get { return score_; }
+    public int Areaexp {
+      get { return areaexp_; }
       set {
-        score_ = value;
+        areaexp_ = value;
       }
     }
 
@@ -1211,7 +1252,7 @@
       if (Headimg != other.Headimg) return false;
       if (Level != other.Level) return false;
       if (Rank != other.Rank) return false;
-      if (Score != other.Score) return false;
+      if (Areaexp != other.Areaexp) return false;
       if (Online != other.Online) return false;
       if(!gemdeck_.Equals(other.gemdeck_)) return false;
       return true;
@@ -1225,7 +1266,7 @@
       if (Headimg != 0) hash ^= Headimg.GetHashCode();
       if (Level != 0) hash ^= Level.GetHashCode();
       if (Rank != 0) hash ^= Rank.GetHashCode();
-      if (Score != 0) hash ^= Score.GetHashCode();
+      if (Areaexp != 0) hash ^= Areaexp.GetHashCode();
       if (Online != false) hash ^= Online.GetHashCode();
       hash ^= gemdeck_.GetHashCode();
       return hash;
@@ -1258,9 +1299,9 @@
         output.WriteRawTag(48);
         output.WriteInt32(Rank);
       }
-      if (Score != 0) {
+      if (Areaexp != 0) {
         output.WriteRawTag(56);
-        output.WriteInt32(Score);
+        output.WriteInt32(Areaexp);
       }
       if (Online != false) {
         output.WriteRawTag(64);
@@ -1287,8 +1328,8 @@
       if (Rank != 0) {
         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Rank);
       }
-      if (Score != 0) {
-        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Score);
+      if (Areaexp != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Areaexp);
       }
       if (Online != false) {
         size += 1 + 1;
@@ -1317,8 +1358,8 @@
       if (other.Rank != 0) {
         Rank = other.Rank;
       }
-      if (other.Score != 0) {
-        Score = other.Score;
+      if (other.Areaexp != 0) {
+        Areaexp = other.Areaexp;
       }
       if (other.Online != false) {
         Online = other.Online;
@@ -1355,7 +1396,7 @@
             break;
           }
           case 56: {
-            Score = input.ReadInt32();
+            Areaexp = input.ReadInt32();
             break;
           }
           case 64: {
@@ -1586,7 +1627,7 @@
     public const int IdFieldNumber = 1;
     private int id_;
     /// <summary>
-    ///  store表ID
+    ///  store表ID 或其他具体商城的表
     /// </summary>
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public int Id {
@@ -2070,6 +2111,1870 @@
 
   }
 
+  /// <summary>
+  /// !工会成员信息
+  /// </summary>
+  public sealed partial class FamilyMemberMsg : pb::IMessage<FamilyMemberMsg> {
+    private static readonly pb::MessageParser<FamilyMemberMsg> _parser = new pb::MessageParser<FamilyMemberMsg>(() => new FamilyMemberMsg());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyMemberMsg> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.CommonReflection.Descriptor.MessageTypes[7]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyMemberMsg() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyMemberMsg(FamilyMemberMsg other) : this() {
+      username_ = other.username_;
+      nickname_ = other.nickname_;
+      headimg_ = other.headimg_;
+      position_ = other.position_;
+      online_ = other.online_;
+      areaexp_ = other.areaexp_;
+      level_ = other.level_;
+      weekDonate_ = other.weekDonate_;
+      totalDonate_ = other.totalDonate_;
+      gemdeck_ = other.gemdeck_.Clone();
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyMemberMsg Clone() {
+      return new FamilyMemberMsg(this);
+    }
+
+    /// <summary>Field number for the "username" field.</summary>
+    public const int UsernameFieldNumber = 1;
+    private string username_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Username {
+      get { return username_; }
+      set {
+        username_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "nickname" field.</summary>
+    public const int NicknameFieldNumber = 2;
+    private string nickname_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Nickname {
+      get { return nickname_; }
+      set {
+        nickname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "headimg" field.</summary>
+    public const int HeadimgFieldNumber = 3;
+    private int headimg_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Headimg {
+      get { return headimg_; }
+      set {
+        headimg_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "position" field.</summary>
+    public const int PositionFieldNumber = 4;
+    private int position_;
+    /// <summary>
+    ///  工会角色 0-会员,1-会长
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Position {
+      get { return position_; }
+      set {
+        position_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "online" field.</summary>
+    public const int OnlineFieldNumber = 5;
+    private bool online_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Online {
+      get { return online_; }
+      set {
+        online_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "areaexp" field.</summary>
+    public const int AreaexpFieldNumber = 6;
+    private int areaexp_;
+    /// <summary>
+    /// 分数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Areaexp {
+      get { return areaexp_; }
+      set {
+        areaexp_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "level" field.</summary>
+    public const int LevelFieldNumber = 8;
+    private int level_;
+    /// <summary>
+    /// 等级
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Level {
+      get { return level_; }
+      set {
+        level_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "weekDonate" field.</summary>
+    public const int WeekDonateFieldNumber = 9;
+    private int weekDonate_;
+    /// <summary>
+    ///  本周和总捐献数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int WeekDonate {
+      get { return weekDonate_; }
+      set {
+        weekDonate_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "totalDonate" field.</summary>
+    public const int TotalDonateFieldNumber = 10;
+    private int totalDonate_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int TotalDonate {
+      get { return totalDonate_; }
+      set {
+        totalDonate_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "gemdeck" field.</summary>
+    public const int GemdeckFieldNumber = 11;
+    private static readonly pb::FieldCodec<global::Protobuf.GemMsg> _repeated_gemdeck_codec
+        = pb::FieldCodec.ForMessage(90, global::Protobuf.GemMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.GemMsg> gemdeck_ = new pbc::RepeatedField<global::Protobuf.GemMsg>();
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.GemMsg> Gemdeck {
+      get { return gemdeck_; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyMemberMsg);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyMemberMsg other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Username != other.Username) return false;
+      if (Nickname != other.Nickname) return false;
+      if (Headimg != other.Headimg) return false;
+      if (Position != other.Position) return false;
+      if (Online != other.Online) return false;
+      if (Areaexp != other.Areaexp) return false;
+      if (Level != other.Level) return false;
+      if (WeekDonate != other.WeekDonate) return false;
+      if (TotalDonate != other.TotalDonate) return false;
+      if(!gemdeck_.Equals(other.gemdeck_)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Username.Length != 0) hash ^= Username.GetHashCode();
+      if (Nickname.Length != 0) hash ^= Nickname.GetHashCode();
+      if (Headimg != 0) hash ^= Headimg.GetHashCode();
+      if (Position != 0) hash ^= Position.GetHashCode();
+      if (Online != false) hash ^= Online.GetHashCode();
+      if (Areaexp != 0) hash ^= Areaexp.GetHashCode();
+      if (Level != 0) hash ^= Level.GetHashCode();
+      if (WeekDonate != 0) hash ^= WeekDonate.GetHashCode();
+      if (TotalDonate != 0) hash ^= TotalDonate.GetHashCode();
+      hash ^= gemdeck_.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Username.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Username);
+      }
+      if (Nickname.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Nickname);
+      }
+      if (Headimg != 0) {
+        output.WriteRawTag(24);
+        output.WriteInt32(Headimg);
+      }
+      if (Position != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(Position);
+      }
+      if (Online != false) {
+        output.WriteRawTag(40);
+        output.WriteBool(Online);
+      }
+      if (Areaexp != 0) {
+        output.WriteRawTag(48);
+        output.WriteInt32(Areaexp);
+      }
+      if (Level != 0) {
+        output.WriteRawTag(64);
+        output.WriteInt32(Level);
+      }
+      if (WeekDonate != 0) {
+        output.WriteRawTag(72);
+        output.WriteInt32(WeekDonate);
+      }
+      if (TotalDonate != 0) {
+        output.WriteRawTag(80);
+        output.WriteInt32(TotalDonate);
+      }
+      gemdeck_.WriteTo(output, _repeated_gemdeck_codec);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Username.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Username);
+      }
+      if (Nickname.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Nickname);
+      }
+      if (Headimg != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Headimg);
+      }
+      if (Position != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Position);
+      }
+      if (Online != false) {
+        size += 1 + 1;
+      }
+      if (Areaexp != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Areaexp);
+      }
+      if (Level != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Level);
+      }
+      if (WeekDonate != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(WeekDonate);
+      }
+      if (TotalDonate != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(TotalDonate);
+      }
+      size += gemdeck_.CalculateSize(_repeated_gemdeck_codec);
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyMemberMsg other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Username.Length != 0) {
+        Username = other.Username;
+      }
+      if (other.Nickname.Length != 0) {
+        Nickname = other.Nickname;
+      }
+      if (other.Headimg != 0) {
+        Headimg = other.Headimg;
+      }
+      if (other.Position != 0) {
+        Position = other.Position;
+      }
+      if (other.Online != false) {
+        Online = other.Online;
+      }
+      if (other.Areaexp != 0) {
+        Areaexp = other.Areaexp;
+      }
+      if (other.Level != 0) {
+        Level = other.Level;
+      }
+      if (other.WeekDonate != 0) {
+        WeekDonate = other.WeekDonate;
+      }
+      if (other.TotalDonate != 0) {
+        TotalDonate = other.TotalDonate;
+      }
+      gemdeck_.Add(other.gemdeck_);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Username = input.ReadString();
+            break;
+          }
+          case 18: {
+            Nickname = input.ReadString();
+            break;
+          }
+          case 24: {
+            Headimg = input.ReadInt32();
+            break;
+          }
+          case 32: {
+            Position = input.ReadInt32();
+            break;
+          }
+          case 40: {
+            Online = input.ReadBool();
+            break;
+          }
+          case 48: {
+            Areaexp = input.ReadInt32();
+            break;
+          }
+          case 64: {
+            Level = input.ReadInt32();
+            break;
+          }
+          case 72: {
+            WeekDonate = input.ReadInt32();
+            break;
+          }
+          case 80: {
+            TotalDonate = input.ReadInt32();
+            break;
+          }
+          case 90: {
+            gemdeck_.AddEntriesFrom(input, _repeated_gemdeck_codec);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  public sealed partial class FamilyDonateItemMsg : pb::IMessage<FamilyDonateItemMsg> {
+    private static readonly pb::MessageParser<FamilyDonateItemMsg> _parser = new pb::MessageParser<FamilyDonateItemMsg>(() => new FamilyDonateItemMsg());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyDonateItemMsg> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.CommonReflection.Descriptor.MessageTypes[8]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyDonateItemMsg() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyDonateItemMsg(FamilyDonateItemMsg other) : this() {
+      username_ = other.username_;
+      donateCount_ = other.donateCount_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyDonateItemMsg Clone() {
+      return new FamilyDonateItemMsg(this);
+    }
+
+    /// <summary>Field number for the "username" field.</summary>
+    public const int UsernameFieldNumber = 1;
+    private string username_ = "";
+    /// <summary>
+    ///  
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Username {
+      get { return username_; }
+      set {
+        username_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "donateCount" field.</summary>
+    public const int DonateCountFieldNumber = 2;
+    private int donateCount_;
+    /// <summary>
+    ///  已经捐赠个数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int DonateCount {
+      get { return donateCount_; }
+      set {
+        donateCount_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyDonateItemMsg);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyDonateItemMsg other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Username != other.Username) return false;
+      if (DonateCount != other.DonateCount) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Username.Length != 0) hash ^= Username.GetHashCode();
+      if (DonateCount != 0) hash ^= DonateCount.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Username.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Username);
+      }
+      if (DonateCount != 0) {
+        output.WriteRawTag(16);
+        output.WriteInt32(DonateCount);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Username.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Username);
+      }
+      if (DonateCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(DonateCount);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyDonateItemMsg other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Username.Length != 0) {
+        Username = other.Username;
+      }
+      if (other.DonateCount != 0) {
+        DonateCount = other.DonateCount;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Username = input.ReadString();
+            break;
+          }
+          case 16: {
+            DonateCount = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// !工会聊天信息
+  /// </summary>
+  public sealed partial class FamilyChatMsg : pb::IMessage<FamilyChatMsg> {
+    private static readonly pb::MessageParser<FamilyChatMsg> _parser = new pb::MessageParser<FamilyChatMsg>(() => new FamilyChatMsg());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyChatMsg> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.CommonReflection.Descriptor.MessageTypes[9]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyChatMsg() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyChatMsg(FamilyChatMsg other) : this() {
+      messageId_ = other.messageId_;
+      username_ = other.username_;
+      nickname_ = other.nickname_;
+      headimg_ = other.headimg_;
+      createTime_ = other.createTime_;
+      content_ = other.content_;
+      chatType_ = other.chatType_;
+      gemId_ = other.gemId_;
+      donatelist_ = other.donatelist_.Clone();
+      receiveCount_ = other.receiveCount_;
+      totalCount_ = other.totalCount_;
+      noticeId_ = other.noticeId_;
+      params_ = other.params_.Clone();
+      newUsername_ = other.newUsername_;
+      newNickname_ = other.newNickname_;
+      newHeadimg_ = other.newHeadimg_;
+      newLevel_ = other.newLevel_;
+      newScore_ = other.newScore_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyChatMsg Clone() {
+      return new FamilyChatMsg(this);
+    }
+
+    /// <summary>Field number for the "messageId" field.</summary>
+    public const int MessageIdFieldNumber = 1;
+    private int messageId_;
+    /// <summary>
+    /// !所有消息按此ID排序,越大表示最近发送的
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int MessageId {
+      get { return messageId_; }
+      set {
+        messageId_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "username" field.</summary>
+    public const int UsernameFieldNumber = 2;
+    private string username_ = "";
+    /// <summary>
+    /// 发起者信息
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Username {
+      get { return username_; }
+      set {
+        username_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "nickname" field.</summary>
+    public const int NicknameFieldNumber = 3;
+    private string nickname_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Nickname {
+      get { return nickname_; }
+      set {
+        nickname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "headimg" field.</summary>
+    public const int HeadimgFieldNumber = 4;
+    private int headimg_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Headimg {
+      get { return headimg_; }
+      set {
+        headimg_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "createTime" field.</summary>
+    public const int CreateTimeFieldNumber = 5;
+    private int createTime_;
+    /// <summary>
+    ///  聊天发送的时间 单位秒 时间戳 
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CreateTime {
+      get { return createTime_; }
+      set {
+        createTime_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "content" field.</summary>
+    public const int ContentFieldNumber = 6;
+    private string content_ = "";
+    /// <summary>
+    ///  聊天内容,
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Content {
+      get { return content_; }
+      set {
+        content_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "chatType" field.</summary>
+    public const int ChatTypeFieldNumber = 7;
+    private global::Protobuf.ChatType chatType_ = 0;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public global::Protobuf.ChatType ChatType {
+      get { return chatType_; }
+      set {
+        chatType_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "gemId" field.</summary>
+    public const int GemIdFieldNumber = 8;
+    private int gemId_;
+    /// <summary>
+    /// @{ 
+    ///  如果是请求捐赠,这个是卡牌宝石ID
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int GemId {
+      get { return gemId_; }
+      set {
+        gemId_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "donatelist" field.</summary>
+    public const int DonatelistFieldNumber = 9;
+    private static readonly pb::FieldCodec<global::Protobuf.FamilyDonateItemMsg> _repeated_donatelist_codec
+        = pb::FieldCodec.ForMessage(74, global::Protobuf.FamilyDonateItemMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.FamilyDonateItemMsg> donatelist_ = new pbc::RepeatedField<global::Protobuf.FamilyDonateItemMsg>();
+    /// <summary>
+    ///   捐赠者列表
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.FamilyDonateItemMsg> Donatelist {
+      get { return donatelist_; }
+    }
+
+    /// <summary>Field number for the "receiveCount" field.</summary>
+    public const int ReceiveCountFieldNumber = 10;
+    private int receiveCount_;
+    /// <summary>
+    /// ! 总共需要个数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ReceiveCount {
+      get { return receiveCount_; }
+      set {
+        receiveCount_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "TotalCount" field.</summary>
+    public const int TotalCountFieldNumber = 11;
+    private int totalCount_;
+    /// <summary>
+    /// @}
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int TotalCount {
+      get { return totalCount_; }
+      set {
+        totalCount_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "noticeId" field.</summary>
+    public const int NoticeIdFieldNumber = 12;
+    private int noticeId_;
+    /// <summary>
+    /// @{
+    ///  系统聊天,需要替换聊天的配表字段,@see notice 表
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int NoticeId {
+      get { return noticeId_; }
+      set {
+        noticeId_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "params" field.</summary>
+    public const int ParamsFieldNumber = 13;
+    private static readonly pb::FieldCodec<string> _repeated_params_codec
+        = pb::FieldCodec.ForString(106);
+    private readonly pbc::RepeatedField<string> params_ = new pbc::RepeatedField<string>();
+    /// <summary>
+    /// @}
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<string> Params {
+      get { return params_; }
+    }
+
+    /// <summary>Field number for the "newUsername" field.</summary>
+    public const int NewUsernameFieldNumber = 14;
+    private string newUsername_ = "";
+    /// <summary>
+    /// @{
+    ///  只有会长能收到新成员加入消息
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string NewUsername {
+      get { return newUsername_; }
+      set {
+        newUsername_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "newNickname" field.</summary>
+    public const int NewNicknameFieldNumber = 15;
+    private string newNickname_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string NewNickname {
+      get { return newNickname_; }
+      set {
+        newNickname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "newHeadimg" field.</summary>
+    public const int NewHeadimgFieldNumber = 16;
+    private int newHeadimg_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int NewHeadimg {
+      get { return newHeadimg_; }
+      set {
+        newHeadimg_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "newLevel" field.</summary>
+    public const int NewLevelFieldNumber = 17;
+    private int newLevel_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int NewLevel {
+      get { return newLevel_; }
+      set {
+        newLevel_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "newScore" field.</summary>
+    public const int NewScoreFieldNumber = 18;
+    private int newScore_;
+    /// <summary>
+    /// 分数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int NewScore {
+      get { return newScore_; }
+      set {
+        newScore_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyChatMsg);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyChatMsg other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (MessageId != other.MessageId) return false;
+      if (Username != other.Username) return false;
+      if (Nickname != other.Nickname) return false;
+      if (Headimg != other.Headimg) return false;
+      if (CreateTime != other.CreateTime) return false;
+      if (Content != other.Content) return false;
+      if (ChatType != other.ChatType) return false;
+      if (GemId != other.GemId) return false;
+      if(!donatelist_.Equals(other.donatelist_)) return false;
+      if (ReceiveCount != other.ReceiveCount) return false;
+      if (TotalCount != other.TotalCount) return false;
+      if (NoticeId != other.NoticeId) return false;
+      if(!params_.Equals(other.params_)) return false;
+      if (NewUsername != other.NewUsername) return false;
+      if (NewNickname != other.NewNickname) return false;
+      if (NewHeadimg != other.NewHeadimg) return false;
+      if (NewLevel != other.NewLevel) return false;
+      if (NewScore != other.NewScore) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (MessageId != 0) hash ^= MessageId.GetHashCode();
+      if (Username.Length != 0) hash ^= Username.GetHashCode();
+      if (Nickname.Length != 0) hash ^= Nickname.GetHashCode();
+      if (Headimg != 0) hash ^= Headimg.GetHashCode();
+      if (CreateTime != 0) hash ^= CreateTime.GetHashCode();
+      if (Content.Length != 0) hash ^= Content.GetHashCode();
+      if (ChatType != 0) hash ^= ChatType.GetHashCode();
+      if (GemId != 0) hash ^= GemId.GetHashCode();
+      hash ^= donatelist_.GetHashCode();
+      if (ReceiveCount != 0) hash ^= ReceiveCount.GetHashCode();
+      if (TotalCount != 0) hash ^= TotalCount.GetHashCode();
+      if (NoticeId != 0) hash ^= NoticeId.GetHashCode();
+      hash ^= params_.GetHashCode();
+      if (NewUsername.Length != 0) hash ^= NewUsername.GetHashCode();
+      if (NewNickname.Length != 0) hash ^= NewNickname.GetHashCode();
+      if (NewHeadimg != 0) hash ^= NewHeadimg.GetHashCode();
+      if (NewLevel != 0) hash ^= NewLevel.GetHashCode();
+      if (NewScore != 0) hash ^= NewScore.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (MessageId != 0) {
+        output.WriteRawTag(8);
+        output.WriteInt32(MessageId);
+      }
+      if (Username.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Username);
+      }
+      if (Nickname.Length != 0) {
+        output.WriteRawTag(26);
+        output.WriteString(Nickname);
+      }
+      if (Headimg != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(Headimg);
+      }
+      if (CreateTime != 0) {
+        output.WriteRawTag(40);
+        output.WriteInt32(CreateTime);
+      }
+      if (Content.Length != 0) {
+        output.WriteRawTag(50);
+        output.WriteString(Content);
+      }
+      if (ChatType != 0) {
+        output.WriteRawTag(56);
+        output.WriteEnum((int) ChatType);
+      }
+      if (GemId != 0) {
+        output.WriteRawTag(64);
+        output.WriteInt32(GemId);
+      }
+      donatelist_.WriteTo(output, _repeated_donatelist_codec);
+      if (ReceiveCount != 0) {
+        output.WriteRawTag(80);
+        output.WriteInt32(ReceiveCount);
+      }
+      if (TotalCount != 0) {
+        output.WriteRawTag(88);
+        output.WriteInt32(TotalCount);
+      }
+      if (NoticeId != 0) {
+        output.WriteRawTag(96);
+        output.WriteInt32(NoticeId);
+      }
+      params_.WriteTo(output, _repeated_params_codec);
+      if (NewUsername.Length != 0) {
+        output.WriteRawTag(114);
+        output.WriteString(NewUsername);
+      }
+      if (NewNickname.Length != 0) {
+        output.WriteRawTag(122);
+        output.WriteString(NewNickname);
+      }
+      if (NewHeadimg != 0) {
+        output.WriteRawTag(128, 1);
+        output.WriteInt32(NewHeadimg);
+      }
+      if (NewLevel != 0) {
+        output.WriteRawTag(136, 1);
+        output.WriteInt32(NewLevel);
+      }
+      if (NewScore != 0) {
+        output.WriteRawTag(144, 1);
+        output.WriteInt32(NewScore);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (MessageId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MessageId);
+      }
+      if (Username.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Username);
+      }
+      if (Nickname.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Nickname);
+      }
+      if (Headimg != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Headimg);
+      }
+      if (CreateTime != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(CreateTime);
+      }
+      if (Content.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Content);
+      }
+      if (ChatType != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ChatType);
+      }
+      if (GemId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(GemId);
+      }
+      size += donatelist_.CalculateSize(_repeated_donatelist_codec);
+      if (ReceiveCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ReceiveCount);
+      }
+      if (TotalCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(TotalCount);
+      }
+      if (NoticeId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NoticeId);
+      }
+      size += params_.CalculateSize(_repeated_params_codec);
+      if (NewUsername.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(NewUsername);
+      }
+      if (NewNickname.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(NewNickname);
+      }
+      if (NewHeadimg != 0) {
+        size += 2 + pb::CodedOutputStream.ComputeInt32Size(NewHeadimg);
+      }
+      if (NewLevel != 0) {
+        size += 2 + pb::CodedOutputStream.ComputeInt32Size(NewLevel);
+      }
+      if (NewScore != 0) {
+        size += 2 + pb::CodedOutputStream.ComputeInt32Size(NewScore);
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyChatMsg other) {
+      if (other == null) {
+        return;
+      }
+      if (other.MessageId != 0) {
+        MessageId = other.MessageId;
+      }
+      if (other.Username.Length != 0) {
+        Username = other.Username;
+      }
+      if (other.Nickname.Length != 0) {
+        Nickname = other.Nickname;
+      }
+      if (other.Headimg != 0) {
+        Headimg = other.Headimg;
+      }
+      if (other.CreateTime != 0) {
+        CreateTime = other.CreateTime;
+      }
+      if (other.Content.Length != 0) {
+        Content = other.Content;
+      }
+      if (other.ChatType != 0) {
+        ChatType = other.ChatType;
+      }
+      if (other.GemId != 0) {
+        GemId = other.GemId;
+      }
+      donatelist_.Add(other.donatelist_);
+      if (other.ReceiveCount != 0) {
+        ReceiveCount = other.ReceiveCount;
+      }
+      if (other.TotalCount != 0) {
+        TotalCount = other.TotalCount;
+      }
+      if (other.NoticeId != 0) {
+        NoticeId = other.NoticeId;
+      }
+      params_.Add(other.params_);
+      if (other.NewUsername.Length != 0) {
+        NewUsername = other.NewUsername;
+      }
+      if (other.NewNickname.Length != 0) {
+        NewNickname = other.NewNickname;
+      }
+      if (other.NewHeadimg != 0) {
+        NewHeadimg = other.NewHeadimg;
+      }
+      if (other.NewLevel != 0) {
+        NewLevel = other.NewLevel;
+      }
+      if (other.NewScore != 0) {
+        NewScore = other.NewScore;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 8: {
+            MessageId = input.ReadInt32();
+            break;
+          }
+          case 18: {
+            Username = input.ReadString();
+            break;
+          }
+          case 26: {
+            Nickname = input.ReadString();
+            break;
+          }
+          case 32: {
+            Headimg = input.ReadInt32();
+            break;
+          }
+          case 40: {
+            CreateTime = input.ReadInt32();
+            break;
+          }
+          case 50: {
+            Content = input.ReadString();
+            break;
+          }
+          case 56: {
+            chatType_ = (global::Protobuf.ChatType) input.ReadEnum();
+            break;
+          }
+          case 64: {
+            GemId = input.ReadInt32();
+            break;
+          }
+          case 74: {
+            donatelist_.AddEntriesFrom(input, _repeated_donatelist_codec);
+            break;
+          }
+          case 80: {
+            ReceiveCount = input.ReadInt32();
+            break;
+          }
+          case 88: {
+            TotalCount = input.ReadInt32();
+            break;
+          }
+          case 96: {
+            NoticeId = input.ReadInt32();
+            break;
+          }
+          case 106: {
+            params_.AddEntriesFrom(input, _repeated_params_codec);
+            break;
+          }
+          case 114: {
+            NewUsername = input.ReadString();
+            break;
+          }
+          case 122: {
+            NewNickname = input.ReadString();
+            break;
+          }
+          case 128: {
+            NewHeadimg = input.ReadInt32();
+            break;
+          }
+          case 136: {
+            NewLevel = input.ReadInt32();
+            break;
+          }
+          case 144: {
+            NewScore = input.ReadInt32();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  ///  工会信息
+  /// </summary>
+  public sealed partial class FamilyMsg : pb::IMessage<FamilyMsg> {
+    private static readonly pb::MessageParser<FamilyMsg> _parser = new pb::MessageParser<FamilyMsg>(() => new FamilyMsg());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilyMsg> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.CommonReflection.Descriptor.MessageTypes[10]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyMsg() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyMsg(FamilyMsg other) : this() {
+      uid_ = other.uid_;
+      name_ = other.name_;
+      desc_ = other.desc_;
+      icons_ = other.icons_.Clone();
+      score_ = other.score_;
+      scoreshopId_ = other.scoreshopId_;
+      scoreshopExpired_ = other.scoreshopExpired_;
+      freeJoin_ = other.freeJoin_;
+      needScore_ = other.needScore_;
+      members_ = other.members_.Clone();
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilyMsg Clone() {
+      return new FamilyMsg(this);
+    }
+
+    /// <summary>Field number for the "uid" field.</summary>
+    public const int UidFieldNumber = 1;
+    private string uid_ = "";
+    /// <summary>
+    ///  工会ID,如果为空表示没有加入工会
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Uid {
+      get { return uid_; }
+      set {
+        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "name" field.</summary>
+    public const int NameFieldNumber = 2;
+    private string name_ = "";
+    /// <summary>
+    ///  工会名
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Name {
+      get { return name_; }
+      set {
+        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "desc" field.</summary>
+    public const int DescFieldNumber = 3;
+    private string desc_ = "";
+    /// <summary>
+    ///  描述 公告
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Desc {
+      get { return desc_; }
+      set {
+        desc_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "icons" field.</summary>
+    public const int IconsFieldNumber = 4;
+    private static readonly pb::FieldCodec<int> _repeated_icons_codec
+        = pb::FieldCodec.ForInt32(34);
+    private readonly pbc::RepeatedField<int> icons_ = new pbc::RepeatedField<int>();
+    /// <summary>
+    ///  徽章图标
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<int> Icons {
+      get { return icons_; }
+    }
+
+    /// <summary>Field number for the "score" field.</summary>
+    public const int ScoreFieldNumber = 5;
+    private int score_;
+    /// <summary>
+    /// !工会积分
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int Score {
+      get { return score_; }
+      set {
+        score_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "scoreshopId" field.</summary>
+    public const int ScoreshopIdFieldNumber = 6;
+    private int scoreshopId_;
+    /// <summary>
+    ///  工会加成工会奖励的Id和过期时间,如果是0表示没有奖励
+    ///  @see scoreshop 表
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ScoreshopId {
+      get { return scoreshopId_; }
+      set {
+        scoreshopId_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "scoreshopExpired" field.</summary>
+    public const int ScoreshopExpiredFieldNumber = 7;
+    private int scoreshopExpired_;
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int ScoreshopExpired {
+      get { return scoreshopExpired_; }
+      set {
+        scoreshopExpired_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "freeJoin" field.</summary>
+    public const int FreeJoinFieldNumber = 8;
+    private int freeJoin_;
+    /// <summary>
+    /// ! 1 免费加入,2 需要批准,3 禁止加入
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int FreeJoin {
+      get { return freeJoin_; }
+      set {
+        freeJoin_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "needScore" field.</summary>
+    public const int NeedScoreFieldNumber = 9;
+    private int needScore_;
+    /// <summary>
+    ///  需要积分
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int NeedScore {
+      get { return needScore_; }
+      set {
+        needScore_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "members" field.</summary>
+    public const int MembersFieldNumber = 10;
+    private static readonly pb::FieldCodec<global::Protobuf.FamilyMemberMsg> _repeated_members_codec
+        = pb::FieldCodec.ForMessage(82, global::Protobuf.FamilyMemberMsg.Parser);
+    private readonly pbc::RepeatedField<global::Protobuf.FamilyMemberMsg> members_ = new pbc::RepeatedField<global::Protobuf.FamilyMemberMsg>();
+    /// <summary>
+    /// ! 成员
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<global::Protobuf.FamilyMemberMsg> Members {
+      get { return members_; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilyMsg);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilyMsg other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Uid != other.Uid) return false;
+      if (Name != other.Name) return false;
+      if (Desc != other.Desc) return false;
+      if(!icons_.Equals(other.icons_)) return false;
+      if (Score != other.Score) return false;
+      if (ScoreshopId != other.ScoreshopId) return false;
+      if (ScoreshopExpired != other.ScoreshopExpired) return false;
+      if (FreeJoin != other.FreeJoin) return false;
+      if (NeedScore != other.NeedScore) return false;
+      if(!members_.Equals(other.members_)) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Uid.Length != 0) hash ^= Uid.GetHashCode();
+      if (Name.Length != 0) hash ^= Name.GetHashCode();
+      if (Desc.Length != 0) hash ^= Desc.GetHashCode();
+      hash ^= icons_.GetHashCode();
+      if (Score != 0) hash ^= Score.GetHashCode();
+      if (ScoreshopId != 0) hash ^= ScoreshopId.GetHashCode();
+      if (ScoreshopExpired != 0) hash ^= ScoreshopExpired.GetHashCode();
+      if (FreeJoin != 0) hash ^= FreeJoin.GetHashCode();
+      if (NeedScore != 0) hash ^= NeedScore.GetHashCode();
+      hash ^= members_.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Uid.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Uid);
+      }
+      if (Name.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Name);
+      }
+      if (Desc.Length != 0) {
+        output.WriteRawTag(26);
+        output.WriteString(Desc);
+      }
+      icons_.WriteTo(output, _repeated_icons_codec);
+      if (Score != 0) {
+        output.WriteRawTag(40);
+        output.WriteInt32(Score);
+      }
+      if (ScoreshopId != 0) {
+        output.WriteRawTag(48);
+        output.WriteInt32(ScoreshopId);
+      }
+      if (ScoreshopExpired != 0) {
+        output.WriteRawTag(56);
+        output.WriteInt32(ScoreshopExpired);
+      }
+      if (FreeJoin != 0) {
+        output.WriteRawTag(64);
+        output.WriteInt32(FreeJoin);
+      }
+      if (NeedScore != 0) {
+        output.WriteRawTag(72);
+        output.WriteInt32(NeedScore);
+      }
+      members_.WriteTo(output, _repeated_members_codec);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Uid.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
+      }
+      if (Name.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+      }
+      if (Desc.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Desc);
+      }
+      size += icons_.CalculateSize(_repeated_icons_codec);
+      if (Score != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Score);
+      }
+      if (ScoreshopId != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ScoreshopId);
+      }
+      if (ScoreshopExpired != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(ScoreshopExpired);
+      }
+      if (FreeJoin != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(FreeJoin);
+      }
+      if (NeedScore != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(NeedScore);
+      }
+      size += members_.CalculateSize(_repeated_members_codec);
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilyMsg other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Uid.Length != 0) {
+        Uid = other.Uid;
+      }
+      if (other.Name.Length != 0) {
+        Name = other.Name;
+      }
+      if (other.Desc.Length != 0) {
+        Desc = other.Desc;
+      }
+      icons_.Add(other.icons_);
+      if (other.Score != 0) {
+        Score = other.Score;
+      }
+      if (other.ScoreshopId != 0) {
+        ScoreshopId = other.ScoreshopId;
+      }
+      if (other.ScoreshopExpired != 0) {
+        ScoreshopExpired = other.ScoreshopExpired;
+      }
+      if (other.FreeJoin != 0) {
+        FreeJoin = other.FreeJoin;
+      }
+      if (other.NeedScore != 0) {
+        NeedScore = other.NeedScore;
+      }
+      members_.Add(other.members_);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Uid = input.ReadString();
+            break;
+          }
+          case 18: {
+            Name = input.ReadString();
+            break;
+          }
+          case 26: {
+            Desc = input.ReadString();
+            break;
+          }
+          case 34:
+          case 32: {
+            icons_.AddEntriesFrom(input, _repeated_icons_codec);
+            break;
+          }
+          case 40: {
+            Score = input.ReadInt32();
+            break;
+          }
+          case 48: {
+            ScoreshopId = input.ReadInt32();
+            break;
+          }
+          case 56: {
+            ScoreshopExpired = input.ReadInt32();
+            break;
+          }
+          case 64: {
+            FreeJoin = input.ReadInt32();
+            break;
+          }
+          case 72: {
+            NeedScore = input.ReadInt32();
+            break;
+          }
+          case 82: {
+            members_.AddEntriesFrom(input, _repeated_members_codec);
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
+  /// <summary>
+  /// !用户查询工会的工会列表
+  /// </summary>
+  public sealed partial class FamilySearchItemMsg : pb::IMessage<FamilySearchItemMsg> {
+    private static readonly pb::MessageParser<FamilySearchItemMsg> _parser = new pb::MessageParser<FamilySearchItemMsg>(() => new FamilySearchItemMsg());
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pb::MessageParser<FamilySearchItemMsg> Parser { get { return _parser; } }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public static pbr::MessageDescriptor Descriptor {
+      get { return global::Protobuf.CommonReflection.Descriptor.MessageTypes[11]; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    pbr::MessageDescriptor pb::IMessage.Descriptor {
+      get { return Descriptor; }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearchItemMsg() {
+      OnConstruction();
+    }
+
+    partial void OnConstruction();
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearchItemMsg(FamilySearchItemMsg other) : this() {
+      uid_ = other.uid_;
+      name_ = other.name_;
+      icons_ = other.icons_.Clone();
+      memberCount_ = other.memberCount_;
+      isActive_ = other.isActive_;
+      isFriendIn_ = other.isFriendIn_;
+      isNew_ = other.isNew_;
+      isApply_ = other.isApply_;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public FamilySearchItemMsg Clone() {
+      return new FamilySearchItemMsg(this);
+    }
+
+    /// <summary>Field number for the "uid" field.</summary>
+    public const int UidFieldNumber = 1;
+    private string uid_ = "";
+    /// <summary>
+    ///  工会ID
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Uid {
+      get { return uid_; }
+      set {
+        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "name" field.</summary>
+    public const int NameFieldNumber = 2;
+    private string name_ = "";
+    /// <summary>
+    ///  工会名
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string Name {
+      get { return name_; }
+      set {
+        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
+    /// <summary>Field number for the "icons" field.</summary>
+    public const int IconsFieldNumber = 3;
+    private static readonly pb::FieldCodec<int> _repeated_icons_codec
+        = pb::FieldCodec.ForInt32(26);
+    private readonly pbc::RepeatedField<int> icons_ = new pbc::RepeatedField<int>();
+    /// <summary>
+    ///  徽章图标
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public pbc::RepeatedField<int> Icons {
+      get { return icons_; }
+    }
+
+    /// <summary>Field number for the "memberCount" field.</summary>
+    public const int MemberCountFieldNumber = 4;
+    private int memberCount_;
+    /// <summary>
+    ///  当前人数
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int MemberCount {
+      get { return memberCount_; }
+      set {
+        memberCount_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "isActive" field.</summary>
+    public const int IsActiveFieldNumber = 5;
+    private bool isActive_;
+    /// <summary>
+    ///  是否活跃
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool IsActive {
+      get { return isActive_; }
+      set {
+        isActive_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "isFriendIn" field.</summary>
+    public const int IsFriendInFieldNumber = 6;
+    private bool isFriendIn_;
+    /// <summary>
+    ///  是否好友在此工会
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool IsFriendIn {
+      get { return isFriendIn_; }
+      set {
+        isFriendIn_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "isNew" field.</summary>
+    public const int IsNewFieldNumber = 7;
+    private bool isNew_;
+    /// <summary>
+    ///  是否是新公会
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool IsNew {
+      get { return isNew_; }
+      set {
+        isNew_ = value;
+      }
+    }
+
+    /// <summary>Field number for the "isApply" field.</summary>
+    public const int IsApplyFieldNumber = 8;
+    private bool isApply_;
+    /// <summary>
+    ///  是否已申请
+    /// </summary>
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool IsApply {
+      get { return isApply_; }
+      set {
+        isApply_ = value;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override bool Equals(object other) {
+      return Equals(other as FamilySearchItemMsg);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public bool Equals(FamilySearchItemMsg other) {
+      if (ReferenceEquals(other, null)) {
+        return false;
+      }
+      if (ReferenceEquals(other, this)) {
+        return true;
+      }
+      if (Uid != other.Uid) return false;
+      if (Name != other.Name) return false;
+      if(!icons_.Equals(other.icons_)) return false;
+      if (MemberCount != other.MemberCount) return false;
+      if (IsActive != other.IsActive) return false;
+      if (IsFriendIn != other.IsFriendIn) return false;
+      if (IsNew != other.IsNew) return false;
+      if (IsApply != other.IsApply) return false;
+      return true;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override int GetHashCode() {
+      int hash = 1;
+      if (Uid.Length != 0) hash ^= Uid.GetHashCode();
+      if (Name.Length != 0) hash ^= Name.GetHashCode();
+      hash ^= icons_.GetHashCode();
+      if (MemberCount != 0) hash ^= MemberCount.GetHashCode();
+      if (IsActive != false) hash ^= IsActive.GetHashCode();
+      if (IsFriendIn != false) hash ^= IsFriendIn.GetHashCode();
+      if (IsNew != false) hash ^= IsNew.GetHashCode();
+      if (IsApply != false) hash ^= IsApply.GetHashCode();
+      return hash;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public override string ToString() {
+      return pb::JsonFormatter.ToDiagnosticString(this);
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void WriteTo(pb::CodedOutputStream output) {
+      if (Uid.Length != 0) {
+        output.WriteRawTag(10);
+        output.WriteString(Uid);
+      }
+      if (Name.Length != 0) {
+        output.WriteRawTag(18);
+        output.WriteString(Name);
+      }
+      icons_.WriteTo(output, _repeated_icons_codec);
+      if (MemberCount != 0) {
+        output.WriteRawTag(32);
+        output.WriteInt32(MemberCount);
+      }
+      if (IsActive != false) {
+        output.WriteRawTag(40);
+        output.WriteBool(IsActive);
+      }
+      if (IsFriendIn != false) {
+        output.WriteRawTag(48);
+        output.WriteBool(IsFriendIn);
+      }
+      if (IsNew != false) {
+        output.WriteRawTag(56);
+        output.WriteBool(IsNew);
+      }
+      if (IsApply != false) {
+        output.WriteRawTag(64);
+        output.WriteBool(IsApply);
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public int CalculateSize() {
+      int size = 0;
+      if (Uid.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Uid);
+      }
+      if (Name.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+      }
+      size += icons_.CalculateSize(_repeated_icons_codec);
+      if (MemberCount != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeInt32Size(MemberCount);
+      }
+      if (IsActive != false) {
+        size += 1 + 1;
+      }
+      if (IsFriendIn != false) {
+        size += 1 + 1;
+      }
+      if (IsNew != false) {
+        size += 1 + 1;
+      }
+      if (IsApply != false) {
+        size += 1 + 1;
+      }
+      return size;
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(FamilySearchItemMsg other) {
+      if (other == null) {
+        return;
+      }
+      if (other.Uid.Length != 0) {
+        Uid = other.Uid;
+      }
+      if (other.Name.Length != 0) {
+        Name = other.Name;
+      }
+      icons_.Add(other.icons_);
+      if (other.MemberCount != 0) {
+        MemberCount = other.MemberCount;
+      }
+      if (other.IsActive != false) {
+        IsActive = other.IsActive;
+      }
+      if (other.IsFriendIn != false) {
+        IsFriendIn = other.IsFriendIn;
+      }
+      if (other.IsNew != false) {
+        IsNew = other.IsNew;
+      }
+      if (other.IsApply != false) {
+        IsApply = other.IsApply;
+      }
+    }
+
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public void MergeFrom(pb::CodedInputStream input) {
+      uint tag;
+      while ((tag = input.ReadTag()) != 0) {
+        switch(tag) {
+          default:
+            input.SkipLastField();
+            break;
+          case 10: {
+            Uid = input.ReadString();
+            break;
+          }
+          case 18: {
+            Name = input.ReadString();
+            break;
+          }
+          case 26:
+          case 24: {
+            icons_.AddEntriesFrom(input, _repeated_icons_codec);
+            break;
+          }
+          case 32: {
+            MemberCount = input.ReadInt32();
+            break;
+          }
+          case 40: {
+            IsActive = input.ReadBool();
+            break;
+          }
+          case 48: {
+            IsFriendIn = input.ReadBool();
+            break;
+          }
+          case 56: {
+            IsNew = input.ReadBool();
+            break;
+          }
+          case 64: {
+            IsApply = input.ReadBool();
+            break;
+          }
+        }
+      }
+    }
+
+  }
+
   #endregion
 
 }

--
Gitblit v1.9.1