Browse Source

首次提交

boweniac 3 weeks ago
commit
bce65aadf1
100 changed files with 135895 additions and 0 deletions
  1. 32 0
      .classpath
  2. 28 0
      .project
  3. 7 0
      .settings/org.eclipse.core.resources.prefs
  4. 12 0
      .settings/org.eclipse.jdt.core.prefs
  5. 4 0
      .settings/org.eclipse.m2e.core.prefs
  6. 2 0
      .settings/org.springframework.ide.eclipse.prefs
  7. 0 0
      .sts4-cache/classpath-data.json
  8. 186 0
      pom.xml
  9. 25 0
      readme.txt
  10. 303 0
      src/database/workchat.sql
  11. BIN
      src/lib/similarity-1.1.6.jar
  12. 714 0
      src/main/java/Im/Scrm/Ww/Proto/WAcceptCustomerTask.java
  13. 885 0
      src/main/java/Im/Scrm/Ww/Proto/WAccountForceOfflineNotice.java
  14. 1331 0
      src/main/java/Im/Scrm/Ww/Proto/WAddCustomerByGroupTask.java
  15. 1092 0
      src/main/java/Im/Scrm/Ww/Proto/WAddCustomerByIdTask.java
  16. 1427 0
      src/main/java/Im/Scrm/Ww/Proto/WAddCustomerFromSearchTask.java
  17. 981 0
      src/main/java/Im/Scrm/Ww/Proto/WAddCustomerFromWxTask.java
  18. 767 0
      src/main/java/Im/Scrm/Ww/Proto/WAddEmojiTask.java
  19. 1042 0
      src/main/java/Im/Scrm/Ww/Proto/WAddEmojiTaskResultNotice.java
  20. 1720 0
      src/main/java/Im/Scrm/Ww/Proto/WChatRoomActionTask.java
  21. 919 0
      src/main/java/Im/Scrm/Ww/Proto/WCommonResult.java
  22. 947 0
      src/main/java/Im/Scrm/Ww/Proto/WCommonTriggerTask.java
  23. 4568 0
      src/main/java/Im/Scrm/Ww/Proto/WConfigPushNotice.java
  24. 1660 0
      src/main/java/Im/Scrm/Ww/Proto/WConfigSetting.java
  25. 3461 0
      src/main/java/Im/Scrm/Ww/Proto/WContactPushNotice.java
  26. 819 0
      src/main/java/Im/Scrm/Ww/Proto/WConversationAddNotice.java
  27. 819 0
      src/main/java/Im/Scrm/Ww/Proto/WConversationChangedNotice.java
  28. 1162 0
      src/main/java/Im/Scrm/Ww/Proto/WConversationInfoNotice.java
  29. 6141 0
      src/main/java/Im/Scrm/Ww/Proto/WConversationPushNotice.java
  30. 1688 0
      src/main/java/Im/Scrm/Ww/Proto/WCorporationPushNotice.java
  31. 819 0
      src/main/java/Im/Scrm/Ww/Proto/WCustomerAddNotice.java
  32. 647 0
      src/main/java/Im/Scrm/Ww/Proto/WCustomerDelNotice.java
  33. 2579 0
      src/main/java/Im/Scrm/Ww/Proto/WCustomerGroupPushNotice.java
  34. 5087 0
      src/main/java/Im/Scrm/Ww/Proto/WCustomerPushNotice.java
  35. 890 0
      src/main/java/Im/Scrm/Ww/Proto/WDaKaTask.java
  36. 716 0
      src/main/java/Im/Scrm/Ww/Proto/WDelCustomerTask.java
  37. 1192 0
      src/main/java/Im/Scrm/Ww/Proto/WDelSnsCommentTask.java
  38. 918 0
      src/main/java/Im/Scrm/Ww/Proto/WDelSnsTask.java
  39. 2002 0
      src/main/java/Im/Scrm/Ww/Proto/WDepartmentPushNotice.java
  40. 953 0
      src/main/java/Im/Scrm/Ww/Proto/WDeviceAuthReq.java
  41. 2018 0
      src/main/java/Im/Scrm/Ww/Proto/WDeviceAuthRsp.java
  42. 951 0
      src/main/java/Im/Scrm/Ww/Proto/WDownloadFileByMsgIdTask.java
  43. 1614 0
      src/main/java/Im/Scrm/Ww/Proto/WDownloadFileByUrlTask.java
  44. 1458 0
      src/main/java/Im/Scrm/Ww/Proto/WDownloadFileResultNotice.java
  45. 794 0
      src/main/java/Im/Scrm/Ww/Proto/WErrorNotice.java
  46. 912 0
      src/main/java/Im/Scrm/Ww/Proto/WForwardMsgTask.java
  47. 1381 0
      src/main/java/Im/Scrm/Ww/Proto/WForwardMultiTask.java
  48. 1948 0
      src/main/java/Im/Scrm/Ww/Proto/WFriendTalkNotice.java
  49. 714 0
      src/main/java/Im/Scrm/Ww/Proto/WGetContactInfoTask.java
  50. 1118 0
      src/main/java/Im/Scrm/Ww/Proto/WGetContactInfoTaskResultNotice.java
  51. 714 0
      src/main/java/Im/Scrm/Ww/Proto/WGetConversationInfoTask.java
  52. 1057 0
      src/main/java/Im/Scrm/Ww/Proto/WGetExtUserIdTask.java
  53. 1932 0
      src/main/java/Im/Scrm/Ww/Proto/WGetExtUserIdTaskResult.java
  54. 734 0
      src/main/java/Im/Scrm/Ww/Proto/WGetGroupMemberTask.java
  55. 918 0
      src/main/java/Im/Scrm/Ww/Proto/WGetSnsDataTask.java
  56. 1118 0
      src/main/java/Im/Scrm/Ww/Proto/WGetSnsDataTaskResultNotice.java
  57. 1279 0
      src/main/java/Im/Scrm/Ww/Proto/WGroupMemberAddNotice.java
  58. 1279 0
      src/main/java/Im/Scrm/Ww/Proto/WGroupMemberDelNotice.java
  59. 1200 0
      src/main/java/Im/Scrm/Ww/Proto/WGroupMemberPushNotice.java
  60. 2962 0
      src/main/java/Im/Scrm/Ww/Proto/WHistoryMsgPushNotice.java
  61. 1010 0
      src/main/java/Im/Scrm/Ww/Proto/WJoinGroupInviteTask.java
  62. 983 0
      src/main/java/Im/Scrm/Ww/Proto/WMsgRevokeNotice.java
  63. 733 0
      src/main/java/Im/Scrm/Ww/Proto/WMsgRevokeTask.java
  64. 819 0
      src/main/java/Im/Scrm/Ww/Proto/WNewCustomerAddedNotice.java
  65. 1110 0
      src/main/java/Im/Scrm/Ww/Proto/WNewCustomerPushNotice.java
  66. 873 0
      src/main/java/Im/Scrm/Ww/Proto/WOneWayCustomerPushNotice.java
  67. 1412 0
      src/main/java/Im/Scrm/Ww/Proto/WPhoneActionTask.java
  68. 734 0
      src/main/java/Im/Scrm/Ww/Proto/WPhoneStateTask.java
  69. 1266 0
      src/main/java/Im/Scrm/Ww/Proto/WPhoneStateTaskResultNotice.java
  70. 1177 0
      src/main/java/Im/Scrm/Ww/Proto/WPhoneStateWarningNotice.java
  71. 3593 0
      src/main/java/Im/Scrm/Ww/Proto/WPostDeviceInfoNotice.java
  72. 644 0
      src/main/java/Im/Scrm/Ww/Proto/WPostMessageReadNotice.java
  73. 4781 0
      src/main/java/Im/Scrm/Ww/Proto/WPostSnsTask.java
  74. 1243 0
      src/main/java/Im/Scrm/Ww/Proto/WPostSnsTaskResultNotice.java
  75. 734 0
      src/main/java/Im/Scrm/Ww/Proto/WPostSnsTaskTask.java
  76. 558 0
      src/main/java/Im/Scrm/Ww/Proto/WPullMyQrCodeTask.java
  77. 1008 0
      src/main/java/Im/Scrm/Ww/Proto/WPullMyQrCodeTaskResultNotice.java
  78. 709 0
      src/main/java/Im/Scrm/Ww/Proto/WPullMySnsListTask.java
  79. 6645 0
      src/main/java/Im/Scrm/Ww/Proto/WPullMySnsListTaskResultNotice.java
  80. 709 0
      src/main/java/Im/Scrm/Ww/Proto/WPullSnsTaskListTask.java
  81. 2058 0
      src/main/java/Im/Scrm/Ww/Proto/WPullSnsTaskListTaskResultNotice.java
  82. 1922 0
      src/main/java/Im/Scrm/Ww/Proto/WQunFaTask.java
  83. 827 0
      src/main/java/Im/Scrm/Ww/Proto/WRedirectNotice.java
  84. 733 0
      src/main/java/Im/Scrm/Ww/Proto/WRunFunCardTask.java
  85. 906 0
      src/main/java/Im/Scrm/Ww/Proto/WSearchMsgTask.java
  86. 3397 0
      src/main/java/Im/Scrm/Ww/Proto/WSearchMsgTaskResultNotice.java
  87. 893 0
      src/main/java/Im/Scrm/Ww/Proto/WSendFriendVerifyTask.java
  88. 918 0
      src/main/java/Im/Scrm/Ww/Proto/WSetUserMemoTask.java
  89. 1281 0
      src/main/java/Im/Scrm/Ww/Proto/WSnsCommentTask.java
  90. 1216 0
      src/main/java/Im/Scrm/Ww/Proto/WSnsCommentTaskResultNotice.java
  91. 918 0
      src/main/java/Im/Scrm/Ww/Proto/WSnsLikeTask.java
  92. 1525 0
      src/main/java/Im/Scrm/Ww/Proto/WSnsMsgNotice.java
  93. 1007 0
      src/main/java/Im/Scrm/Ww/Proto/WSnsNotifyNotice.java
  94. 1398 0
      src/main/java/Im/Scrm/Ww/Proto/WTalkToFriendTask.java
  95. 1421 0
      src/main/java/Im/Scrm/Ww/Proto/WTalkToFriendTaskResultNotice.java
  96. 1479 0
      src/main/java/Im/Scrm/Ww/Proto/WTaskResultNotice.java
  97. 4783 0
      src/main/java/Im/Scrm/Ww/Proto/WTransport.java
  98. 976 0
      src/main/java/Im/Scrm/Ww/Proto/WTriggerHistoryMsgPushTask.java
  99. 644 0
      src/main/java/Im/Scrm/Ww/Proto/WTriggerMessageReadTask.java
  100. 2206 0
      src/main/java/Im/Scrm/Ww/Proto/WUpgradeDeviceAppNotice.java

+ 32 - 0
.classpath

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="test" value="true"/>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

+ 28 - 0
.project

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>wework-server-1.0</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>

+ 7 - 0
.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/proto=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/main/resources/static/css/main.css=GBK
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8

+ 12 - 0
.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8

+ 4 - 0
.settings/org.eclipse.m2e.core.prefs

@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1

+ 2 - 0
.settings/org.springframework.ide.eclipse.prefs

@@ -0,0 +1,2 @@
+boot.validation.initialized=true
+eclipse.preferences.version=1

File diff suppressed because it is too large
+ 0 - 0
.sts4-cache/classpath-data.json


+ 186 - 0
pom.xml

@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
+    <modelVersion>4.0.0</modelVersion> 
+    <groupId>com.jubotech</groupId>
+    <artifactId>wework-server-1.0</artifactId>
+    <version>0.0.1</version>
+   
+    <parent>
+	    <groupId>org.springframework.boot</groupId>
+	    <artifactId>spring-boot-starter-parent</artifactId>
+	    <version>1.5.8.RELEASE</version>
+	</parent>
+	
+	<properties>
+			<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+			<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+			<java.version>1.8</java.version>
+	</properties>
+	
+	<dependencies>
+	<!-- 整合 javaweb  -->
+	    <dependency>
+	        <groupId>org.springframework.boot</groupId>
+	        <artifactId>spring-boot-starter-web</artifactId>
+	    </dependency>
+	
+	<!-- freemarker包 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>  
+          
+	<!-- 整合测试框架 -->
+	     <dependency>
+	        <groupId>org.springframework.boot</groupId>
+	        <artifactId>spring-boot-starter-test</artifactId>
+	    </dependency>
+	  
+	     
+	    <!-- 数据库驱动 -->
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+		</dependency>
+	<!-- 整合mybatis -->
+	     <dependency>
+	        <groupId>org.mybatis.spring.boot</groupId>
+	        <artifactId>mybatis-spring-boot-starter</artifactId>
+	        <version>1.1.1</version>
+	    </dependency>
+	
+	<!-- 整合Ehcache -->
+	<dependency>
+	    <groupId>org.springframework</groupId>
+	     <artifactId>spring-context-support</artifactId>
+	</dependency>
+	<dependency>
+		    <groupId>org.mybatis.caches</groupId>
+		    <artifactId>mybatis-ehcache</artifactId>
+		    <version>1.1.0</version>
+	</dependency>
+	
+	<!-- 整合netty -->	
+		<dependency>
+		    <groupId>io.netty</groupId>
+		    <artifactId>netty-all</artifactId>
+		    <version>4.1.25.Final</version>
+		</dependency>
+	<!-- 加入protobuf -->	
+		<dependency>
+		    <groupId>com.google.protobuf</groupId>
+		    <artifactId>protobuf-java</artifactId>
+		    <version>3.10.0</version>
+		</dependency>
+		
+		<dependency>
+			<groupId>com.googlecode.protobuf-java-format</groupId>
+			<artifactId>protobuf-java-format</artifactId>
+			<version>1.2</version>
+		</dependency> 
+		
+	    <dependency>
+		    <groupId>com.google.protobuf</groupId>
+		    <artifactId>protobuf-java-util</artifactId>
+		    <version>3.10.0</version>
+		</dependency>
+		 
+	   <dependency>
+		    <groupId>com.alibaba</groupId>
+		    <artifactId>fastjson</artifactId>
+		    <version>1.2.32</version>
+	   </dependency>
+	  
+	   <dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-lang3</artifactId>
+			<version>3.4</version>
+		</dependency>
+		
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+	    </dependency>
+		 
+		<dependency>
+			<groupId>commons-codec</groupId>
+			<artifactId>commons-codec</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>commons-fileupload</groupId>
+			<artifactId>commons-fileupload</artifactId>
+			<version>1.3.1</version>
+		</dependency>
+		
+		
+		<!--tkmybatis-->
+		<dependency>
+			<groupId>tk.mybatis</groupId>
+			<artifactId>mapper</artifactId>
+			<version>4.0.0</version>
+		</dependency>
+		
+		<dependency>
+			<groupId>com.github.pagehelper</groupId>
+			<artifactId>pagehelper-spring-boot-starter</artifactId>
+			<version>1.2.10</version>
+		</dependency>
+		
+		<dependency>
+			<groupId>io.github.shibing624</groupId>
+		    <artifactId>similarity</artifactId>
+		    <version>1.1.3</version>
+			<scope>system</scope>
+			<systemPath>${project.basedir}/src/lib/similarity-1.1.6.jar</systemPath>
+		</dependency>
+		
+		<dependency>
+	        <groupId>org.springframework.boot</groupId>
+	        <artifactId>spring-boot-devtools</artifactId>
+	        <optional>true</optional>
+	    </dependency>
+	    
+	     
+		
+	</dependencies>
+	
+	<repositories>
+	  <repository>
+	    <id>jitpack.io</id>
+	    <url>https://jitpack.io</url>
+	  </repository>
+	</repositories>
+
+ <build>
+ <plugins>
+    <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+            <!--JDK版本-->
+            <source>1.8</source>
+            <target>1.8</target>
+        </configuration>
+    </plugin>
+ 
+    <plugin>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-maven-plugin</artifactId>
+		<configuration>
+			<mainClass>com.jubotech.SpringBootStarter</mainClass>
+		</configuration>
+		<executions>
+			<execution>
+				<goals>
+					<goal>repackage</goal>
+				</goals>
+			</execution>
+		</executions>
+	</plugin>
+    
+</plugins>
+</build>    
+
+
+</project>

+ 25 - 0
readme.txt

@@ -0,0 +1,25 @@
+1、建一个名为workchat数据库,编码格式为utf8mb4,MySQL数据库版本建议到8.0以上,不然有些字符低版本的存储不了
+2、使用database目录下的脚本初始化表
+3、修改application.properties数据库连接信息
+4、运行com.jubotech.SpringBootStarter启动服务
+5、调试通讯接口略
+6、后台http://127.0.0.1:15086/      
+客户后台账号密码admin/123456    
+管理平台账号密码 root/123456
+-----------------上面是管理端账号--------------------
+pc端登陆,默认了一个pctest账号,密码是123456,别搞混了
+
+**************有任何问题请加微信tangjinjinwx联系作者*************
+
+读懂application.properties配置文件
+#设置springboot端口--管理端web服务使用端口
+server.port = 15086
+#设置netty的socket端口--手机端sdk使用端口
+com.jubotech.netty.socket.port=15087
+#设置netty的websocket端口--pc端连接使用端口
+com.jubotech.netty.websocket.port=15088
+
+!!!!!!!!!!!超强提示,别搞错了!!!!!!!!!!!
+1、手机端连续点击 当前wx版本  修改连接服务端的ip和端口
+2、Pc端修改源码中的对应ip和端口即可
+3、局域网调试要保证手机端和服务端在同一个局域网环境

+ 303 - 0
src/database/workchat.sql

@@ -0,0 +1,303 @@
+
+-- ----------------------------
+-- Table structure for tbl_accountinfo
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_accountinfo`;
+CREATE TABLE `tbl_accountinfo` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '账号id',
+  `account` varchar(255) DEFAULT NULL COMMENT '账号',
+  `password` varchar(255) DEFAULT NULL COMMENT '密码',
+  `nickname` varchar(255) DEFAULT NULL COMMENT '昵称(中文显示名)',
+  `type` varchar(255) DEFAULT NULL COMMENT '账号类型(-1:超级用户,0:管理员;1:操作员,可登录客户端,运营后台暂时没有权限)(类型后续可扩展)',
+  `cid` int(11) DEFAULT NULL COMMENT '所属的客户id',
+  `state` int(11) DEFAULT '1' COMMENT '当前账号状态1正常2禁用',
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `account` (`account`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='账号表';
+
+-- ----------------------------
+-- Records of tbl_accountinfo
+-- ----------------------------
+INSERT INTO `tbl_accountinfo` VALUES ('1', 'root', '123456', 'admin', '-1', null, '1', '2019-03-11 09:49:24');
+INSERT INTO `tbl_accountinfo` VALUES ('5', 'admin', '123456', 'admin', '0', '7', '1', '2019-03-11 09:49:24');
+INSERT INTO `tbl_accountinfo` VALUES ('6', 'pctest', '123456', 'pctest', '1', '7', '1', '2019-03-11 09:49:22');
+
+-- ----------------------------
+-- Table structure for tbl_commontaginfo
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_commontaginfo`;
+CREATE TABLE `tbl_commontaginfo` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '标签名称',
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COMMENT='标签表';
+
+-- ----------------------------
+-- Records of tbl_commontaginfo
+-- ----------------------------
+INSERT INTO `tbl_commontaginfo` VALUES ('5', '7', '潜在客户', '2019-03-07 17:40:18');
+INSERT INTO `tbl_commontaginfo` VALUES ('6', '7', '想打他', '2019-03-14 17:54:30');
+
+-- ----------------------------
+-- Table structure for tbl_commonterminfo
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_commonterminfo`;
+CREATE TABLE `tbl_commonterminfo` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `tid` int(11) DEFAULT NULL COMMENT '术语分类id',
+  `ctype` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '类型',
+  `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '标题',
+  `content` varchar(512) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '内容',
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='术语表';
+
+-- ----------------------------
+-- Records of tbl_commonterminfo
+-- ----------------------------
+INSERT INTO `tbl_commonterminfo` VALUES ('18', '7', '8', '1', '文字', 'SDK方案咨询请加微信happybabby110', '2021-11-26 10:35:13');
+INSERT INTO `tbl_commonterminfo` VALUES ('20', '7', '8', '4', '语音文件', 'http://www.yunlauncher.com/files/weixin/amr.amr', '2021-11-26 10:30:36');
+INSERT INTO `tbl_commonterminfo` VALUES ('21', '7', '8', '3', '视频文件', 'http://www.yunlauncher.com/files/weixin/mp4.mp4', '2021-11-26 10:30:41');
+INSERT INTO `tbl_commonterminfo` VALUES ('22', '7', '8', '2', '图片', 'http://www.yunlauncher.com/files/weixin/tu.jpg', '2021-11-26 10:35:10');
+
+-- ----------------------------
+-- Table structure for tbl_commontermtype
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_commontermtype`;
+CREATE TABLE `tbl_commontermtype` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '术语分类名称',
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4  COMMENT='术语分组表';
+
+-- ----------------------------
+-- Records of tbl_commontermtype
+-- ----------------------------
+INSERT INTO `tbl_commontermtype` VALUES ('8', '7', '常用语', '2020-09-01 11:52:05');
+
+-- ----------------------------
+-- Table structure for tbl_customerinfo
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_customerinfo`;
+CREATE TABLE `tbl_customerinfo` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'SupplierId  UnionId,客户id',
+  `suppliername` varchar(255) DEFAULT NULL COMMENT '客户名称(中文显示名)',
+  `account_num` int(11) DEFAULT NULL COMMENT '最大账号(操作员)数量(依客户等级而定)',
+  `device_num` int(11) DEFAULT NULL COMMENT '最大设备数量(依客户等级而定)',
+  `validity` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '服务期限',
+  `state` int(11) DEFAULT NULL COMMENT '当前客户状态',
+  `admin` varchar(255) DEFAULT NULL COMMENT '管理员账号',
+  `contact` varchar(255) DEFAULT NULL COMMENT '联系人姓名',
+  `phone` varchar(255) DEFAULT NULL COMMENT '联系人电话',
+  `description` varchar(255) DEFAULT NULL COMMENT '备注信息',
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='客户表';
+
+-- ----------------------------
+-- Records of tbl_customerinfo
+-- ----------------------------
+INSERT INTO `tbl_customerinfo` VALUES ('7', '售后客服部', '100', '1000', '2018-09-20 14:52:47', '1', 'admin', 'admin', '', '', '2018-09-20 14:52:47');
+
+-- ----------------------------
+-- Table structure for tbl_resources
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_resources`;
+CREATE TABLE `tbl_resources` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `type` varchar(512) DEFAULT NULL COMMENT '资源类型',
+  `remarks` varchar(512) DEFAULT NULL COMMENT '备注',
+  `content` text COMMENT '资源数据',
+  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='素材资源库';
+
+
+-- ----------------------------
+-- Table structure for tbl_sys_autosettings
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_sys_autosettings`;
+CREATE TABLE `tbl_sys_autosettings` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `cid` int(11) DEFAULT NULL,
+  `state` int(11) DEFAULT NULL,
+  `auto_type` int(11) DEFAULT NULL,
+  `wechatid` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
+  `create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4  COMMENT='自动开关表';
+
+-- ----------------------------
+-- Records of tbl_sys_autosettings
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for tbl_timetask
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_timetask`;
+CREATE TABLE `tbl_timetask` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `accountid` int(11) DEFAULT NULL COMMENT '操作员id',
+  `wechatid` varchar(255) DEFAULT NULL,
+  `cid` int(11) DEFAULT NULL,
+  `tasktype` int(11) DEFAULT NULL COMMENT '任务类型1群发消息2发朋友圈',
+  `state` int(11) DEFAULT '1' COMMENT '状态1开启中0已完成',
+  `execute_time` varchar(255) DEFAULT NULL COMMENT '执行时间',
+  `restype` int(11) DEFAULT NULL COMMENT '资源类型',
+  `content` text CHARACTER SET utf8mb4 COMMENT '文案内容',
+  `comment` varchar(255) DEFAULT NULL COMMENT '评论',
+  `remarks` varchar(1024) DEFAULT NULL COMMENT '备注',
+  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  `create_time` datetime DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务表';
+
+
+-- ----------------------------
+-- Table structure for tbl_timetask_details
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_timetask_details`;
+CREATE TABLE `tbl_timetask_details` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `tid` int(11) DEFAULT NULL COMMENT '主任务id',
+  `json_content` text CHARACTER SET utf8mb4  COMMENT '序列化的json字符串',
+  `execute_time` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '子任务执行时间',
+  `state` int(11) DEFAULT '1' COMMENT '执行状态1未执行   0已执行',
+  `results` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COMMENT='子任务表';
+
+
+-- ----------------------------
+-- Table structure for tbl_wx_accountinfo
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_wx_accountinfo`;
+CREATE TABLE `tbl_wx_accountinfo` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `wxid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '微信id',
+  `name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '微信昵称',
+  `alias` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '微信别称',
+  `gender` int(11) DEFAULT NULL COMMENT '性别',
+  `avatar` varchar(512) CHARACTER SET utf8 DEFAULT NULL COMMENT '头像url',
+  `job` varchar(512) CHARACTER SET utf8 DEFAULT NULL COMMENT '职位',
+  `phone` varchar(512) CHARACTER SET utf8 DEFAULT NULL COMMENT '电话号码',
+  `corpid` varchar(512) CHARACTER SET utf8 DEFAULT NULL COMMENT '公司ID',
+  `attr` varchar(512) CHARACTER SET utf8 DEFAULT NULL COMMENT '属性备用',
+  `isonline` int(11) DEFAULT '1' COMMENT '是否在线   0上线   1下线',
+  `deviceid` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '微信登陆的设备',
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `devnickname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '设备昵称',
+  `brand` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机品牌',
+  `module` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机型号',
+  `accountid` int(11) DEFAULT NULL COMMENT 'Pc客户端正在操作该微信的操作员账号id',
+  `login_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  `modify_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `deviceid_wechatid` (`deviceid`,`wxid`) USING BTREE,
+  UNIQUE KEY `deviceid` (`deviceid`) USING BTREE,
+  UNIQUE KEY `wxid` (`wxid`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=172 DEFAULT CHARSET=utf8mb4 COMMENT='微信账号表';
+
+
+
+-- ----------------------------
+-- Table structure for tbl_wx_keywords
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_wx_keywords`;
+CREATE TABLE `tbl_wx_keywords` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `wechatid` varchar(255) DEFAULT NULL COMMENT '微信id',
+  `key_type` int(4) DEFAULT '0' COMMENT '匹配类型 0精准完全匹配  1模糊包含匹配',
+  `key_word` varchar(255) DEFAULT NULL COMMENT '关键词',
+  `resource_type` int(4) COMMENT '资源类型 与消息类型一致',
+  `return_string` varchar(5000) DEFAULT NULL COMMENT '回复词',
+  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8mb4  COMMENT='关键词匹配';
+
+
+-- ----------------------------
+-- Table structure for tbl_sys_autosettings
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_sys_autosettings`;
+CREATE TABLE `tbl_sys_autosettings` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `cid` int(11) DEFAULT NULL,
+  `state` int(11) DEFAULT NULL,
+  `auto_type` int(11) DEFAULT NULL,
+  `wechatid` varchar(255) DEFAULT NULL,
+  `remarks` varchar(500) DEFAULT NULL COMMENT '备注',
+  `create_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8mb4  COMMENT='自动配置表';
+
+
+-- ----------------------------
+-- Table structure for tbl_wx_message
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_wx_message`;
+CREATE TABLE `tbl_wx_message` (
+  `id` int NOT NULL AUTO_INCREMENT,
+  `cid` int DEFAULT NULL,
+  `WxId` bigint DEFAULT NULL,
+  `ConvId` bigint DEFAULT NULL,
+  `SenderId` bigint DEFAULT NULL,
+  `ContentType` varchar(255) DEFAULT NULL,
+  `Content` text,
+  `MsgId` bigint DEFAULT NULL,
+  `MsgRemoteId` bigint DEFAULT NULL,
+  `CreateTime` bigint DEFAULT NULL,
+  `SenderName` varchar(255) DEFAULT NULL,
+  `RefId` bigint DEFAULT NULL,
+  `isSend` varchar(255) DEFAULT NULL,
+  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4  COMMENT='聊天消息表';
+
+
+-- ----------------------------
+-- Table structure for tbl_wx_label_chatroom
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_wx_label_chatroom`;
+CREATE TABLE `tbl_wx_label_chatroom` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `cid` int DEFAULT NULL COMMENT '客户id',
+  `wechatid` varchar(255) DEFAULT NULL COMMENT '微信id',
+  `labelid` varchar(255) DEFAULT '0' COMMENT '标签ID',
+  `chatroomid` varchar(255) DEFAULT NULL COMMENT '群id',
+  `chatroomsize` int DEFAULT NULL COMMENT '群成员数量',
+  `remark` varchar(500) DEFAULT NULL COMMENT '备用字段',
+  `wxremark` varchar(500) DEFAULT NULL,
+  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=1059 DEFAULT CHARSET=utf8mb4  COMMENT='标签群对应表';
+
+
+-- ----------------------------
+-- Table structure for tbl_wx_messagetag
+-- ----------------------------
+DROP TABLE IF EXISTS `tbl_wx_messagetag`;
+CREATE TABLE `tbl_wx_messagetag` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `cid` int(11) DEFAULT NULL COMMENT '客户id',
+  `type` varchar(128) DEFAULT NULL COMMENT '资源类型',
+  `wechatid` varchar(128) DEFAULT NULL COMMENT '微信id',
+  `friendwechatid` varchar(128) DEFAULT NULL COMMENT '好友id',
+  `msgserverid` varchar(128) DEFAULT NULL COMMENT '消息唯一id',
+  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `cid` (`cid`,`type`,`wechatid`,`friendwechatid`,`msgserverid`)
+) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='消息标识临时表';
+
+
+

BIN
src/lib/similarity-1.1.6.jar


+ 714 - 0
src/main/java/Im/Scrm/Ww/Proto/WAcceptCustomerTask.java

@@ -0,0 +1,714 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAcceptCustomerTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAcceptCustomerTask {
+  private WAcceptCustomerTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AcceptCustomerTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 联系人id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage}
+   */
+  public  static final class AcceptCustomerTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage)
+      AcceptCustomerTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AcceptCustomerTaskMessage.newBuilder() to construct.
+    private AcceptCustomerTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AcceptCustomerTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AcceptCustomerTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AcceptCustomerTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAcceptCustomerTask.internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAcceptCustomerTask.internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.class, Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 联系人id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage other = (Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage)
+        Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAcceptCustomerTask.internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAcceptCustomerTask.internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.class, Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAcceptCustomerTask.internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage build() {
+        Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage result = new Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AcceptCustomerTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AcceptCustomerTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AcceptCustomerTaskMessage>() {
+      @java.lang.Override
+      public AcceptCustomerTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AcceptCustomerTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AcceptCustomerTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AcceptCustomerTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAcceptCustomerTask.AcceptCustomerTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031WAcceptCustomerTask.proto\022\020Im.Scrm.Ww." +
+      "Proto\"K\n\031AcceptCustomerTaskMessage\022\014\n\004Wx" +
+      "Id\030\001 \001(\003\022\020\n\010RemoteId\030\002 \001(\003\022\016\n\006TaskId\030\003 \001" +
+      "(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AcceptCustomerTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 885 - 0
src/main/java/Im/Scrm/Ww/Proto/WAccountForceOfflineNotice.java

@@ -0,0 +1,885 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAccountForceOfflineNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAccountForceOfflineNotice {
+  private WAccountForceOfflineNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AccountForceOfflineNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *被强制下线的原因
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+     * @return The enum numeric value on the wire for reason.
+     */
+    int getReasonValue();
+    /**
+     * <pre>
+     *被强制下线的原因
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+     * @return The reason.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason getReason();
+
+    /**
+     * <pre>
+     *补充文字描述
+     * </pre>
+     *
+     * <code>string Message = 2;</code>
+     * @return The message.
+     */
+    java.lang.String getMessage();
+    /**
+     * <pre>
+     *补充文字描述
+     * </pre>
+     *
+     * <code>string Message = 2;</code>
+     * @return The bytes for message.
+     */
+    com.google.protobuf.ByteString
+        getMessageBytes();
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 3;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage}
+   */
+  public  static final class AccountForceOfflineNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage)
+      AccountForceOfflineNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AccountForceOfflineNoticeMessage.newBuilder() to construct.
+    private AccountForceOfflineNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AccountForceOfflineNoticeMessage() {
+      reason_ = 0;
+      message_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AccountForceOfflineNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AccountForceOfflineNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              int rawValue = input.readEnum();
+
+              reason_ = rawValue;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              message_ = s;
+              break;
+            }
+            case 24: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.class, Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.Builder.class);
+    }
+
+    public static final int REASON_FIELD_NUMBER = 1;
+    private int reason_;
+    /**
+     * <pre>
+     *被强制下线的原因
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+     * @return The enum numeric value on the wire for reason.
+     */
+    public int getReasonValue() {
+      return reason_;
+    }
+    /**
+     * <pre>
+     *被强制下线的原因
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+     * @return The reason.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason getReason() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason result = Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason.valueOf(reason_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason.UNRECOGNIZED : result;
+    }
+
+    public static final int MESSAGE_FIELD_NUMBER = 2;
+    private volatile java.lang.Object message_;
+    /**
+     * <pre>
+     *补充文字描述
+     * </pre>
+     *
+     * <code>string Message = 2;</code>
+     * @return The message.
+     */
+    public java.lang.String getMessage() {
+      java.lang.Object ref = message_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        message_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *补充文字描述
+     * </pre>
+     *
+     * <code>string Message = 2;</code>
+     * @return The bytes for message.
+     */
+    public com.google.protobuf.ByteString
+        getMessageBytes() {
+      java.lang.Object ref = message_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        message_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int WXID_FIELD_NUMBER = 3;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 3;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (reason_ != Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason.NoReason.getNumber()) {
+        output.writeEnum(1, reason_);
+      }
+      if (!getMessageBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
+      }
+      if (wxId_ != 0L) {
+        output.writeInt64(3, wxId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (reason_ != Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason.NoReason.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, reason_);
+      }
+      if (!getMessageBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
+      }
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, wxId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage other = (Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage) obj;
+
+      if (reason_ != other.reason_) return false;
+      if (!getMessage()
+          .equals(other.getMessage())) return false;
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + REASON_FIELD_NUMBER;
+      hash = (53 * hash) + reason_;
+      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
+      hash = (53 * hash) + getMessage().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage)
+        Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.class, Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        reason_ = 0;
+
+        message_ = "";
+
+        wxId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage result = new Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage(this);
+        result.reason_ = reason_;
+        result.message_ = message_;
+        result.wxId_ = wxId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage.getDefaultInstance()) return this;
+        if (other.reason_ != 0) {
+          setReasonValue(other.getReasonValue());
+        }
+        if (!other.getMessage().isEmpty()) {
+          message_ = other.message_;
+          onChanged();
+        }
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int reason_ = 0;
+      /**
+       * <pre>
+       *被强制下线的原因
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+       * @return The enum numeric value on the wire for reason.
+       */
+      public int getReasonValue() {
+        return reason_;
+      }
+      /**
+       * <pre>
+       *被强制下线的原因
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+       * @param value The enum numeric value on the wire for reason to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReasonValue(int value) {
+        reason_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *被强制下线的原因
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+       * @return The reason.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason getReason() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason result = Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason.valueOf(reason_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       *被强制下线的原因
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+       * @param value The reason to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReason(Im.Scrm.Ww.Proto.WTransport.EnumForceOfflineReason value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        reason_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *被强制下线的原因
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumForceOfflineReason Reason = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReason() {
+        
+        reason_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object message_ = "";
+      /**
+       * <pre>
+       *补充文字描述
+       * </pre>
+       *
+       * <code>string Message = 2;</code>
+       * @return The message.
+       */
+      public java.lang.String getMessage() {
+        java.lang.Object ref = message_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          message_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *补充文字描述
+       * </pre>
+       *
+       * <code>string Message = 2;</code>
+       * @return The bytes for message.
+       */
+      public com.google.protobuf.ByteString
+          getMessageBytes() {
+        java.lang.Object ref = message_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          message_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *补充文字描述
+       * </pre>
+       *
+       * <code>string Message = 2;</code>
+       * @param value The message to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMessage(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        message_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *补充文字描述
+       * </pre>
+       *
+       * <code>string Message = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMessage() {
+        
+        message_ = getDefaultInstance().getMessage();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *补充文字描述
+       * </pre>
+       *
+       * <code>string Message = 2;</code>
+       * @param value The bytes for message to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMessageBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        message_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 3;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 3;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AccountForceOfflineNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AccountForceOfflineNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AccountForceOfflineNoticeMessage>() {
+      @java.lang.Override
+      public AccountForceOfflineNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AccountForceOfflineNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AccountForceOfflineNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AccountForceOfflineNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAccountForceOfflineNotice.AccountForceOfflineNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n WAccountForceOfflineNotice.proto\022\020Im.S" +
+      "crm.Ww.Proto\032\020WTransport.proto\"{\n Accoun" +
+      "tForceOfflineNoticeMessage\0228\n\006Reason\030\001 \001" +
+      "(\0162(.Im.Scrm.Ww.Proto.EnumForceOfflineRe" +
+      "ason\022\017\n\007Message\030\002 \001(\t\022\014\n\004WxId\030\003 \001(\003b\006pro" +
+      "to3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AccountForceOfflineNoticeMessage_descriptor,
+        new java.lang.String[] { "Reason", "Message", "WxId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1331 - 0
src/main/java/Im/Scrm/Ww/Proto/WAddCustomerByGroupTask.java

@@ -0,0 +1,1331 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAddCustomerByGroupTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAddCustomerByGroupTask {
+  private WAddCustomerByGroupTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AddCustomerByGroupTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 搜索关键字
+     * </pre>
+     *
+     * <code>int64 GroupId = 2;</code>
+     * @return The groupId.
+     */
+    long getGroupId();
+
+    /**
+     * <code>int64 RemoteId = 3;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The msg.
+     */
+    java.lang.String getMsg();
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The bytes for msg.
+     */
+    com.google.protobuf.ByteString
+        getMsgBytes();
+
+    /**
+     * <code>string Memo = 5;</code>
+     * @return The memo.
+     */
+    java.lang.String getMemo();
+    /**
+     * <code>string Memo = 5;</code>
+     * @return The bytes for memo.
+     */
+    com.google.protobuf.ByteString
+        getMemoBytes();
+
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @return A list containing the labels.
+     */
+    java.util.List<java.lang.String>
+        getLabelsList();
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @return The count of labels.
+     */
+    int getLabelsCount();
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @param index The index of the element to return.
+     * @return The labels at the given index.
+     */
+    java.lang.String getLabels(int index);
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the labels at the given index.
+     */
+    com.google.protobuf.ByteString
+        getLabelsBytes(int index);
+
+    /**
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage}
+   */
+  public  static final class AddCustomerByGroupTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage)
+      AddCustomerByGroupTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AddCustomerByGroupTaskMessage.newBuilder() to construct.
+    private AddCustomerByGroupTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AddCustomerByGroupTaskMessage() {
+      msg_ = "";
+      memo_ = "";
+      labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AddCustomerByGroupTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AddCustomerByGroupTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              groupId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              msg_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              memo_ = s;
+              break;
+            }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                labels_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              labels_.add(s);
+              break;
+            }
+            case 56: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          labels_ = labels_.getUnmodifiableView();
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int GROUPID_FIELD_NUMBER = 2;
+    private long groupId_;
+    /**
+     * <pre>
+     * 搜索关键字
+     * </pre>
+     *
+     * <code>int64 GroupId = 2;</code>
+     * @return The groupId.
+     */
+    public long getGroupId() {
+      return groupId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 3;
+    private long remoteId_;
+    /**
+     * <code>int64 RemoteId = 3;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int MSG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object msg_;
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The msg.
+     */
+    public java.lang.String getMsg() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        msg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The bytes for msg.
+     */
+    public com.google.protobuf.ByteString
+        getMsgBytes() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        msg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MEMO_FIELD_NUMBER = 5;
+    private volatile java.lang.Object memo_;
+    /**
+     * <code>string Memo = 5;</code>
+     * @return The memo.
+     */
+    public java.lang.String getMemo() {
+      java.lang.Object ref = memo_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        memo_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Memo = 5;</code>
+     * @return The bytes for memo.
+     */
+    public com.google.protobuf.ByteString
+        getMemoBytes() {
+      java.lang.Object ref = memo_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        memo_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int LABELS_FIELD_NUMBER = 6;
+    private com.google.protobuf.LazyStringList labels_;
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @return A list containing the labels.
+     */
+    public com.google.protobuf.ProtocolStringList
+        getLabelsList() {
+      return labels_;
+    }
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @return The count of labels.
+     */
+    public int getLabelsCount() {
+      return labels_.size();
+    }
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @param index The index of the element to return.
+     * @return The labels at the given index.
+     */
+    public java.lang.String getLabels(int index) {
+      return labels_.get(index);
+    }
+    /**
+     * <code>repeated string Labels = 6;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the labels at the given index.
+     */
+    public com.google.protobuf.ByteString
+        getLabelsBytes(int index) {
+      return labels_.getByteString(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 7;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (groupId_ != 0L) {
+        output.writeInt64(2, groupId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(3, remoteId_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, msg_);
+      }
+      if (!getMemoBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, memo_);
+      }
+      for (int i = 0; i < labels_.size(); i++) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, labels_.getRaw(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(7, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (groupId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, groupId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, remoteId_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, msg_);
+      }
+      if (!getMemoBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, memo_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < labels_.size(); i++) {
+          dataSize += computeStringSizeNoTag(labels_.getRaw(i));
+        }
+        size += dataSize;
+        size += 1 * getLabelsList().size();
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage other = (Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getGroupId()
+          != other.getGroupId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getMsg()
+          .equals(other.getMsg())) return false;
+      if (!getMemo()
+          .equals(other.getMemo())) return false;
+      if (!getLabelsList()
+          .equals(other.getLabelsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + GROUPID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getGroupId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + MSG_FIELD_NUMBER;
+      hash = (53 * hash) + getMsg().hashCode();
+      hash = (37 * hash) + MEMO_FIELD_NUMBER;
+      hash = (53 * hash) + getMemo().hashCode();
+      if (getLabelsCount() > 0) {
+        hash = (37 * hash) + LABELS_FIELD_NUMBER;
+        hash = (53 * hash) + getLabelsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage)
+        Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        groupId_ = 0L;
+
+        remoteId_ = 0L;
+
+        msg_ = "";
+
+        memo_ = "";
+
+        labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage build() {
+        Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage result = new Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.groupId_ = groupId_;
+        result.remoteId_ = remoteId_;
+        result.msg_ = msg_;
+        result.memo_ = memo_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          labels_ = labels_.getUnmodifiableView();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.labels_ = labels_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getGroupId() != 0L) {
+          setGroupId(other.getGroupId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getMsg().isEmpty()) {
+          msg_ = other.msg_;
+          onChanged();
+        }
+        if (!other.getMemo().isEmpty()) {
+          memo_ = other.memo_;
+          onChanged();
+        }
+        if (!other.labels_.isEmpty()) {
+          if (labels_.isEmpty()) {
+            labels_ = other.labels_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureLabelsIsMutable();
+            labels_.addAll(other.labels_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long groupId_ ;
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>int64 GroupId = 2;</code>
+       * @return The groupId.
+       */
+      public long getGroupId() {
+        return groupId_;
+      }
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>int64 GroupId = 2;</code>
+       * @param value The groupId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGroupId(long value) {
+        
+        groupId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>int64 GroupId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearGroupId() {
+        
+        groupId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <code>int64 RemoteId = 3;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <code>int64 RemoteId = 3;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 RemoteId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object msg_ = "";
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @return The msg.
+       */
+      public java.lang.String getMsg() {
+        java.lang.Object ref = msg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          msg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @return The bytes for msg.
+       */
+      public com.google.protobuf.ByteString
+          getMsgBytes() {
+        java.lang.Object ref = msg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          msg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @param value The msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsg() {
+        
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @param value The bytes for msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object memo_ = "";
+      /**
+       * <code>string Memo = 5;</code>
+       * @return The memo.
+       */
+      public java.lang.String getMemo() {
+        java.lang.Object ref = memo_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          memo_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Memo = 5;</code>
+       * @return The bytes for memo.
+       */
+      public com.google.protobuf.ByteString
+          getMemoBytes() {
+        java.lang.Object ref = memo_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          memo_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Memo = 5;</code>
+       * @param value The memo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemo(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        memo_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Memo = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMemo() {
+        
+        memo_ = getDefaultInstance().getMemo();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Memo = 5;</code>
+       * @param value The bytes for memo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemoBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        memo_ = value;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.LazyStringList labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureLabelsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          labels_ = new com.google.protobuf.LazyStringArrayList(labels_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @return A list containing the labels.
+       */
+      public com.google.protobuf.ProtocolStringList
+          getLabelsList() {
+        return labels_.getUnmodifiableView();
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @return The count of labels.
+       */
+      public int getLabelsCount() {
+        return labels_.size();
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @param index The index of the element to return.
+       * @return The labels at the given index.
+       */
+      public java.lang.String getLabels(int index) {
+        return labels_.get(index);
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @param index The index of the value to return.
+       * @return The bytes of the labels at the given index.
+       */
+      public com.google.protobuf.ByteString
+          getLabelsBytes(int index) {
+        return labels_.getByteString(index);
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @param index The index to set the value at.
+       * @param value The labels to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLabels(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureLabelsIsMutable();
+        labels_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @param value The labels to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLabels(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureLabelsIsMutable();
+        labels_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @param values The labels to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllLabels(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureLabelsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, labels_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLabels() {
+        labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 6;</code>
+       * @param value The bytes of the labels to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLabelsBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        ensureLabelsIsMutable();
+        labels_.add(value);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 7;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 7;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AddCustomerByGroupTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AddCustomerByGroupTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AddCustomerByGroupTaskMessage>() {
+      @java.lang.Override
+      public AddCustomerByGroupTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AddCustomerByGroupTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AddCustomerByGroupTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AddCustomerByGroupTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAddCustomerByGroupTask.AddCustomerByGroupTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WAddCustomerByGroupTask.proto\022\020Im.Scrm" +
+      ".Ww.Proto\"\213\001\n\035AddCustomerByGroupTaskMess" +
+      "age\022\014\n\004WxId\030\001 \001(\003\022\017\n\007GroupId\030\002 \001(\003\022\020\n\010Re" +
+      "moteId\030\003 \001(\003\022\013\n\003Msg\030\004 \001(\t\022\014\n\004Memo\030\005 \001(\t\022" +
+      "\016\n\006Labels\030\006 \003(\t\022\016\n\006TaskId\030\007 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AddCustomerByGroupTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "GroupId", "RemoteId", "Msg", "Memo", "Labels", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1092 - 0
src/main/java/Im/Scrm/Ww/Proto/WAddCustomerByIdTask.java

@@ -0,0 +1,1092 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAddCustomerByIdTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAddCustomerByIdTask {
+  private WAddCustomerByIdTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AddCustomerByIdTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @return A list containing the ids.
+     */
+    java.util.List<java.lang.String>
+        getIdsList();
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @return The count of ids.
+     */
+    int getIdsCount();
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @param index The index of the element to return.
+     * @return The ids at the given index.
+     */
+    java.lang.String getIds(int index);
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the ids at the given index.
+     */
+    com.google.protobuf.ByteString
+        getIdsBytes(int index);
+
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The msg.
+     */
+    java.lang.String getMsg();
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The bytes for msg.
+     */
+    com.google.protobuf.ByteString
+        getMsgBytes();
+
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage}
+   */
+  public  static final class AddCustomerByIdTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage)
+      AddCustomerByIdTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AddCustomerByIdTaskMessage.newBuilder() to construct.
+    private AddCustomerByIdTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AddCustomerByIdTaskMessage() {
+      ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      msg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AddCustomerByIdTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AddCustomerByIdTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                ids_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              ids_.add(s);
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              msg_ = s;
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          ids_ = ids_.getUnmodifiableView();
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAddCustomerByIdTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAddCustomerByIdTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IDS_FIELD_NUMBER = 2;
+    private com.google.protobuf.LazyStringList ids_;
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @return A list containing the ids.
+     */
+    public com.google.protobuf.ProtocolStringList
+        getIdsList() {
+      return ids_;
+    }
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @return The count of ids.
+     */
+    public int getIdsCount() {
+      return ids_.size();
+    }
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @param index The index of the element to return.
+     * @return The ids at the given index.
+     */
+    public java.lang.String getIds(int index) {
+      return ids_.get(index);
+    }
+    /**
+     * <pre>
+     * 微信好友OpenId列表
+     * </pre>
+     *
+     * <code>repeated string Ids = 2;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the ids at the given index.
+     */
+    public com.google.protobuf.ByteString
+        getIdsBytes(int index) {
+      return ids_.getByteString(index);
+    }
+
+    public static final int MSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object msg_;
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The msg.
+     */
+    public java.lang.String getMsg() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        msg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The bytes for msg.
+     */
+    public com.google.protobuf.ByteString
+        getMsgBytes() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        msg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < ids_.size(); i++) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ids_.getRaw(i));
+      }
+      if (!getMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, msg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < ids_.size(); i++) {
+          dataSize += computeStringSizeNoTag(ids_.getRaw(i));
+        }
+        size += dataSize;
+        size += 1 * getIdsList().size();
+      }
+      if (!getMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, msg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage other = (Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getIdsList()
+          .equals(other.getIdsList())) return false;
+      if (!getMsg()
+          .equals(other.getMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getIdsCount() > 0) {
+        hash = (37 * hash) + IDS_FIELD_NUMBER;
+        hash = (53 * hash) + getIdsList().hashCode();
+      }
+      hash = (37 * hash) + MSG_FIELD_NUMBER;
+      hash = (53 * hash) + getMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage)
+        Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByIdTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByIdTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        msg_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByIdTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage build() {
+        Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage result = new Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          ids_ = ids_.getUnmodifiableView();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.ids_ = ids_;
+        result.msg_ = msg_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.ids_.isEmpty()) {
+          if (ids_.isEmpty()) {
+            ids_ = other.ids_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureIdsIsMutable();
+            ids_.addAll(other.ids_);
+          }
+          onChanged();
+        }
+        if (!other.getMsg().isEmpty()) {
+          msg_ = other.msg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.LazyStringList ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          ids_ = new com.google.protobuf.LazyStringArrayList(ids_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @return A list containing the ids.
+       */
+      public com.google.protobuf.ProtocolStringList
+          getIdsList() {
+        return ids_.getUnmodifiableView();
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @return The count of ids.
+       */
+      public int getIdsCount() {
+        return ids_.size();
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @param index The index of the element to return.
+       * @return The ids at the given index.
+       */
+      public java.lang.String getIds(int index) {
+        return ids_.get(index);
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @param index The index of the value to return.
+       * @return The bytes of the ids at the given index.
+       */
+      public com.google.protobuf.ByteString
+          getIdsBytes(int index) {
+        return ids_.getByteString(index);
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @param index The index to set the value at.
+       * @param value The ids to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIds(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureIdsIsMutable();
+        ids_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @param value The ids to add.
+       * @return This builder for chaining.
+       */
+      public Builder addIds(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureIdsIsMutable();
+        ids_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @param values The ids to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllIds(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, ids_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIds() {
+        ids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信好友OpenId列表
+       * </pre>
+       *
+       * <code>repeated string Ids = 2;</code>
+       * @param value The bytes of the ids to add.
+       * @return This builder for chaining.
+       */
+      public Builder addIdsBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        ensureIdsIsMutable();
+        ids_.add(value);
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object msg_ = "";
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return The msg.
+       */
+      public java.lang.String getMsg() {
+        java.lang.Object ref = msg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          msg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return The bytes for msg.
+       */
+      public com.google.protobuf.ByteString
+          getMsgBytes() {
+        java.lang.Object ref = msg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          msg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @param value The msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsg() {
+        
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @param value The bytes for msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AddCustomerByIdTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AddCustomerByIdTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AddCustomerByIdTaskMessage>() {
+      @java.lang.Override
+      public AddCustomerByIdTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AddCustomerByIdTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AddCustomerByIdTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AddCustomerByIdTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAddCustomerByIdTask.AddCustomerByIdTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\032WAddCustomerByIdTask.proto\022\020Im.Scrm.Ww" +
+      ".Proto\"T\n\032AddCustomerByIdTaskMessage\022\014\n\004" +
+      "WxId\030\001 \001(\003\022\013\n\003Ids\030\002 \003(\t\022\013\n\003Msg\030\003 \001(\t\022\016\n\006" +
+      "TaskId\030\005 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AddCustomerByIdTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Ids", "Msg", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1427 - 0
src/main/java/Im/Scrm/Ww/Proto/WAddCustomerFromSearchTask.java

@@ -0,0 +1,1427 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAddCustomerFromSearchTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAddCustomerFromSearchTask {
+  private WAddCustomerFromSearchTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AddCustomerFromSearchTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 搜索关键字
+     * </pre>
+     *
+     * <code>string Key = 2;</code>
+     * @return The key.
+     */
+    java.lang.String getKey();
+    /**
+     * <pre>
+     * 搜索关键字
+     * </pre>
+     *
+     * <code>string Key = 2;</code>
+     * @return The bytes for key.
+     */
+    com.google.protobuf.ByteString
+        getKeyBytes();
+
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The msg.
+     */
+    java.lang.String getMsg();
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The bytes for msg.
+     */
+    com.google.protobuf.ByteString
+        getMsgBytes();
+
+    /**
+     * <code>string Memo = 4;</code>
+     * @return The memo.
+     */
+    java.lang.String getMemo();
+    /**
+     * <code>string Memo = 4;</code>
+     * @return The bytes for memo.
+     */
+    com.google.protobuf.ByteString
+        getMemoBytes();
+
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @return A list containing the labels.
+     */
+    java.util.List<java.lang.String>
+        getLabelsList();
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @return The count of labels.
+     */
+    int getLabelsCount();
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @param index The index of the element to return.
+     * @return The labels at the given index.
+     */
+    java.lang.String getLabels(int index);
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the labels at the given index.
+     */
+    com.google.protobuf.ByteString
+        getLabelsBytes(int index);
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <code>bool AddByGroup = 7;</code>
+     * @return The addByGroup.
+     */
+    boolean getAddByGroup();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage}
+   */
+  public  static final class AddCustomerFromSearchTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage)
+      AddCustomerFromSearchTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AddCustomerFromSearchTaskMessage.newBuilder() to construct.
+    private AddCustomerFromSearchTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AddCustomerFromSearchTaskMessage() {
+      key_ = "";
+      msg_ = "";
+      memo_ = "";
+      labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AddCustomerFromSearchTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AddCustomerFromSearchTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              key_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              msg_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              memo_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                labels_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              labels_.add(s);
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              addByGroup_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          labels_ = labels_.getUnmodifiableView();
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int KEY_FIELD_NUMBER = 2;
+    private volatile java.lang.Object key_;
+    /**
+     * <pre>
+     * 搜索关键字
+     * </pre>
+     *
+     * <code>string Key = 2;</code>
+     * @return The key.
+     */
+    public java.lang.String getKey() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        key_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 搜索关键字
+     * </pre>
+     *
+     * <code>string Key = 2;</code>
+     * @return The bytes for key.
+     */
+    public com.google.protobuf.ByteString
+        getKeyBytes() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        key_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object msg_;
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The msg.
+     */
+    public java.lang.String getMsg() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        msg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The bytes for msg.
+     */
+    public com.google.protobuf.ByteString
+        getMsgBytes() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        msg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MEMO_FIELD_NUMBER = 4;
+    private volatile java.lang.Object memo_;
+    /**
+     * <code>string Memo = 4;</code>
+     * @return The memo.
+     */
+    public java.lang.String getMemo() {
+      java.lang.Object ref = memo_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        memo_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Memo = 4;</code>
+     * @return The bytes for memo.
+     */
+    public com.google.protobuf.ByteString
+        getMemoBytes() {
+      java.lang.Object ref = memo_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        memo_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int LABELS_FIELD_NUMBER = 5;
+    private com.google.protobuf.LazyStringList labels_;
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @return A list containing the labels.
+     */
+    public com.google.protobuf.ProtocolStringList
+        getLabelsList() {
+      return labels_;
+    }
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @return The count of labels.
+     */
+    public int getLabelsCount() {
+      return labels_.size();
+    }
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @param index The index of the element to return.
+     * @return The labels at the given index.
+     */
+    public java.lang.String getLabels(int index) {
+      return labels_.get(index);
+    }
+    /**
+     * <code>repeated string Labels = 5;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the labels at the given index.
+     */
+    public com.google.protobuf.ByteString
+        getLabelsBytes(int index) {
+      return labels_.getByteString(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int ADDBYGROUP_FIELD_NUMBER = 7;
+    private boolean addByGroup_;
+    /**
+     * <code>bool AddByGroup = 7;</code>
+     * @return The addByGroup.
+     */
+    public boolean getAddByGroup() {
+      return addByGroup_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getKeyBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, key_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, msg_);
+      }
+      if (!getMemoBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, memo_);
+      }
+      for (int i = 0; i < labels_.size(); i++) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, labels_.getRaw(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      if (addByGroup_ != false) {
+        output.writeBool(7, addByGroup_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getKeyBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, key_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, msg_);
+      }
+      if (!getMemoBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, memo_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < labels_.size(); i++) {
+          dataSize += computeStringSizeNoTag(labels_.getRaw(i));
+        }
+        size += dataSize;
+        size += 1 * getLabelsList().size();
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      if (addByGroup_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(7, addByGroup_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage other = (Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getKey()
+          .equals(other.getKey())) return false;
+      if (!getMsg()
+          .equals(other.getMsg())) return false;
+      if (!getMemo()
+          .equals(other.getMemo())) return false;
+      if (!getLabelsList()
+          .equals(other.getLabelsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getAddByGroup()
+          != other.getAddByGroup()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + KEY_FIELD_NUMBER;
+      hash = (53 * hash) + getKey().hashCode();
+      hash = (37 * hash) + MSG_FIELD_NUMBER;
+      hash = (53 * hash) + getMsg().hashCode();
+      hash = (37 * hash) + MEMO_FIELD_NUMBER;
+      hash = (53 * hash) + getMemo().hashCode();
+      if (getLabelsCount() > 0) {
+        hash = (37 * hash) + LABELS_FIELD_NUMBER;
+        hash = (53 * hash) + getLabelsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + ADDBYGROUP_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getAddByGroup());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage)
+        Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        key_ = "";
+
+        msg_ = "";
+
+        memo_ = "";
+
+        labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        taskId_ = 0L;
+
+        addByGroup_ = false;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage build() {
+        Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage result = new Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.key_ = key_;
+        result.msg_ = msg_;
+        result.memo_ = memo_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          labels_ = labels_.getUnmodifiableView();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.labels_ = labels_;
+        result.taskId_ = taskId_;
+        result.addByGroup_ = addByGroup_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getKey().isEmpty()) {
+          key_ = other.key_;
+          onChanged();
+        }
+        if (!other.getMsg().isEmpty()) {
+          msg_ = other.msg_;
+          onChanged();
+        }
+        if (!other.getMemo().isEmpty()) {
+          memo_ = other.memo_;
+          onChanged();
+        }
+        if (!other.labels_.isEmpty()) {
+          if (labels_.isEmpty()) {
+            labels_ = other.labels_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureLabelsIsMutable();
+            labels_.addAll(other.labels_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getAddByGroup() != false) {
+          setAddByGroup(other.getAddByGroup());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object key_ = "";
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>string Key = 2;</code>
+       * @return The key.
+       */
+      public java.lang.String getKey() {
+        java.lang.Object ref = key_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          key_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>string Key = 2;</code>
+       * @return The bytes for key.
+       */
+      public com.google.protobuf.ByteString
+          getKeyBytes() {
+        java.lang.Object ref = key_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          key_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>string Key = 2;</code>
+       * @param value The key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKey(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        key_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>string Key = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearKey() {
+        
+        key_ = getDefaultInstance().getKey();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 搜索关键字
+       * </pre>
+       *
+       * <code>string Key = 2;</code>
+       * @param value The bytes for key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeyBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        key_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object msg_ = "";
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return The msg.
+       */
+      public java.lang.String getMsg() {
+        java.lang.Object ref = msg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          msg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return The bytes for msg.
+       */
+      public com.google.protobuf.ByteString
+          getMsgBytes() {
+        java.lang.Object ref = msg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          msg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @param value The msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsg() {
+        
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @param value The bytes for msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object memo_ = "";
+      /**
+       * <code>string Memo = 4;</code>
+       * @return The memo.
+       */
+      public java.lang.String getMemo() {
+        java.lang.Object ref = memo_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          memo_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Memo = 4;</code>
+       * @return The bytes for memo.
+       */
+      public com.google.protobuf.ByteString
+          getMemoBytes() {
+        java.lang.Object ref = memo_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          memo_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Memo = 4;</code>
+       * @param value The memo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemo(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        memo_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Memo = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMemo() {
+        
+        memo_ = getDefaultInstance().getMemo();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Memo = 4;</code>
+       * @param value The bytes for memo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemoBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        memo_ = value;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.LazyStringList labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureLabelsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          labels_ = new com.google.protobuf.LazyStringArrayList(labels_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @return A list containing the labels.
+       */
+      public com.google.protobuf.ProtocolStringList
+          getLabelsList() {
+        return labels_.getUnmodifiableView();
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @return The count of labels.
+       */
+      public int getLabelsCount() {
+        return labels_.size();
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @param index The index of the element to return.
+       * @return The labels at the given index.
+       */
+      public java.lang.String getLabels(int index) {
+        return labels_.get(index);
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @param index The index of the value to return.
+       * @return The bytes of the labels at the given index.
+       */
+      public com.google.protobuf.ByteString
+          getLabelsBytes(int index) {
+        return labels_.getByteString(index);
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @param index The index to set the value at.
+       * @param value The labels to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLabels(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureLabelsIsMutable();
+        labels_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @param value The labels to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLabels(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureLabelsIsMutable();
+        labels_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @param values The labels to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllLabels(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureLabelsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, labels_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLabels() {
+        labels_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string Labels = 5;</code>
+       * @param value The bytes of the labels to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLabelsBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        ensureLabelsIsMutable();
+        labels_.add(value);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean addByGroup_ ;
+      /**
+       * <code>bool AddByGroup = 7;</code>
+       * @return The addByGroup.
+       */
+      public boolean getAddByGroup() {
+        return addByGroup_;
+      }
+      /**
+       * <code>bool AddByGroup = 7;</code>
+       * @param value The addByGroup to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAddByGroup(boolean value) {
+        
+        addByGroup_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool AddByGroup = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAddByGroup() {
+        
+        addByGroup_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AddCustomerFromSearchTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AddCustomerFromSearchTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AddCustomerFromSearchTaskMessage>() {
+      @java.lang.Override
+      public AddCustomerFromSearchTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AddCustomerFromSearchTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AddCustomerFromSearchTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AddCustomerFromSearchTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAddCustomerFromSearchTask.AddCustomerFromSearchTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n WAddCustomerFromSearchTask.proto\022\020Im.S" +
+      "crm.Ww.Proto\"\214\001\n AddCustomerFromSearchTa" +
+      "skMessage\022\014\n\004WxId\030\001 \001(\003\022\013\n\003Key\030\002 \001(\t\022\013\n\003" +
+      "Msg\030\003 \001(\t\022\014\n\004Memo\030\004 \001(\t\022\016\n\006Labels\030\005 \003(\t\022" +
+      "\016\n\006TaskId\030\006 \001(\003\022\022\n\nAddByGroup\030\007 \001(\010b\006pro" +
+      "to3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AddCustomerFromSearchTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Key", "Msg", "Memo", "Labels", "TaskId", "AddByGroup", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 981 - 0
src/main/java/Im/Scrm/Ww/Proto/WAddCustomerFromWxTask.java

@@ -0,0 +1,981 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAddCustomerFromWxTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAddCustomerFromWxTask {
+  private WAddCustomerFromWxTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AddCustomerFromWxTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 添加的个数
+     * </pre>
+     *
+     * <code>int32 Count = 2;</code>
+     * @return The count.
+     */
+    int getCount();
+
+    /**
+     * <pre>
+     * 添加的起始位置
+     * </pre>
+     *
+     * <code>int32 Index = 3;</code>
+     * @return The index.
+     */
+    int getIndex();
+
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The msg.
+     */
+    java.lang.String getMsg();
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The bytes for msg.
+     */
+    com.google.protobuf.ByteString
+        getMsgBytes();
+
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage}
+   */
+  public  static final class AddCustomerFromWxTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage)
+      AddCustomerFromWxTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AddCustomerFromWxTaskMessage.newBuilder() to construct.
+    private AddCustomerFromWxTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AddCustomerFromWxTaskMessage() {
+      msg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AddCustomerFromWxTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AddCustomerFromWxTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              count_ = input.readInt32();
+              break;
+            }
+            case 24: {
+
+              index_ = input.readInt32();
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              msg_ = s;
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int COUNT_FIELD_NUMBER = 2;
+    private int count_;
+    /**
+     * <pre>
+     * 添加的个数
+     * </pre>
+     *
+     * <code>int32 Count = 2;</code>
+     * @return The count.
+     */
+    public int getCount() {
+      return count_;
+    }
+
+    public static final int INDEX_FIELD_NUMBER = 3;
+    private int index_;
+    /**
+     * <pre>
+     * 添加的起始位置
+     * </pre>
+     *
+     * <code>int32 Index = 3;</code>
+     * @return The index.
+     */
+    public int getIndex() {
+      return index_;
+    }
+
+    public static final int MSG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object msg_;
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The msg.
+     */
+    public java.lang.String getMsg() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        msg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+     * </pre>
+     *
+     * <code>string Msg = 4;</code>
+     * @return The bytes for msg.
+     */
+    public com.google.protobuf.ByteString
+        getMsgBytes() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        msg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (count_ != 0) {
+        output.writeInt32(2, count_);
+      }
+      if (index_ != 0) {
+        output.writeInt32(3, index_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, msg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (count_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, count_);
+      }
+      if (index_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, index_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, msg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage other = (Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getCount()
+          != other.getCount()) return false;
+      if (getIndex()
+          != other.getIndex()) return false;
+      if (!getMsg()
+          .equals(other.getMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCount();
+      hash = (37 * hash) + INDEX_FIELD_NUMBER;
+      hash = (53 * hash) + getIndex();
+      hash = (37 * hash) + MSG_FIELD_NUMBER;
+      hash = (53 * hash) + getMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage)
+        Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.class, Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        count_ = 0;
+
+        index_ = 0;
+
+        msg_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage build() {
+        Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage result = new Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.count_ = count_;
+        result.index_ = index_;
+        result.msg_ = msg_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getCount() != 0) {
+          setCount(other.getCount());
+        }
+        if (other.getIndex() != 0) {
+          setIndex(other.getIndex());
+        }
+        if (!other.getMsg().isEmpty()) {
+          msg_ = other.msg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int count_ ;
+      /**
+       * <pre>
+       * 添加的个数
+       * </pre>
+       *
+       * <code>int32 Count = 2;</code>
+       * @return The count.
+       */
+      public int getCount() {
+        return count_;
+      }
+      /**
+       * <pre>
+       * 添加的个数
+       * </pre>
+       *
+       * <code>int32 Count = 2;</code>
+       * @param value The count to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCount(int value) {
+        
+        count_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 添加的个数
+       * </pre>
+       *
+       * <code>int32 Count = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCount() {
+        
+        count_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int index_ ;
+      /**
+       * <pre>
+       * 添加的起始位置
+       * </pre>
+       *
+       * <code>int32 Index = 3;</code>
+       * @return The index.
+       */
+      public int getIndex() {
+        return index_;
+      }
+      /**
+       * <pre>
+       * 添加的起始位置
+       * </pre>
+       *
+       * <code>int32 Index = 3;</code>
+       * @param value The index to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIndex(int value) {
+        
+        index_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 添加的起始位置
+       * </pre>
+       *
+       * <code>int32 Index = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIndex() {
+        
+        index_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object msg_ = "";
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @return The msg.
+       */
+      public java.lang.String getMsg() {
+        java.lang.Object ref = msg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          msg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @return The bytes for msg.
+       */
+      public com.google.protobuf.ByteString
+          getMsgBytes() {
+        java.lang.Object ref = msg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          msg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @param value The msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsg() {
+        
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语,缺省:你好这是我的企业微信,以后也可以在这里与我联系。
+       * </pre>
+       *
+       * <code>string Msg = 4;</code>
+       * @param value The bytes for msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AddCustomerFromWxTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AddCustomerFromWxTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AddCustomerFromWxTaskMessage>() {
+      @java.lang.Override
+      public AddCustomerFromWxTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AddCustomerFromWxTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AddCustomerFromWxTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AddCustomerFromWxTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAddCustomerFromWxTask.AddCustomerFromWxTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WAddCustomerFromWxTask.proto\022\020Im.Scrm." +
+      "Ww.Proto\"g\n\034AddCustomerFromWxTaskMessage" +
+      "\022\014\n\004WxId\030\001 \001(\003\022\r\n\005Count\030\002 \001(\005\022\r\n\005Index\030\003" +
+      " \001(\005\022\013\n\003Msg\030\004 \001(\t\022\016\n\006TaskId\030\005 \001(\003b\006proto" +
+      "3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AddCustomerFromWxTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Count", "Index", "Msg", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 767 - 0
src/main/java/Im/Scrm/Ww/Proto/WAddEmojiTask.java

@@ -0,0 +1,767 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAddEmojiTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAddEmojiTask {
+  private WAddEmojiTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AddEmojiTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AddEmojiTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>string Image = 2;</code>
+     * @return The image.
+     */
+    java.lang.String getImage();
+    /**
+     * <code>string Image = 2;</code>
+     * @return The bytes for image.
+     */
+    com.google.protobuf.ByteString
+        getImageBytes();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AddEmojiTaskMessage}
+   */
+  public  static final class AddEmojiTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AddEmojiTaskMessage)
+      AddEmojiTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AddEmojiTaskMessage.newBuilder() to construct.
+    private AddEmojiTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AddEmojiTaskMessage() {
+      image_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AddEmojiTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AddEmojiTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              image_ = s;
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAddEmojiTask.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAddEmojiTask.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.class, Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IMAGE_FIELD_NUMBER = 2;
+    private volatile java.lang.Object image_;
+    /**
+     * <code>string Image = 2;</code>
+     * @return The image.
+     */
+    public java.lang.String getImage() {
+      java.lang.Object ref = image_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        image_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Image = 2;</code>
+     * @return The bytes for image.
+     */
+    public com.google.protobuf.ByteString
+        getImageBytes() {
+      java.lang.Object ref = image_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        image_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getImageBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, image_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getImageBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, image_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage other = (Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getImage()
+          .equals(other.getImage())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + IMAGE_FIELD_NUMBER;
+      hash = (53 * hash) + getImage().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AddEmojiTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AddEmojiTaskMessage)
+        Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTask.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTask.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.class, Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        image_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTask.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage build() {
+        Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage result = new Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.image_ = image_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getImage().isEmpty()) {
+          image_ = other.image_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object image_ = "";
+      /**
+       * <code>string Image = 2;</code>
+       * @return The image.
+       */
+      public java.lang.String getImage() {
+        java.lang.Object ref = image_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          image_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Image = 2;</code>
+       * @return The bytes for image.
+       */
+      public com.google.protobuf.ByteString
+          getImageBytes() {
+        java.lang.Object ref = image_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          image_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Image = 2;</code>
+       * @param value The image to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImage(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        image_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Image = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearImage() {
+        
+        image_ = getDefaultInstance().getImage();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Image = 2;</code>
+       * @param value The bytes for image to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImageBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        image_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AddEmojiTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AddEmojiTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AddEmojiTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AddEmojiTaskMessage>() {
+      @java.lang.Override
+      public AddEmojiTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AddEmojiTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AddEmojiTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AddEmojiTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAddEmojiTask.AddEmojiTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\023WAddEmojiTask.proto\022\020Im.Scrm.Ww.Proto\"" +
+      "B\n\023AddEmojiTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\r\n\005" +
+      "Image\030\002 \001(\t\022\016\n\006TaskId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Image", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1042 - 0
src/main/java/Im/Scrm/Ww/Proto/WAddEmojiTaskResultNotice.java

@@ -0,0 +1,1042 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WAddEmojiTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WAddEmojiTaskResultNotice {
+  private WAddEmojiTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface AddEmojiTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <code>string Emoji = 5;</code>
+     * @return The emoji.
+     */
+    java.lang.String getEmoji();
+    /**
+     * <code>string Emoji = 5;</code>
+     * @return The bytes for emoji.
+     */
+    com.google.protobuf.ByteString
+        getEmojiBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage}
+   */
+  public  static final class AddEmojiTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage)
+      AddEmojiTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use AddEmojiTaskResultNoticeMessage.newBuilder() to construct.
+    private AddEmojiTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private AddEmojiTaskResultNoticeMessage() {
+      errMsg_ = "";
+      emoji_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new AddEmojiTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private AddEmojiTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              emoji_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int EMOJI_FIELD_NUMBER = 5;
+    private volatile java.lang.Object emoji_;
+    /**
+     * <code>string Emoji = 5;</code>
+     * @return The emoji.
+     */
+    public java.lang.String getEmoji() {
+      java.lang.Object ref = emoji_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        emoji_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Emoji = 5;</code>
+     * @return The bytes for emoji.
+     */
+    public com.google.protobuf.ByteString
+        getEmojiBytes() {
+      java.lang.Object ref = emoji_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        emoji_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      if (!getEmojiBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, emoji_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      if (!getEmojiBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, emoji_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!getEmoji()
+          .equals(other.getEmoji())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + EMOJI_FIELD_NUMBER;
+      hash = (53 * hash) + getEmoji().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        taskId_ = 0L;
+
+        emoji_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        result.taskId_ = taskId_;
+        result.emoji_ = emoji_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (!other.getEmoji().isEmpty()) {
+          emoji_ = other.emoji_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object emoji_ = "";
+      /**
+       * <code>string Emoji = 5;</code>
+       * @return The emoji.
+       */
+      public java.lang.String getEmoji() {
+        java.lang.Object ref = emoji_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          emoji_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Emoji = 5;</code>
+       * @return The bytes for emoji.
+       */
+      public com.google.protobuf.ByteString
+          getEmojiBytes() {
+        java.lang.Object ref = emoji_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          emoji_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Emoji = 5;</code>
+       * @param value The emoji to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEmoji(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        emoji_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Emoji = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearEmoji() {
+        
+        emoji_ = getDefaultInstance().getEmoji();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Emoji = 5;</code>
+       * @param value The bytes for emoji to set.
+       * @return This builder for chaining.
+       */
+      public Builder setEmojiBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        emoji_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.AddEmojiTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<AddEmojiTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<AddEmojiTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public AddEmojiTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new AddEmojiTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<AddEmojiTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<AddEmojiTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WAddEmojiTaskResultNotice.AddEmojiTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\037WAddEmojiTaskResultNotice.proto\022\020Im.Sc" +
+      "rm.Ww.Proto\"o\n\037AddEmojiTaskResultNoticeM" +
+      "essage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010\022\016\n" +
+      "\006ErrMsg\030\003 \001(\t\022\016\n\006TaskId\030\004 \001(\003\022\r\n\005Emoji\030\005" +
+      " \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_AddEmojiTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "TaskId", "Emoji", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1720 - 0
src/main/java/Im/Scrm/Ww/Proto/WChatRoomActionTask.java

@@ -0,0 +1,1720 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WChatRoomActionTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WChatRoomActionTask {
+  private WChatRoomActionTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  /**
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumChatRoomAction}
+   */
+  public enum EnumChatRoomAction
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     * 改群名 content=群名称
+     * </pre>
+     *
+     * <code>RoomName = 0;</code>
+     */
+    RoomName(0),
+    /**
+     * <pre>
+     * 改公告 content=公告内容
+     * </pre>
+     *
+     * <code>ModifyPublicNoti = 1;</code>
+     */
+    ModifyPublicNoti(1),
+    /**
+     * <pre>
+     * 拉人 Members不为空,content=附带消息
+     * </pre>
+     *
+     * <code>AddMember = 2;</code>
+     */
+    AddMember(2),
+    /**
+     * <pre>
+     * 踢人
+     * </pre>
+     *
+     * <code>KickMember = 3;</code>
+     */
+    KickMember(3),
+    /**
+     * <pre>
+     * 修改群内显示名 content=显示名 未实现
+     * </pre>
+     *
+     * <code>RoomShowName = 4;</code>
+     */
+    RoomShowName(4),
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>AddToPhonebook = 5;</code>
+     */
+    AddToPhonebook(5),
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>NewMsgNoti = 6;</code>
+     */
+    NewMsgNoti(6),
+    /**
+     * <pre>
+     * 退群
+     * </pre>
+     *
+     * <code>ExitRoom = 7;</code>
+     */
+    ExitRoom(7),
+    /**
+     * <pre>
+     * 建群 Members不为空,content=群名称
+     * </pre>
+     *
+     * <code>CreateRoom = 8;</code>
+     */
+    CreateRoom(8),
+    /**
+     * <pre>
+     * 查看所有群成员 未实现
+     * </pre>
+     *
+     * <code>ViewAllMember = 9;</code>
+     */
+    ViewAllMember(9),
+    /**
+     * <pre>
+     * 群主转让
+     * </pre>
+     *
+     * <code>TransferOwner = 10;</code>
+     */
+    TransferOwner(10),
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>SetVerify = 11;</code>
+     */
+    SetVerify(11),
+    /**
+     * <pre>
+     * 设置群管理员
+     * </pre>
+     *
+     * <code>AddManager = 12;</code>
+     */
+    AddManager(12),
+    /**
+     * <pre>
+     * 删除群管理员
+     * </pre>
+     *
+     * <code>DelManager = 13;</code>
+     */
+    DelManager(13),
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>SetRemark = 14;</code>
+     */
+    SetRemark(14),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     * 改群名 content=群名称
+     * </pre>
+     *
+     * <code>RoomName = 0;</code>
+     */
+    public static final int RoomName_VALUE = 0;
+    /**
+     * <pre>
+     * 改公告 content=公告内容
+     * </pre>
+     *
+     * <code>ModifyPublicNoti = 1;</code>
+     */
+    public static final int ModifyPublicNoti_VALUE = 1;
+    /**
+     * <pre>
+     * 拉人 Members不为空,content=附带消息
+     * </pre>
+     *
+     * <code>AddMember = 2;</code>
+     */
+    public static final int AddMember_VALUE = 2;
+    /**
+     * <pre>
+     * 踢人
+     * </pre>
+     *
+     * <code>KickMember = 3;</code>
+     */
+    public static final int KickMember_VALUE = 3;
+    /**
+     * <pre>
+     * 修改群内显示名 content=显示名 未实现
+     * </pre>
+     *
+     * <code>RoomShowName = 4;</code>
+     */
+    public static final int RoomShowName_VALUE = 4;
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>AddToPhonebook = 5;</code>
+     */
+    public static final int AddToPhonebook_VALUE = 5;
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>NewMsgNoti = 6;</code>
+     */
+    public static final int NewMsgNoti_VALUE = 6;
+    /**
+     * <pre>
+     * 退群
+     * </pre>
+     *
+     * <code>ExitRoom = 7;</code>
+     */
+    public static final int ExitRoom_VALUE = 7;
+    /**
+     * <pre>
+     * 建群 Members不为空,content=群名称
+     * </pre>
+     *
+     * <code>CreateRoom = 8;</code>
+     */
+    public static final int CreateRoom_VALUE = 8;
+    /**
+     * <pre>
+     * 查看所有群成员 未实现
+     * </pre>
+     *
+     * <code>ViewAllMember = 9;</code>
+     */
+    public static final int ViewAllMember_VALUE = 9;
+    /**
+     * <pre>
+     * 群主转让
+     * </pre>
+     *
+     * <code>TransferOwner = 10;</code>
+     */
+    public static final int TransferOwner_VALUE = 10;
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>SetVerify = 11;</code>
+     */
+    public static final int SetVerify_VALUE = 11;
+    /**
+     * <pre>
+     * 设置群管理员
+     * </pre>
+     *
+     * <code>AddManager = 12;</code>
+     */
+    public static final int AddManager_VALUE = 12;
+    /**
+     * <pre>
+     * 删除群管理员
+     * </pre>
+     *
+     * <code>DelManager = 13;</code>
+     */
+    public static final int DelManager_VALUE = 13;
+    /**
+     * <pre>
+     * 未实现
+     * </pre>
+     *
+     * <code>SetRemark = 14;</code>
+     */
+    public static final int SetRemark_VALUE = 14;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumChatRoomAction valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumChatRoomAction forNumber(int value) {
+      switch (value) {
+        case 0: return RoomName;
+        case 1: return ModifyPublicNoti;
+        case 2: return AddMember;
+        case 3: return KickMember;
+        case 4: return RoomShowName;
+        case 5: return AddToPhonebook;
+        case 6: return NewMsgNoti;
+        case 7: return ExitRoom;
+        case 8: return CreateRoom;
+        case 9: return ViewAllMember;
+        case 10: return TransferOwner;
+        case 11: return SetVerify;
+        case 12: return AddManager;
+        case 13: return DelManager;
+        case 14: return SetRemark;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumChatRoomAction>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumChatRoomAction> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumChatRoomAction>() {
+            public EnumChatRoomAction findValueByNumber(int number) {
+              return EnumChatRoomAction.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WChatRoomActionTask.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final EnumChatRoomAction[] VALUES = values();
+
+    public static EnumChatRoomAction valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumChatRoomAction(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumChatRoomAction)
+  }
+
+  public interface ChatRoomActionTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 商家所属微信号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话id。注意:此处使用id更方便,不是remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+     * @return The enum numeric value on the wire for action.
+     */
+    int getActionValue();
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+     * @return The action.
+     */
+    Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction getAction();
+
+    /**
+     * <pre>
+     * 指令内容
+     * </pre>
+     *
+     * <code>string Content = 4;</code>
+     * @return The content.
+     */
+    java.lang.String getContent();
+    /**
+     * <pre>
+     * 指令内容
+     * </pre>
+     *
+     * <code>string Content = 4;</code>
+     * @return The bytes for content.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 IntValue = 5;</code>
+     * @return The intValue.
+     */
+    int getIntValue();
+
+    /**
+     * <pre>
+     *操作的联系人(客户)
+     * </pre>
+     *
+     * <code>repeated int64 Members = 6;</code>
+     * @return A list containing the members.
+     */
+    java.util.List<java.lang.Long> getMembersList();
+    /**
+     * <pre>
+     *操作的联系人(客户)
+     * </pre>
+     *
+     * <code>repeated int64 Members = 6;</code>
+     * @return The count of members.
+     */
+    int getMembersCount();
+    /**
+     * <pre>
+     *操作的联系人(客户)
+     * </pre>
+     *
+     * <code>repeated int64 Members = 6;</code>
+     * @param index The index of the element to return.
+     * @return The members at the given index.
+     */
+    long getMembers(int index);
+
+    /**
+     * <code>int64 taskId = 7;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage}
+   */
+  public  static final class ChatRoomActionTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage)
+      ChatRoomActionTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ChatRoomActionTaskMessage.newBuilder() to construct.
+    private ChatRoomActionTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ChatRoomActionTaskMessage() {
+      action_ = 0;
+      content_ = "";
+      members_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ChatRoomActionTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ChatRoomActionTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+              int rawValue = input.readEnum();
+
+              action_ = rawValue;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              content_ = s;
+              break;
+            }
+            case 40: {
+
+              intValue_ = input.readInt32();
+              break;
+            }
+            case 48: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                members_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              members_.addLong(input.readInt64());
+              break;
+            }
+            case 50: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                members_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                members_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 56: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          members_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WChatRoomActionTask.internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WChatRoomActionTask.internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.class, Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 商家所属微信号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话id。注意:此处使用id更方便,不是remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int ACTION_FIELD_NUMBER = 3;
+    private int action_;
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+     * @return The enum numeric value on the wire for action.
+     */
+    public int getActionValue() {
+      return action_;
+    }
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+     * @return The action.
+     */
+    public Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction getAction() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction result = Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction.valueOf(action_);
+      return result == null ? Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 4;
+    private volatile java.lang.Object content_;
+    /**
+     * <pre>
+     * 指令内容
+     * </pre>
+     *
+     * <code>string Content = 4;</code>
+     * @return The content.
+     */
+    public java.lang.String getContent() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        content_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 指令内容
+     * </pre>
+     *
+     * <code>string Content = 4;</code>
+     * @return The bytes for content.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        content_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int INTVALUE_FIELD_NUMBER = 5;
+    private int intValue_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 IntValue = 5;</code>
+     * @return The intValue.
+     */
+    public int getIntValue() {
+      return intValue_;
+    }
+
+    public static final int MEMBERS_FIELD_NUMBER = 6;
+    private com.google.protobuf.Internal.LongList members_;
+    /**
+     * <pre>
+     *操作的联系人(客户)
+     * </pre>
+     *
+     * <code>repeated int64 Members = 6;</code>
+     * @return A list containing the members.
+     */
+    public java.util.List<java.lang.Long>
+        getMembersList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     *操作的联系人(客户)
+     * </pre>
+     *
+     * <code>repeated int64 Members = 6;</code>
+     * @return The count of members.
+     */
+    public int getMembersCount() {
+      return members_.size();
+    }
+    /**
+     * <pre>
+     *操作的联系人(客户)
+     * </pre>
+     *
+     * <code>repeated int64 Members = 6;</code>
+     * @param index The index of the element to return.
+     * @return The members at the given index.
+     */
+    public long getMembers(int index) {
+      return members_.getLong(index);
+    }
+    private int membersMemoizedSerializedSize = -1;
+
+    public static final int TASKID_FIELD_NUMBER = 7;
+    private long taskId_;
+    /**
+     * <code>int64 taskId = 7;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (action_ != Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction.RoomName.getNumber()) {
+        output.writeEnum(3, action_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, content_);
+      }
+      if (intValue_ != 0) {
+        output.writeInt32(5, intValue_);
+      }
+      if (getMembersList().size() > 0) {
+        output.writeUInt32NoTag(50);
+        output.writeUInt32NoTag(membersMemoizedSerializedSize);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        output.writeInt64NoTag(members_.getLong(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(7, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (action_ != Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction.RoomName.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(3, action_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, content_);
+      }
+      if (intValue_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, intValue_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < members_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(members_.getLong(i));
+        }
+        size += dataSize;
+        if (!getMembersList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        membersMemoizedSerializedSize = dataSize;
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage other = (Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (action_ != other.action_) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (getIntValue()
+          != other.getIntValue()) return false;
+      if (!getMembersList()
+          .equals(other.getMembersList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + ACTION_FIELD_NUMBER;
+      hash = (53 * hash) + action_;
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (37 * hash) + INTVALUE_FIELD_NUMBER;
+      hash = (53 * hash) + getIntValue();
+      if (getMembersCount() > 0) {
+        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
+        hash = (53 * hash) + getMembersList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage)
+        Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WChatRoomActionTask.internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WChatRoomActionTask.internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.class, Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        action_ = 0;
+
+        content_ = "";
+
+        intValue_ = 0;
+
+        members_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WChatRoomActionTask.internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage build() {
+        Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage result = new Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.action_ = action_;
+        result.content_ = content_;
+        result.intValue_ = intValue_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          members_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.members_ = members_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.action_ != 0) {
+          setActionValue(other.getActionValue());
+        }
+        if (!other.getContent().isEmpty()) {
+          content_ = other.content_;
+          onChanged();
+        }
+        if (other.getIntValue() != 0) {
+          setIntValue(other.getIntValue());
+        }
+        if (!other.members_.isEmpty()) {
+          if (members_.isEmpty()) {
+            members_ = other.members_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureMembersIsMutable();
+            members_.addAll(other.members_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 商家所属微信号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 商家所属微信号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 商家所属微信号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话id。注意:此处使用id更方便,不是remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话id。注意:此处使用id更方便,不是remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话id。注意:此处使用id更方便,不是remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int action_ = 0;
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+       * @return The enum numeric value on the wire for action.
+       */
+      public int getActionValue() {
+        return action_;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+       * @param value The enum numeric value on the wire for action to set.
+       * @return This builder for chaining.
+       */
+      public Builder setActionValue(int value) {
+        action_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+       * @return The action.
+       */
+      public Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction getAction() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction result = Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction.valueOf(action_);
+        return result == null ? Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+       * @param value The action to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAction(Im.Scrm.Ww.Proto.WChatRoomActionTask.EnumChatRoomAction value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        action_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumChatRoomAction Action = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAction() {
+        
+        action_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object content_ = "";
+      /**
+       * <pre>
+       * 指令内容
+       * </pre>
+       *
+       * <code>string Content = 4;</code>
+       * @return The content.
+       */
+      public java.lang.String getContent() {
+        java.lang.Object ref = content_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          content_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 指令内容
+       * </pre>
+       *
+       * <code>string Content = 4;</code>
+       * @return The bytes for content.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes() {
+        java.lang.Object ref = content_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          content_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 指令内容
+       * </pre>
+       *
+       * <code>string Content = 4;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 指令内容
+       * </pre>
+       *
+       * <code>string Content = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 指令内容
+       * </pre>
+       *
+       * <code>string Content = 4;</code>
+       * @param value The bytes for content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        content_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int intValue_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 IntValue = 5;</code>
+       * @return The intValue.
+       */
+      public int getIntValue() {
+        return intValue_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 IntValue = 5;</code>
+       * @param value The intValue to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIntValue(int value) {
+        
+        intValue_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 IntValue = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIntValue() {
+        
+        intValue_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList members_ = emptyLongList();
+      private void ensureMembersIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          members_ = mutableCopy(members_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @return A list containing the members.
+       */
+      public java.util.List<java.lang.Long>
+          getMembersList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(members_) : members_;
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @return The count of members.
+       */
+      public int getMembersCount() {
+        return members_.size();
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @param index The index of the element to return.
+       * @return The members at the given index.
+       */
+      public long getMembers(int index) {
+        return members_.getLong(index);
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @param index The index to set the value at.
+       * @param value The members to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMembers(
+          int index, long value) {
+        ensureMembersIsMutable();
+        members_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @param value The members to add.
+       * @return This builder for chaining.
+       */
+      public Builder addMembers(long value) {
+        ensureMembersIsMutable();
+        members_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @param values The members to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllMembers(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureMembersIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, members_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *操作的联系人(客户)
+       * </pre>
+       *
+       * <code>repeated int64 Members = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMembers() {
+        members_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 taskId = 7;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 taskId = 7;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 taskId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ChatRoomActionTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ChatRoomActionTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ChatRoomActionTaskMessage>() {
+      @java.lang.Override
+      public ChatRoomActionTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ChatRoomActionTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ChatRoomActionTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ChatRoomActionTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WChatRoomActionTask.ChatRoomActionTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031WChatRoomActionTask.proto\022\020Im.Scrm.Ww." +
+      "Proto\"\263\001\n\031ChatRoomActionTaskMessage\022\014\n\004W" +
+      "xId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\0224\n\006Action\030\003 \001(" +
+      "\0162$.Im.Scrm.Ww.Proto.EnumChatRoomAction\022" +
+      "\017\n\007Content\030\004 \001(\t\022\020\n\010IntValue\030\005 \001(\005\022\017\n\007Me" +
+      "mbers\030\006 \003(\003\022\016\n\006taskId\030\007 \001(\003*\217\002\n\022EnumChat" +
+      "RoomAction\022\014\n\010RoomName\020\000\022\024\n\020ModifyPublic" +
+      "Noti\020\001\022\r\n\tAddMember\020\002\022\016\n\nKickMember\020\003\022\020\n" +
+      "\014RoomShowName\020\004\022\022\n\016AddToPhonebook\020\005\022\016\n\nN" +
+      "ewMsgNoti\020\006\022\014\n\010ExitRoom\020\007\022\016\n\nCreateRoom\020" +
+      "\010\022\021\n\rViewAllMember\020\t\022\021\n\rTransferOwner\020\n\022" +
+      "\r\n\tSetVerify\020\013\022\016\n\nAddManager\020\014\022\016\n\nDelMan" +
+      "ager\020\r\022\r\n\tSetRemark\020\016b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ChatRoomActionTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "Action", "Content", "IntValue", "Members", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 919 - 0
src/main/java/Im/Scrm/Ww/Proto/WCommonResult.java

@@ -0,0 +1,919 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCommonResult.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCommonResult {
+  private WCommonResult() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CommonResultMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CommonResultMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>int32 Code = 3;</code>
+     * @return The code.
+     */
+    int getCode();
+
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CommonResultMessage}
+   */
+  public  static final class CommonResultMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CommonResultMessage)
+      CommonResultMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CommonResultMessage.newBuilder() to construct.
+    private CommonResultMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CommonResultMessage() {
+      errMsg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CommonResultMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CommonResultMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 24: {
+
+              code_ = input.readInt32();
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCommonResult.internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCommonResult.internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.class, Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int CODE_FIELD_NUMBER = 3;
+    private int code_;
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>int32 Code = 3;</code>
+     * @return The code.
+     */
+    public int getCode() {
+      return code_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (code_ != 0) {
+        output.writeInt32(3, code_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, errMsg_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (code_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, code_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, errMsg_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage other = (Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (getCode()
+          != other.getCode()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + CODE_FIELD_NUMBER;
+      hash = (53 * hash) + getCode();
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CommonResultMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CommonResultMessage)
+        Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCommonResult.internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCommonResult.internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.class, Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        code_ = 0;
+
+        errMsg_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCommonResult.internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage build() {
+        Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage result = new Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.code_ = code_;
+        result.errMsg_ = errMsg_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (other.getCode() != 0) {
+          setCode(other.getCode());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int code_ ;
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>int32 Code = 3;</code>
+       * @return The code.
+       */
+      public int getCode() {
+        return code_;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>int32 Code = 3;</code>
+       * @param value The code to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCode(int value) {
+        
+        code_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>int32 Code = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCode() {
+        
+        code_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CommonResultMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CommonResultMessage)
+    private static final Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CommonResultMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CommonResultMessage>() {
+      @java.lang.Override
+      public CommonResultMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CommonResultMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CommonResultMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CommonResultMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCommonResult.CommonResultMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\023WCommonResult.proto\022\020Im.Scrm.Ww.Proto\032" +
+      "\020WTransport.proto\"R\n\023CommonResultMessage" +
+      "\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010\022\014\n\004Code\030" +
+      "\003 \001(\005\022\016\n\006ErrMsg\030\004 \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CommonResultMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "Code", "ErrMsg", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 947 - 0
src/main/java/Im/Scrm/Ww/Proto/WCommonTriggerTask.java

@@ -0,0 +1,947 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCommonTriggerTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCommonTriggerTask {
+  private WCommonTriggerTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CommonTriggerTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CommonTriggerTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 同步会话,0:所有会话;1 已加载的会话 2 下一页会话, &amp;512 忽略群成员 &amp;1024 忽略消息概要
+     * 同步客户:Flag=1 只推送单向客户id
+     * </pre>
+     *
+     * <code>int32 Flag = 2;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <pre>
+     * 备用
+     * </pre>
+     *
+     * <code>int64 Time = 3;</code>
+     * @return The time.
+     */
+    long getTime();
+
+    /**
+     * <code>int32 Offset = 4;</code>
+     * @return The offset.
+     */
+    int getOffset();
+
+    /**
+     * <code>int32 Limit = 5;</code>
+     * @return The limit.
+     */
+    int getLimit();
+
+    /**
+     * <code>int64 TaskId = 8;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * <pre>
+   * 通用Trigger任务消息
+   * </pre>
+   *
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CommonTriggerTaskMessage}
+   */
+  public  static final class CommonTriggerTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CommonTriggerTaskMessage)
+      CommonTriggerTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CommonTriggerTaskMessage.newBuilder() to construct.
+    private CommonTriggerTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CommonTriggerTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CommonTriggerTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CommonTriggerTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 24: {
+
+              time_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              offset_ = input.readInt32();
+              break;
+            }
+            case 40: {
+
+              limit_ = input.readInt32();
+              break;
+            }
+            case 64: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCommonTriggerTask.internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCommonTriggerTask.internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.class, Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 2;
+    private int flag_;
+    /**
+     * <pre>
+     * 同步会话,0:所有会话;1 已加载的会话 2 下一页会话, &amp;512 忽略群成员 &amp;1024 忽略消息概要
+     * 同步客户:Flag=1 只推送单向客户id
+     * </pre>
+     *
+     * <code>int32 Flag = 2;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int TIME_FIELD_NUMBER = 3;
+    private long time_;
+    /**
+     * <pre>
+     * 备用
+     * </pre>
+     *
+     * <code>int64 Time = 3;</code>
+     * @return The time.
+     */
+    public long getTime() {
+      return time_;
+    }
+
+    public static final int OFFSET_FIELD_NUMBER = 4;
+    private int offset_;
+    /**
+     * <code>int32 Offset = 4;</code>
+     * @return The offset.
+     */
+    public int getOffset() {
+      return offset_;
+    }
+
+    public static final int LIMIT_FIELD_NUMBER = 5;
+    private int limit_;
+    /**
+     * <code>int32 Limit = 5;</code>
+     * @return The limit.
+     */
+    public int getLimit() {
+      return limit_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 8;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 8;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(2, flag_);
+      }
+      if (time_ != 0L) {
+        output.writeInt64(3, time_);
+      }
+      if (offset_ != 0) {
+        output.writeInt32(4, offset_);
+      }
+      if (limit_ != 0) {
+        output.writeInt32(5, limit_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(8, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, flag_);
+      }
+      if (time_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, time_);
+      }
+      if (offset_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, offset_);
+      }
+      if (limit_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, limit_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage other = (Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getTime()
+          != other.getTime()) return false;
+      if (getOffset()
+          != other.getOffset()) return false;
+      if (getLimit()
+          != other.getLimit()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + TIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTime());
+      hash = (37 * hash) + OFFSET_FIELD_NUMBER;
+      hash = (53 * hash) + getOffset();
+      hash = (37 * hash) + LIMIT_FIELD_NUMBER;
+      hash = (53 * hash) + getLimit();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * <pre>
+     * 通用Trigger任务消息
+     * </pre>
+     *
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CommonTriggerTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CommonTriggerTaskMessage)
+        Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCommonTriggerTask.internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCommonTriggerTask.internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.class, Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        flag_ = 0;
+
+        time_ = 0L;
+
+        offset_ = 0;
+
+        limit_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCommonTriggerTask.internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage build() {
+        Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage result = new Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.flag_ = flag_;
+        result.time_ = time_;
+        result.offset_ = offset_;
+        result.limit_ = limit_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getTime() != 0L) {
+          setTime(other.getTime());
+        }
+        if (other.getOffset() != 0) {
+          setOffset(other.getOffset());
+        }
+        if (other.getLimit() != 0) {
+          setLimit(other.getLimit());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <pre>
+       * 同步会话,0:所有会话;1 已加载的会话 2 下一页会话, &amp;512 忽略群成员 &amp;1024 忽略消息概要
+       * 同步客户:Flag=1 只推送单向客户id
+       * </pre>
+       *
+       * <code>int32 Flag = 2;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <pre>
+       * 同步会话,0:所有会话;1 已加载的会话 2 下一页会话, &amp;512 忽略群成员 &amp;1024 忽略消息概要
+       * 同步客户:Flag=1 只推送单向客户id
+       * </pre>
+       *
+       * <code>int32 Flag = 2;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 同步会话,0:所有会话;1 已加载的会话 2 下一页会话, &amp;512 忽略群成员 &amp;1024 忽略消息概要
+       * 同步客户:Flag=1 只推送单向客户id
+       * </pre>
+       *
+       * <code>int32 Flag = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long time_ ;
+      /**
+       * <pre>
+       * 备用
+       * </pre>
+       *
+       * <code>int64 Time = 3;</code>
+       * @return The time.
+       */
+      public long getTime() {
+        return time_;
+      }
+      /**
+       * <pre>
+       * 备用
+       * </pre>
+       *
+       * <code>int64 Time = 3;</code>
+       * @param value The time to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTime(long value) {
+        
+        time_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 备用
+       * </pre>
+       *
+       * <code>int64 Time = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTime() {
+        
+        time_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int offset_ ;
+      /**
+       * <code>int32 Offset = 4;</code>
+       * @return The offset.
+       */
+      public int getOffset() {
+        return offset_;
+      }
+      /**
+       * <code>int32 Offset = 4;</code>
+       * @param value The offset to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOffset(int value) {
+        
+        offset_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Offset = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOffset() {
+        
+        offset_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int limit_ ;
+      /**
+       * <code>int32 Limit = 5;</code>
+       * @return The limit.
+       */
+      public int getLimit() {
+        return limit_;
+      }
+      /**
+       * <code>int32 Limit = 5;</code>
+       * @param value The limit to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLimit(int value) {
+        
+        limit_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Limit = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLimit() {
+        
+        limit_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 8;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 8;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CommonTriggerTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CommonTriggerTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CommonTriggerTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CommonTriggerTaskMessage>() {
+      @java.lang.Override
+      public CommonTriggerTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CommonTriggerTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CommonTriggerTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CommonTriggerTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCommonTriggerTask.CommonTriggerTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\030WCommonTriggerTask.proto\022\020Im.Scrm.Ww.P" +
+      "roto\"s\n\030CommonTriggerTaskMessage\022\014\n\004WxId" +
+      "\030\001 \001(\003\022\014\n\004Flag\030\002 \001(\005\022\014\n\004Time\030\003 \001(\003\022\016\n\006Of" +
+      "fset\030\004 \001(\005\022\r\n\005Limit\030\005 \001(\005\022\016\n\006TaskId\030\010 \001(" +
+      "\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CommonTriggerTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Flag", "Time", "Offset", "Limit", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 4568 - 0
src/main/java/Im/Scrm/Ww/Proto/WConfigPushNotice.java

@@ -0,0 +1,4568 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WConfigPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WConfigPushNotice {
+  private WConfigPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface BoolConfigMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.BoolConfigMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>string Key = 1;</code>
+     * @return The key.
+     */
+    java.lang.String getKey();
+    /**
+     * <code>string Key = 1;</code>
+     * @return The bytes for key.
+     */
+    com.google.protobuf.ByteString
+        getKeyBytes();
+
+    /**
+     * <code>bool Value = 2;</code>
+     * @return The value.
+     */
+    boolean getValue();
+
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The desc.
+     */
+    java.lang.String getDesc();
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The bytes for desc.
+     */
+    com.google.protobuf.ByteString
+        getDescBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.BoolConfigMessage}
+   */
+  public  static final class BoolConfigMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.BoolConfigMessage)
+      BoolConfigMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use BoolConfigMessage.newBuilder() to construct.
+    private BoolConfigMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private BoolConfigMessage() {
+      key_ = "";
+      name_ = "";
+      desc_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new BoolConfigMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private BoolConfigMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              key_ = s;
+              break;
+            }
+            case 16: {
+
+              value_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              desc_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder.class);
+    }
+
+    public static final int KEY_FIELD_NUMBER = 1;
+    private volatile java.lang.Object key_;
+    /**
+     * <code>string Key = 1;</code>
+     * @return The key.
+     */
+    public java.lang.String getKey() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        key_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Key = 1;</code>
+     * @return The bytes for key.
+     */
+    public com.google.protobuf.ByteString
+        getKeyBytes() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        key_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int VALUE_FIELD_NUMBER = 2;
+    private boolean value_;
+    /**
+     * <code>bool Value = 2;</code>
+     * @return The value.
+     */
+    public boolean getValue() {
+      return value_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int DESC_FIELD_NUMBER = 4;
+    private volatile java.lang.Object desc_;
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The desc.
+     */
+    public java.lang.String getDesc() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        desc_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The bytes for desc.
+     */
+    public com.google.protobuf.ByteString
+        getDescBytes() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        desc_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getKeyBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
+      }
+      if (value_ != false) {
+        output.writeBool(2, value_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, desc_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getKeyBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
+      }
+      if (value_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, value_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, desc_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage other = (Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage) obj;
+
+      if (!getKey()
+          .equals(other.getKey())) return false;
+      if (getValue()
+          != other.getValue()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getDesc()
+          .equals(other.getDesc())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + KEY_FIELD_NUMBER;
+      hash = (53 * hash) + getKey().hashCode();
+      hash = (37 * hash) + VALUE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getValue());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + DESC_FIELD_NUMBER;
+      hash = (53 * hash) + getDesc().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.BoolConfigMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.BoolConfigMessage)
+        Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        key_ = "";
+
+        value_ = false;
+
+        name_ = "";
+
+        desc_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage build() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage result = new Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage(this);
+        result.key_ = key_;
+        result.value_ = value_;
+        result.name_ = name_;
+        result.desc_ = desc_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.getDefaultInstance()) return this;
+        if (!other.getKey().isEmpty()) {
+          key_ = other.key_;
+          onChanged();
+        }
+        if (other.getValue() != false) {
+          setValue(other.getValue());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getDesc().isEmpty()) {
+          desc_ = other.desc_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object key_ = "";
+      /**
+       * <code>string Key = 1;</code>
+       * @return The key.
+       */
+      public java.lang.String getKey() {
+        java.lang.Object ref = key_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          key_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @return The bytes for key.
+       */
+      public com.google.protobuf.ByteString
+          getKeyBytes() {
+        java.lang.Object ref = key_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          key_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @param value The key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKey(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        key_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearKey() {
+        
+        key_ = getDefaultInstance().getKey();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @param value The bytes for key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeyBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        key_ = value;
+        onChanged();
+        return this;
+      }
+
+      private boolean value_ ;
+      /**
+       * <code>bool Value = 2;</code>
+       * @return The value.
+       */
+      public boolean getValue() {
+        return value_;
+      }
+      /**
+       * <code>bool Value = 2;</code>
+       * @param value The value to set.
+       * @return This builder for chaining.
+       */
+      public Builder setValue(boolean value) {
+        
+        value_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool Value = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearValue() {
+        
+        value_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object desc_ = "";
+      /**
+       * <code>string Desc = 4;</code>
+       * @return The desc.
+       */
+      public java.lang.String getDesc() {
+        java.lang.Object ref = desc_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          desc_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @return The bytes for desc.
+       */
+      public com.google.protobuf.ByteString
+          getDescBytes() {
+        java.lang.Object ref = desc_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          desc_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @param value The desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDesc(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDesc() {
+        
+        desc_ = getDefaultInstance().getDesc();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @param value The bytes for desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.BoolConfigMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.BoolConfigMessage)
+    private static final Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<BoolConfigMessage>
+        PARSER = new com.google.protobuf.AbstractParser<BoolConfigMessage>() {
+      @java.lang.Override
+      public BoolConfigMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new BoolConfigMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<BoolConfigMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<BoolConfigMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface IntConfigMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.IntConfigMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>string Key = 1;</code>
+     * @return The key.
+     */
+    java.lang.String getKey();
+    /**
+     * <code>string Key = 1;</code>
+     * @return The bytes for key.
+     */
+    com.google.protobuf.ByteString
+        getKeyBytes();
+
+    /**
+     * <code>int32 Value = 2;</code>
+     * @return The value.
+     */
+    int getValue();
+
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The desc.
+     */
+    java.lang.String getDesc();
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The bytes for desc.
+     */
+    com.google.protobuf.ByteString
+        getDescBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.IntConfigMessage}
+   */
+  public  static final class IntConfigMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.IntConfigMessage)
+      IntConfigMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use IntConfigMessage.newBuilder() to construct.
+    private IntConfigMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private IntConfigMessage() {
+      key_ = "";
+      name_ = "";
+      desc_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new IntConfigMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private IntConfigMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              key_ = s;
+              break;
+            }
+            case 16: {
+
+              value_ = input.readInt32();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              desc_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder.class);
+    }
+
+    public static final int KEY_FIELD_NUMBER = 1;
+    private volatile java.lang.Object key_;
+    /**
+     * <code>string Key = 1;</code>
+     * @return The key.
+     */
+    public java.lang.String getKey() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        key_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Key = 1;</code>
+     * @return The bytes for key.
+     */
+    public com.google.protobuf.ByteString
+        getKeyBytes() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        key_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int VALUE_FIELD_NUMBER = 2;
+    private int value_;
+    /**
+     * <code>int32 Value = 2;</code>
+     * @return The value.
+     */
+    public int getValue() {
+      return value_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int DESC_FIELD_NUMBER = 4;
+    private volatile java.lang.Object desc_;
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The desc.
+     */
+    public java.lang.String getDesc() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        desc_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The bytes for desc.
+     */
+    public com.google.protobuf.ByteString
+        getDescBytes() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        desc_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getKeyBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
+      }
+      if (value_ != 0) {
+        output.writeInt32(2, value_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, desc_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getKeyBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
+      }
+      if (value_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, value_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, desc_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage other = (Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage) obj;
+
+      if (!getKey()
+          .equals(other.getKey())) return false;
+      if (getValue()
+          != other.getValue()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getDesc()
+          .equals(other.getDesc())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + KEY_FIELD_NUMBER;
+      hash = (53 * hash) + getKey().hashCode();
+      hash = (37 * hash) + VALUE_FIELD_NUMBER;
+      hash = (53 * hash) + getValue();
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + DESC_FIELD_NUMBER;
+      hash = (53 * hash) + getDesc().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.IntConfigMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.IntConfigMessage)
+        Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        key_ = "";
+
+        value_ = 0;
+
+        name_ = "";
+
+        desc_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage build() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage result = new Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage(this);
+        result.key_ = key_;
+        result.value_ = value_;
+        result.name_ = name_;
+        result.desc_ = desc_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.getDefaultInstance()) return this;
+        if (!other.getKey().isEmpty()) {
+          key_ = other.key_;
+          onChanged();
+        }
+        if (other.getValue() != 0) {
+          setValue(other.getValue());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getDesc().isEmpty()) {
+          desc_ = other.desc_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object key_ = "";
+      /**
+       * <code>string Key = 1;</code>
+       * @return The key.
+       */
+      public java.lang.String getKey() {
+        java.lang.Object ref = key_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          key_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @return The bytes for key.
+       */
+      public com.google.protobuf.ByteString
+          getKeyBytes() {
+        java.lang.Object ref = key_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          key_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @param value The key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKey(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        key_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearKey() {
+        
+        key_ = getDefaultInstance().getKey();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @param value The bytes for key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeyBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        key_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int value_ ;
+      /**
+       * <code>int32 Value = 2;</code>
+       * @return The value.
+       */
+      public int getValue() {
+        return value_;
+      }
+      /**
+       * <code>int32 Value = 2;</code>
+       * @param value The value to set.
+       * @return This builder for chaining.
+       */
+      public Builder setValue(int value) {
+        
+        value_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Value = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearValue() {
+        
+        value_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object desc_ = "";
+      /**
+       * <code>string Desc = 4;</code>
+       * @return The desc.
+       */
+      public java.lang.String getDesc() {
+        java.lang.Object ref = desc_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          desc_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @return The bytes for desc.
+       */
+      public com.google.protobuf.ByteString
+          getDescBytes() {
+        java.lang.Object ref = desc_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          desc_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @param value The desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDesc(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDesc() {
+        
+        desc_ = getDefaultInstance().getDesc();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @param value The bytes for desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.IntConfigMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.IntConfigMessage)
+    private static final Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<IntConfigMessage>
+        PARSER = new com.google.protobuf.AbstractParser<IntConfigMessage>() {
+      @java.lang.Override
+      public IntConfigMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new IntConfigMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<IntConfigMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<IntConfigMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface StrConfigMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.StrConfigMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>string Key = 1;</code>
+     * @return The key.
+     */
+    java.lang.String getKey();
+    /**
+     * <code>string Key = 1;</code>
+     * @return The bytes for key.
+     */
+    com.google.protobuf.ByteString
+        getKeyBytes();
+
+    /**
+     * <code>string Value = 2;</code>
+     * @return The value.
+     */
+    java.lang.String getValue();
+    /**
+     * <code>string Value = 2;</code>
+     * @return The bytes for value.
+     */
+    com.google.protobuf.ByteString
+        getValueBytes();
+
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The desc.
+     */
+    java.lang.String getDesc();
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The bytes for desc.
+     */
+    com.google.protobuf.ByteString
+        getDescBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.StrConfigMessage}
+   */
+  public  static final class StrConfigMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.StrConfigMessage)
+      StrConfigMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use StrConfigMessage.newBuilder() to construct.
+    private StrConfigMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private StrConfigMessage() {
+      key_ = "";
+      value_ = "";
+      name_ = "";
+      desc_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new StrConfigMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private StrConfigMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              key_ = s;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              value_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              desc_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder.class);
+    }
+
+    public static final int KEY_FIELD_NUMBER = 1;
+    private volatile java.lang.Object key_;
+    /**
+     * <code>string Key = 1;</code>
+     * @return The key.
+     */
+    public java.lang.String getKey() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        key_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Key = 1;</code>
+     * @return The bytes for key.
+     */
+    public com.google.protobuf.ByteString
+        getKeyBytes() {
+      java.lang.Object ref = key_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        key_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int VALUE_FIELD_NUMBER = 2;
+    private volatile java.lang.Object value_;
+    /**
+     * <code>string Value = 2;</code>
+     * @return The value.
+     */
+    public java.lang.String getValue() {
+      java.lang.Object ref = value_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        value_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Value = 2;</code>
+     * @return The bytes for value.
+     */
+    public com.google.protobuf.ByteString
+        getValueBytes() {
+      java.lang.Object ref = value_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        value_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int DESC_FIELD_NUMBER = 4;
+    private volatile java.lang.Object desc_;
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The desc.
+     */
+    public java.lang.String getDesc() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        desc_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Desc = 4;</code>
+     * @return The bytes for desc.
+     */
+    public com.google.protobuf.ByteString
+        getDescBytes() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        desc_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getKeyBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
+      }
+      if (!getValueBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, desc_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getKeyBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
+      }
+      if (!getValueBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, desc_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage other = (Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage) obj;
+
+      if (!getKey()
+          .equals(other.getKey())) return false;
+      if (!getValue()
+          .equals(other.getValue())) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getDesc()
+          .equals(other.getDesc())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + KEY_FIELD_NUMBER;
+      hash = (53 * hash) + getKey().hashCode();
+      hash = (37 * hash) + VALUE_FIELD_NUMBER;
+      hash = (53 * hash) + getValue().hashCode();
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + DESC_FIELD_NUMBER;
+      hash = (53 * hash) + getDesc().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.StrConfigMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.StrConfigMessage)
+        Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        key_ = "";
+
+        value_ = "";
+
+        name_ = "";
+
+        desc_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage build() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage result = new Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage(this);
+        result.key_ = key_;
+        result.value_ = value_;
+        result.name_ = name_;
+        result.desc_ = desc_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.getDefaultInstance()) return this;
+        if (!other.getKey().isEmpty()) {
+          key_ = other.key_;
+          onChanged();
+        }
+        if (!other.getValue().isEmpty()) {
+          value_ = other.value_;
+          onChanged();
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getDesc().isEmpty()) {
+          desc_ = other.desc_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object key_ = "";
+      /**
+       * <code>string Key = 1;</code>
+       * @return The key.
+       */
+      public java.lang.String getKey() {
+        java.lang.Object ref = key_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          key_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @return The bytes for key.
+       */
+      public com.google.protobuf.ByteString
+          getKeyBytes() {
+        java.lang.Object ref = key_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          key_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @param value The key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKey(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        key_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearKey() {
+        
+        key_ = getDefaultInstance().getKey();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Key = 1;</code>
+       * @param value The bytes for key to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeyBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        key_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object value_ = "";
+      /**
+       * <code>string Value = 2;</code>
+       * @return The value.
+       */
+      public java.lang.String getValue() {
+        java.lang.Object ref = value_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          value_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Value = 2;</code>
+       * @return The bytes for value.
+       */
+      public com.google.protobuf.ByteString
+          getValueBytes() {
+        java.lang.Object ref = value_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          value_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Value = 2;</code>
+       * @param value The value to set.
+       * @return This builder for chaining.
+       */
+      public Builder setValue(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        value_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Value = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearValue() {
+        
+        value_ = getDefaultInstance().getValue();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Value = 2;</code>
+       * @param value The bytes for value to set.
+       * @return This builder for chaining.
+       */
+      public Builder setValueBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        value_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object desc_ = "";
+      /**
+       * <code>string Desc = 4;</code>
+       * @return The desc.
+       */
+      public java.lang.String getDesc() {
+        java.lang.Object ref = desc_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          desc_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @return The bytes for desc.
+       */
+      public com.google.protobuf.ByteString
+          getDescBytes() {
+        java.lang.Object ref = desc_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          desc_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @param value The desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDesc(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDesc() {
+        
+        desc_ = getDefaultInstance().getDesc();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 4;</code>
+       * @param value The bytes for desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.StrConfigMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.StrConfigMessage)
+    private static final Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<StrConfigMessage>
+        PARSER = new com.google.protobuf.AbstractParser<StrConfigMessage>() {
+      @java.lang.Override
+      public StrConfigMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new StrConfigMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<StrConfigMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<StrConfigMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface ConfigPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConfigPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> 
+        getBoolConfsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getBoolConfs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    int getBoolConfsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+        getBoolConfsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder getBoolConfsOrBuilder(
+        int index);
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> 
+        getIntConfsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getIntConfs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    int getIntConfsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+        getIntConfsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder getIntConfsOrBuilder(
+        int index);
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> 
+        getStrConfsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getStrConfs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    int getStrConfsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+        getStrConfsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder getStrConfsOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConfigPushNoticeMessage}
+   */
+  public  static final class ConfigPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConfigPushNoticeMessage)
+      ConfigPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConfigPushNoticeMessage.newBuilder() to construct.
+    private ConfigPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConfigPushNoticeMessage() {
+      boolConfs_ = java.util.Collections.emptyList();
+      intConfs_ = java.util.Collections.emptyList();
+      strConfs_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConfigPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConfigPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                boolConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              boolConfs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                intConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              intConfs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 42: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                strConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              strConfs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          boolConfs_ = java.util.Collections.unmodifiableList(boolConfs_);
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          intConfs_ = java.util.Collections.unmodifiableList(intConfs_);
+        }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          strConfs_ = java.util.Collections.unmodifiableList(strConfs_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int BOOLCONFS_FIELD_NUMBER = 3;
+    private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> boolConfs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> getBoolConfsList() {
+      return boolConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+        getBoolConfsOrBuilderList() {
+      return boolConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public int getBoolConfsCount() {
+      return boolConfs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getBoolConfs(int index) {
+      return boolConfs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder getBoolConfsOrBuilder(
+        int index) {
+      return boolConfs_.get(index);
+    }
+
+    public static final int INTCONFS_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> intConfs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> getIntConfsList() {
+      return intConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+        getIntConfsOrBuilderList() {
+      return intConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public int getIntConfsCount() {
+      return intConfs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getIntConfs(int index) {
+      return intConfs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder getIntConfsOrBuilder(
+        int index) {
+      return intConfs_.get(index);
+    }
+
+    public static final int STRCONFS_FIELD_NUMBER = 5;
+    private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> strConfs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> getStrConfsList() {
+      return strConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+        getStrConfsOrBuilderList() {
+      return strConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public int getStrConfsCount() {
+      return strConfs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getStrConfs(int index) {
+      return strConfs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder getStrConfsOrBuilder(
+        int index) {
+      return strConfs_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < boolConfs_.size(); i++) {
+        output.writeMessage(3, boolConfs_.get(i));
+      }
+      for (int i = 0; i < intConfs_.size(); i++) {
+        output.writeMessage(4, intConfs_.get(i));
+      }
+      for (int i = 0; i < strConfs_.size(); i++) {
+        output.writeMessage(5, strConfs_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < boolConfs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, boolConfs_.get(i));
+      }
+      for (int i = 0; i < intConfs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, intConfs_.get(i));
+      }
+      for (int i = 0; i < strConfs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, strConfs_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage other = (Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getBoolConfsList()
+          .equals(other.getBoolConfsList())) return false;
+      if (!getIntConfsList()
+          .equals(other.getIntConfsList())) return false;
+      if (!getStrConfsList()
+          .equals(other.getStrConfsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getBoolConfsCount() > 0) {
+        hash = (37 * hash) + BOOLCONFS_FIELD_NUMBER;
+        hash = (53 * hash) + getBoolConfsList().hashCode();
+      }
+      if (getIntConfsCount() > 0) {
+        hash = (37 * hash) + INTCONFS_FIELD_NUMBER;
+        hash = (53 * hash) + getIntConfsList().hashCode();
+      }
+      if (getStrConfsCount() > 0) {
+        hash = (37 * hash) + STRCONFS_FIELD_NUMBER;
+        hash = (53 * hash) + getStrConfsList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConfigPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConfigPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.class, Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getBoolConfsFieldBuilder();
+          getIntConfsFieldBuilder();
+          getStrConfsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (boolConfsBuilder_ == null) {
+          boolConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          boolConfsBuilder_.clear();
+        }
+        if (intConfsBuilder_ == null) {
+          intConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        } else {
+          intConfsBuilder_.clear();
+        }
+        if (strConfsBuilder_ == null) {
+          strConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        } else {
+          strConfsBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage result = new Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (boolConfsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            boolConfs_ = java.util.Collections.unmodifiableList(boolConfs_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.boolConfs_ = boolConfs_;
+        } else {
+          result.boolConfs_ = boolConfsBuilder_.build();
+        }
+        if (intConfsBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) != 0)) {
+            intConfs_ = java.util.Collections.unmodifiableList(intConfs_);
+            bitField0_ = (bitField0_ & ~0x00000002);
+          }
+          result.intConfs_ = intConfs_;
+        } else {
+          result.intConfs_ = intConfsBuilder_.build();
+        }
+        if (strConfsBuilder_ == null) {
+          if (((bitField0_ & 0x00000004) != 0)) {
+            strConfs_ = java.util.Collections.unmodifiableList(strConfs_);
+            bitField0_ = (bitField0_ & ~0x00000004);
+          }
+          result.strConfs_ = strConfs_;
+        } else {
+          result.strConfs_ = strConfsBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (boolConfsBuilder_ == null) {
+          if (!other.boolConfs_.isEmpty()) {
+            if (boolConfs_.isEmpty()) {
+              boolConfs_ = other.boolConfs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureBoolConfsIsMutable();
+              boolConfs_.addAll(other.boolConfs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.boolConfs_.isEmpty()) {
+            if (boolConfsBuilder_.isEmpty()) {
+              boolConfsBuilder_.dispose();
+              boolConfsBuilder_ = null;
+              boolConfs_ = other.boolConfs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              boolConfsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getBoolConfsFieldBuilder() : null;
+            } else {
+              boolConfsBuilder_.addAllMessages(other.boolConfs_);
+            }
+          }
+        }
+        if (intConfsBuilder_ == null) {
+          if (!other.intConfs_.isEmpty()) {
+            if (intConfs_.isEmpty()) {
+              intConfs_ = other.intConfs_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+            } else {
+              ensureIntConfsIsMutable();
+              intConfs_.addAll(other.intConfs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.intConfs_.isEmpty()) {
+            if (intConfsBuilder_.isEmpty()) {
+              intConfsBuilder_.dispose();
+              intConfsBuilder_ = null;
+              intConfs_ = other.intConfs_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              intConfsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getIntConfsFieldBuilder() : null;
+            } else {
+              intConfsBuilder_.addAllMessages(other.intConfs_);
+            }
+          }
+        }
+        if (strConfsBuilder_ == null) {
+          if (!other.strConfs_.isEmpty()) {
+            if (strConfs_.isEmpty()) {
+              strConfs_ = other.strConfs_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+            } else {
+              ensureStrConfsIsMutable();
+              strConfs_.addAll(other.strConfs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.strConfs_.isEmpty()) {
+            if (strConfsBuilder_.isEmpty()) {
+              strConfsBuilder_.dispose();
+              strConfsBuilder_ = null;
+              strConfs_ = other.strConfs_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              strConfsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getStrConfsFieldBuilder() : null;
+            } else {
+              strConfsBuilder_.addAllMessages(other.strConfs_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> boolConfs_ =
+        java.util.Collections.emptyList();
+      private void ensureBoolConfsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          boolConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage>(boolConfs_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> boolConfsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> getBoolConfsList() {
+        if (boolConfsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(boolConfs_);
+        } else {
+          return boolConfsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public int getBoolConfsCount() {
+        if (boolConfsBuilder_ == null) {
+          return boolConfs_.size();
+        } else {
+          return boolConfsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getBoolConfs(int index) {
+        if (boolConfsBuilder_ == null) {
+          return boolConfs_.get(index);
+        } else {
+          return boolConfsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder setBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage value) {
+        if (boolConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureBoolConfsIsMutable();
+          boolConfs_.set(index, value);
+          onChanged();
+        } else {
+          boolConfsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder setBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder builderForValue) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          boolConfsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage value) {
+        if (boolConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(value);
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage value) {
+        if (boolConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(index, value);
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(
+          Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder builderForValue) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder builderForValue) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addAllBoolConfs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> values) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, boolConfs_);
+          onChanged();
+        } else {
+          boolConfsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder clearBoolConfs() {
+        if (boolConfsBuilder_ == null) {
+          boolConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          boolConfsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder removeBoolConfs(int index) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.remove(index);
+          onChanged();
+        } else {
+          boolConfsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder getBoolConfsBuilder(
+          int index) {
+        return getBoolConfsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder getBoolConfsOrBuilder(
+          int index) {
+        if (boolConfsBuilder_ == null) {
+          return boolConfs_.get(index);  } else {
+          return boolConfsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+           getBoolConfsOrBuilderList() {
+        if (boolConfsBuilder_ != null) {
+          return boolConfsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(boolConfs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder addBoolConfsBuilder() {
+        return getBoolConfsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder addBoolConfsBuilder(
+          int index) {
+        return getBoolConfsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder> 
+           getBoolConfsBuilderList() {
+        return getBoolConfsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+          getBoolConfsFieldBuilder() {
+        if (boolConfsBuilder_ == null) {
+          boolConfsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder>(
+                  boolConfs_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          boolConfs_ = null;
+        }
+        return boolConfsBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> intConfs_ =
+        java.util.Collections.emptyList();
+      private void ensureIntConfsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          intConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage>(intConfs_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> intConfsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> getIntConfsList() {
+        if (intConfsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(intConfs_);
+        } else {
+          return intConfsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public int getIntConfsCount() {
+        if (intConfsBuilder_ == null) {
+          return intConfs_.size();
+        } else {
+          return intConfsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getIntConfs(int index) {
+        if (intConfsBuilder_ == null) {
+          return intConfs_.get(index);
+        } else {
+          return intConfsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder setIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage value) {
+        if (intConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureIntConfsIsMutable();
+          intConfs_.set(index, value);
+          onChanged();
+        } else {
+          intConfsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder setIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder builderForValue) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          intConfsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage value) {
+        if (intConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureIntConfsIsMutable();
+          intConfs_.add(value);
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage value) {
+        if (intConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureIntConfsIsMutable();
+          intConfs_.add(index, value);
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(
+          Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder builderForValue) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder builderForValue) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addAllIntConfs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> values) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, intConfs_);
+          onChanged();
+        } else {
+          intConfsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder clearIntConfs() {
+        if (intConfsBuilder_ == null) {
+          intConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+          onChanged();
+        } else {
+          intConfsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder removeIntConfs(int index) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.remove(index);
+          onChanged();
+        } else {
+          intConfsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder getIntConfsBuilder(
+          int index) {
+        return getIntConfsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder getIntConfsOrBuilder(
+          int index) {
+        if (intConfsBuilder_ == null) {
+          return intConfs_.get(index);  } else {
+          return intConfsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+           getIntConfsOrBuilderList() {
+        if (intConfsBuilder_ != null) {
+          return intConfsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(intConfs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder addIntConfsBuilder() {
+        return getIntConfsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder addIntConfsBuilder(
+          int index) {
+        return getIntConfsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder> 
+           getIntConfsBuilderList() {
+        return getIntConfsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+          getIntConfsFieldBuilder() {
+        if (intConfsBuilder_ == null) {
+          intConfsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder>(
+                  intConfs_,
+                  ((bitField0_ & 0x00000002) != 0),
+                  getParentForChildren(),
+                  isClean());
+          intConfs_ = null;
+        }
+        return intConfsBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> strConfs_ =
+        java.util.Collections.emptyList();
+      private void ensureStrConfsIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          strConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage>(strConfs_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> strConfsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> getStrConfsList() {
+        if (strConfsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(strConfs_);
+        } else {
+          return strConfsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public int getStrConfsCount() {
+        if (strConfsBuilder_ == null) {
+          return strConfs_.size();
+        } else {
+          return strConfsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getStrConfs(int index) {
+        if (strConfsBuilder_ == null) {
+          return strConfs_.get(index);
+        } else {
+          return strConfsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder setStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage value) {
+        if (strConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStrConfsIsMutable();
+          strConfs_.set(index, value);
+          onChanged();
+        } else {
+          strConfsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder setStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder builderForValue) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          strConfsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage value) {
+        if (strConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStrConfsIsMutable();
+          strConfs_.add(value);
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage value) {
+        if (strConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStrConfsIsMutable();
+          strConfs_.add(index, value);
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(
+          Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder builderForValue) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder builderForValue) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addAllStrConfs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> values) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, strConfs_);
+          onChanged();
+        } else {
+          strConfsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder clearStrConfs() {
+        if (strConfsBuilder_ == null) {
+          strConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+          onChanged();
+        } else {
+          strConfsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder removeStrConfs(int index) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.remove(index);
+          onChanged();
+        } else {
+          strConfsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder getStrConfsBuilder(
+          int index) {
+        return getStrConfsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder getStrConfsOrBuilder(
+          int index) {
+        if (strConfsBuilder_ == null) {
+          return strConfs_.get(index);  } else {
+          return strConfsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+           getStrConfsOrBuilderList() {
+        if (strConfsBuilder_ != null) {
+          return strConfsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(strConfs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder addStrConfsBuilder() {
+        return getStrConfsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder addStrConfsBuilder(
+          int index) {
+        return getStrConfsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder> 
+           getStrConfsBuilderList() {
+        return getStrConfsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+          getStrConfsFieldBuilder() {
+        if (strConfsBuilder_ == null) {
+          strConfsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder>(
+                  strConfs_,
+                  ((bitField0_ & 0x00000004) != 0),
+                  getParentForChildren(),
+                  isClean());
+          strConfs_ = null;
+        }
+        return strConfsBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConfigPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConfigPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConfigPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConfigPushNoticeMessage>() {
+      @java.lang.Override
+      public ConfigPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConfigPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConfigPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConfigPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.ConfigPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WConfigPushNotice.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\"K\n\021BoolConfigMessage\022\013\n\003Key\030\001 \001(\t\022\r\n" +
+      "\005Value\030\002 \001(\010\022\014\n\004Name\030\003 \001(\t\022\014\n\004Desc\030\004 \001(\t" +
+      "\"J\n\020IntConfigMessage\022\013\n\003Key\030\001 \001(\t\022\r\n\005Val" +
+      "ue\030\002 \001(\005\022\014\n\004Name\030\003 \001(\t\022\014\n\004Desc\030\004 \001(\t\"J\n\020" +
+      "StrConfigMessage\022\013\n\003Key\030\001 \001(\t\022\r\n\005Value\030\002" +
+      " \001(\t\022\014\n\004Name\030\003 \001(\t\022\014\n\004Desc\030\004 \001(\t\"\313\001\n\027Con" +
+      "figPushNoticeMessage\022\014\n\004WxId\030\001 \001(\003\0226\n\tBo" +
+      "olConfs\030\003 \003(\0132#.Im.Scrm.Ww.Proto.BoolCon" +
+      "figMessage\0224\n\010IntConfs\030\004 \003(\0132\".Im.Scrm.W" +
+      "w.Proto.IntConfigMessage\0224\n\010StrConfs\030\005 \003" +
+      "(\0132\".Im.Scrm.Ww.Proto.StrConfigMessageb\006" +
+      "proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_BoolConfigMessage_descriptor,
+        new java.lang.String[] { "Key", "Value", "Name", "Desc", });
+    internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_IntConfigMessage_descriptor,
+        new java.lang.String[] { "Key", "Value", "Name", "Desc", });
+    internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_descriptor =
+      getDescriptor().getMessageTypes().get(2);
+    internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_StrConfigMessage_descriptor,
+        new java.lang.String[] { "Key", "Value", "Name", "Desc", });
+    internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(3);
+    internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConfigPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "BoolConfs", "IntConfs", "StrConfs", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1660 - 0
src/main/java/Im/Scrm/Ww/Proto/WConfigSetting.java

@@ -0,0 +1,1660 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WConfigSetting.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WConfigSetting {
+  private WConfigSetting() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ConfigSettingMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConfigSettingMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> 
+        getBoolConfsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getBoolConfs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    int getBoolConfsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+        getBoolConfsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder getBoolConfsOrBuilder(
+        int index);
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> 
+        getIntConfsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getIntConfs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    int getIntConfsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+        getIntConfsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder getIntConfsOrBuilder(
+        int index);
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> 
+        getStrConfsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getStrConfs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    int getStrConfsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+        getStrConfsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder getStrConfsOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConfigSettingMessage}
+   */
+  public  static final class ConfigSettingMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConfigSettingMessage)
+      ConfigSettingMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConfigSettingMessage.newBuilder() to construct.
+    private ConfigSettingMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConfigSettingMessage() {
+      boolConfs_ = java.util.Collections.emptyList();
+      intConfs_ = java.util.Collections.emptyList();
+      strConfs_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConfigSettingMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConfigSettingMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                boolConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              boolConfs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                intConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              intConfs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 42: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                strConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              strConfs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          boolConfs_ = java.util.Collections.unmodifiableList(boolConfs_);
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          intConfs_ = java.util.Collections.unmodifiableList(intConfs_);
+        }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          strConfs_ = java.util.Collections.unmodifiableList(strConfs_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConfigSetting.internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConfigSetting.internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.class, Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int BOOLCONFS_FIELD_NUMBER = 3;
+    private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> boolConfs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> getBoolConfsList() {
+      return boolConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+        getBoolConfsOrBuilderList() {
+      return boolConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public int getBoolConfsCount() {
+      return boolConfs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getBoolConfs(int index) {
+      return boolConfs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder getBoolConfsOrBuilder(
+        int index) {
+      return boolConfs_.get(index);
+    }
+
+    public static final int INTCONFS_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> intConfs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> getIntConfsList() {
+      return intConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+        getIntConfsOrBuilderList() {
+      return intConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public int getIntConfsCount() {
+      return intConfs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getIntConfs(int index) {
+      return intConfs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder getIntConfsOrBuilder(
+        int index) {
+      return intConfs_.get(index);
+    }
+
+    public static final int STRCONFS_FIELD_NUMBER = 5;
+    private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> strConfs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> getStrConfsList() {
+      return strConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+        getStrConfsOrBuilderList() {
+      return strConfs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public int getStrConfsCount() {
+      return strConfs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getStrConfs(int index) {
+      return strConfs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder getStrConfsOrBuilder(
+        int index) {
+      return strConfs_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < boolConfs_.size(); i++) {
+        output.writeMessage(3, boolConfs_.get(i));
+      }
+      for (int i = 0; i < intConfs_.size(); i++) {
+        output.writeMessage(4, intConfs_.get(i));
+      }
+      for (int i = 0; i < strConfs_.size(); i++) {
+        output.writeMessage(5, strConfs_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < boolConfs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, boolConfs_.get(i));
+      }
+      for (int i = 0; i < intConfs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, intConfs_.get(i));
+      }
+      for (int i = 0; i < strConfs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, strConfs_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage other = (Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getBoolConfsList()
+          .equals(other.getBoolConfsList())) return false;
+      if (!getIntConfsList()
+          .equals(other.getIntConfsList())) return false;
+      if (!getStrConfsList()
+          .equals(other.getStrConfsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getBoolConfsCount() > 0) {
+        hash = (37 * hash) + BOOLCONFS_FIELD_NUMBER;
+        hash = (53 * hash) + getBoolConfsList().hashCode();
+      }
+      if (getIntConfsCount() > 0) {
+        hash = (37 * hash) + INTCONFS_FIELD_NUMBER;
+        hash = (53 * hash) + getIntConfsList().hashCode();
+      }
+      if (getStrConfsCount() > 0) {
+        hash = (37 * hash) + STRCONFS_FIELD_NUMBER;
+        hash = (53 * hash) + getStrConfsList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConfigSettingMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConfigSettingMessage)
+        Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConfigSetting.internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConfigSetting.internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.class, Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getBoolConfsFieldBuilder();
+          getIntConfsFieldBuilder();
+          getStrConfsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (boolConfsBuilder_ == null) {
+          boolConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          boolConfsBuilder_.clear();
+        }
+        if (intConfsBuilder_ == null) {
+          intConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        } else {
+          intConfsBuilder_.clear();
+        }
+        if (strConfsBuilder_ == null) {
+          strConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        } else {
+          strConfsBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConfigSetting.internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage build() {
+        Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage result = new Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (boolConfsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            boolConfs_ = java.util.Collections.unmodifiableList(boolConfs_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.boolConfs_ = boolConfs_;
+        } else {
+          result.boolConfs_ = boolConfsBuilder_.build();
+        }
+        if (intConfsBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) != 0)) {
+            intConfs_ = java.util.Collections.unmodifiableList(intConfs_);
+            bitField0_ = (bitField0_ & ~0x00000002);
+          }
+          result.intConfs_ = intConfs_;
+        } else {
+          result.intConfs_ = intConfsBuilder_.build();
+        }
+        if (strConfsBuilder_ == null) {
+          if (((bitField0_ & 0x00000004) != 0)) {
+            strConfs_ = java.util.Collections.unmodifiableList(strConfs_);
+            bitField0_ = (bitField0_ & ~0x00000004);
+          }
+          result.strConfs_ = strConfs_;
+        } else {
+          result.strConfs_ = strConfsBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (boolConfsBuilder_ == null) {
+          if (!other.boolConfs_.isEmpty()) {
+            if (boolConfs_.isEmpty()) {
+              boolConfs_ = other.boolConfs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureBoolConfsIsMutable();
+              boolConfs_.addAll(other.boolConfs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.boolConfs_.isEmpty()) {
+            if (boolConfsBuilder_.isEmpty()) {
+              boolConfsBuilder_.dispose();
+              boolConfsBuilder_ = null;
+              boolConfs_ = other.boolConfs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              boolConfsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getBoolConfsFieldBuilder() : null;
+            } else {
+              boolConfsBuilder_.addAllMessages(other.boolConfs_);
+            }
+          }
+        }
+        if (intConfsBuilder_ == null) {
+          if (!other.intConfs_.isEmpty()) {
+            if (intConfs_.isEmpty()) {
+              intConfs_ = other.intConfs_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+            } else {
+              ensureIntConfsIsMutable();
+              intConfs_.addAll(other.intConfs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.intConfs_.isEmpty()) {
+            if (intConfsBuilder_.isEmpty()) {
+              intConfsBuilder_.dispose();
+              intConfsBuilder_ = null;
+              intConfs_ = other.intConfs_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              intConfsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getIntConfsFieldBuilder() : null;
+            } else {
+              intConfsBuilder_.addAllMessages(other.intConfs_);
+            }
+          }
+        }
+        if (strConfsBuilder_ == null) {
+          if (!other.strConfs_.isEmpty()) {
+            if (strConfs_.isEmpty()) {
+              strConfs_ = other.strConfs_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+            } else {
+              ensureStrConfsIsMutable();
+              strConfs_.addAll(other.strConfs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.strConfs_.isEmpty()) {
+            if (strConfsBuilder_.isEmpty()) {
+              strConfsBuilder_.dispose();
+              strConfsBuilder_ = null;
+              strConfs_ = other.strConfs_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              strConfsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getStrConfsFieldBuilder() : null;
+            } else {
+              strConfsBuilder_.addAllMessages(other.strConfs_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> boolConfs_ =
+        java.util.Collections.emptyList();
+      private void ensureBoolConfsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          boolConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage>(boolConfs_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> boolConfsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> getBoolConfsList() {
+        if (boolConfsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(boolConfs_);
+        } else {
+          return boolConfsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public int getBoolConfsCount() {
+        if (boolConfsBuilder_ == null) {
+          return boolConfs_.size();
+        } else {
+          return boolConfsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage getBoolConfs(int index) {
+        if (boolConfsBuilder_ == null) {
+          return boolConfs_.get(index);
+        } else {
+          return boolConfsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder setBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage value) {
+        if (boolConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureBoolConfsIsMutable();
+          boolConfs_.set(index, value);
+          onChanged();
+        } else {
+          boolConfsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder setBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder builderForValue) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          boolConfsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage value) {
+        if (boolConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(value);
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage value) {
+        if (boolConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(index, value);
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(
+          Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder builderForValue) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addBoolConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder builderForValue) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          boolConfsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder addAllBoolConfs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage> values) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, boolConfs_);
+          onChanged();
+        } else {
+          boolConfsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder clearBoolConfs() {
+        if (boolConfsBuilder_ == null) {
+          boolConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          boolConfsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Builder removeBoolConfs(int index) {
+        if (boolConfsBuilder_ == null) {
+          ensureBoolConfsIsMutable();
+          boolConfs_.remove(index);
+          onChanged();
+        } else {
+          boolConfsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder getBoolConfsBuilder(
+          int index) {
+        return getBoolConfsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder getBoolConfsOrBuilder(
+          int index) {
+        if (boolConfsBuilder_ == null) {
+          return boolConfs_.get(index);  } else {
+          return boolConfsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+           getBoolConfsOrBuilderList() {
+        if (boolConfsBuilder_ != null) {
+          return boolConfsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(boolConfs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder addBoolConfsBuilder() {
+        return getBoolConfsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder addBoolConfsBuilder(
+          int index) {
+        return getBoolConfsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.BoolConfigMessage BoolConfs = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder> 
+           getBoolConfsBuilderList() {
+        return getBoolConfsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder> 
+          getBoolConfsFieldBuilder() {
+        if (boolConfsBuilder_ == null) {
+          boolConfsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.BoolConfigMessageOrBuilder>(
+                  boolConfs_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          boolConfs_ = null;
+        }
+        return boolConfsBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> intConfs_ =
+        java.util.Collections.emptyList();
+      private void ensureIntConfsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          intConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage>(intConfs_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> intConfsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> getIntConfsList() {
+        if (intConfsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(intConfs_);
+        } else {
+          return intConfsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public int getIntConfsCount() {
+        if (intConfsBuilder_ == null) {
+          return intConfs_.size();
+        } else {
+          return intConfsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage getIntConfs(int index) {
+        if (intConfsBuilder_ == null) {
+          return intConfs_.get(index);
+        } else {
+          return intConfsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder setIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage value) {
+        if (intConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureIntConfsIsMutable();
+          intConfs_.set(index, value);
+          onChanged();
+        } else {
+          intConfsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder setIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder builderForValue) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          intConfsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage value) {
+        if (intConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureIntConfsIsMutable();
+          intConfs_.add(value);
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage value) {
+        if (intConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureIntConfsIsMutable();
+          intConfs_.add(index, value);
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(
+          Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder builderForValue) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addIntConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder builderForValue) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          intConfsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder addAllIntConfs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage> values) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, intConfs_);
+          onChanged();
+        } else {
+          intConfsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder clearIntConfs() {
+        if (intConfsBuilder_ == null) {
+          intConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+          onChanged();
+        } else {
+          intConfsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Builder removeIntConfs(int index) {
+        if (intConfsBuilder_ == null) {
+          ensureIntConfsIsMutable();
+          intConfs_.remove(index);
+          onChanged();
+        } else {
+          intConfsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder getIntConfsBuilder(
+          int index) {
+        return getIntConfsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder getIntConfsOrBuilder(
+          int index) {
+        if (intConfsBuilder_ == null) {
+          return intConfs_.get(index);  } else {
+          return intConfsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+           getIntConfsOrBuilderList() {
+        if (intConfsBuilder_ != null) {
+          return intConfsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(intConfs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder addIntConfsBuilder() {
+        return getIntConfsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder addIntConfsBuilder(
+          int index) {
+        return getIntConfsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.IntConfigMessage IntConfs = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder> 
+           getIntConfsBuilderList() {
+        return getIntConfsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder> 
+          getIntConfsFieldBuilder() {
+        if (intConfsBuilder_ == null) {
+          intConfsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.IntConfigMessageOrBuilder>(
+                  intConfs_,
+                  ((bitField0_ & 0x00000002) != 0),
+                  getParentForChildren(),
+                  isClean());
+          intConfs_ = null;
+        }
+        return intConfsBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> strConfs_ =
+        java.util.Collections.emptyList();
+      private void ensureStrConfsIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          strConfs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage>(strConfs_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> strConfsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> getStrConfsList() {
+        if (strConfsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(strConfs_);
+        } else {
+          return strConfsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public int getStrConfsCount() {
+        if (strConfsBuilder_ == null) {
+          return strConfs_.size();
+        } else {
+          return strConfsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage getStrConfs(int index) {
+        if (strConfsBuilder_ == null) {
+          return strConfs_.get(index);
+        } else {
+          return strConfsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder setStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage value) {
+        if (strConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStrConfsIsMutable();
+          strConfs_.set(index, value);
+          onChanged();
+        } else {
+          strConfsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder setStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder builderForValue) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          strConfsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage value) {
+        if (strConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStrConfsIsMutable();
+          strConfs_.add(value);
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage value) {
+        if (strConfsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureStrConfsIsMutable();
+          strConfs_.add(index, value);
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(
+          Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder builderForValue) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addStrConfs(
+          int index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder builderForValue) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          strConfsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder addAllStrConfs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage> values) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, strConfs_);
+          onChanged();
+        } else {
+          strConfsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder clearStrConfs() {
+        if (strConfsBuilder_ == null) {
+          strConfs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+          onChanged();
+        } else {
+          strConfsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Builder removeStrConfs(int index) {
+        if (strConfsBuilder_ == null) {
+          ensureStrConfsIsMutable();
+          strConfs_.remove(index);
+          onChanged();
+        } else {
+          strConfsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder getStrConfsBuilder(
+          int index) {
+        return getStrConfsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder getStrConfsOrBuilder(
+          int index) {
+        if (strConfsBuilder_ == null) {
+          return strConfs_.get(index);  } else {
+          return strConfsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+           getStrConfsOrBuilderList() {
+        if (strConfsBuilder_ != null) {
+          return strConfsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(strConfs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder addStrConfsBuilder() {
+        return getStrConfsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder addStrConfsBuilder(
+          int index) {
+        return getStrConfsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.StrConfigMessage StrConfs = 5;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder> 
+           getStrConfsBuilderList() {
+        return getStrConfsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder> 
+          getStrConfsFieldBuilder() {
+        if (strConfsBuilder_ == null) {
+          strConfsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessage.Builder, Im.Scrm.Ww.Proto.WConfigPushNotice.StrConfigMessageOrBuilder>(
+                  strConfs_,
+                  ((bitField0_ & 0x00000004) != 0),
+                  getParentForChildren(),
+                  isClean());
+          strConfs_ = null;
+        }
+        return strConfsBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConfigSettingMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConfigSettingMessage)
+    private static final Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConfigSettingMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConfigSettingMessage>() {
+      @java.lang.Override
+      public ConfigSettingMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConfigSettingMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConfigSettingMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConfigSettingMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConfigSetting.ConfigSettingMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\024WConfigSetting.proto\022\020Im.Scrm.Ww.Proto" +
+      "\032\027WConfigPushNotice.proto\"\310\001\n\024ConfigSett" +
+      "ingMessage\022\014\n\004WxId\030\001 \001(\003\0226\n\tBoolConfs\030\003 " +
+      "\003(\0132#.Im.Scrm.Ww.Proto.BoolConfigMessage" +
+      "\0224\n\010IntConfs\030\004 \003(\0132\".Im.Scrm.Ww.Proto.In" +
+      "tConfigMessage\0224\n\010StrConfs\030\005 \003(\0132\".Im.Sc" +
+      "rm.Ww.Proto.StrConfigMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConfigPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConfigSettingMessage_descriptor,
+        new java.lang.String[] { "WxId", "BoolConfs", "IntConfs", "StrConfs", });
+    Im.Scrm.Ww.Proto.WConfigPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 3461 - 0
src/main/java/Im/Scrm/Ww/Proto/WContactPushNotice.java

@@ -0,0 +1,3461 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WContactPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WContactPushNotice {
+  private WContactPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ContactPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ContactPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage> 
+        getContactsList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage getContacts(int index);
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    int getContactsCount();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder> 
+        getContactsOrBuilderList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder getContactsOrBuilder(
+        int index);
+
+    /**
+     * <code>int32 Size = 3;</code>
+     * @return The size.
+     */
+    int getSize();
+
+    /**
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    int getCount();
+
+    /**
+     * <code>int32 Page = 5;</code>
+     * @return The page.
+     */
+    int getPage();
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ContactPushNoticeMessage}
+   */
+  public  static final class ContactPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ContactPushNoticeMessage)
+      ContactPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ContactPushNoticeMessage.newBuilder() to construct.
+    private ContactPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ContactPushNoticeMessage() {
+      contacts_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ContactPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ContactPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                contacts_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              contacts_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 24: {
+
+              size_ = input.readInt32();
+              break;
+            }
+            case 32: {
+
+              count_ = input.readInt32();
+              break;
+            }
+            case 40: {
+
+              page_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          contacts_ = java.util.Collections.unmodifiableList(contacts_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.class, Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTACTS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage> contacts_;
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage> getContactsList() {
+      return contacts_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder> 
+        getContactsOrBuilderList() {
+      return contacts_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    public int getContactsCount() {
+      return contacts_.size();
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage getContacts(int index) {
+      return contacts_.get(index);
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder getContactsOrBuilder(
+        int index) {
+      return contacts_.get(index);
+    }
+
+    public static final int SIZE_FIELD_NUMBER = 3;
+    private int size_;
+    /**
+     * <code>int32 Size = 3;</code>
+     * @return The size.
+     */
+    public int getSize() {
+      return size_;
+    }
+
+    public static final int COUNT_FIELD_NUMBER = 4;
+    private int count_;
+    /**
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    public int getCount() {
+      return count_;
+    }
+
+    public static final int PAGE_FIELD_NUMBER = 5;
+    private int page_;
+    /**
+     * <code>int32 Page = 5;</code>
+     * @return The page.
+     */
+    public int getPage() {
+      return page_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < contacts_.size(); i++) {
+        output.writeMessage(2, contacts_.get(i));
+      }
+      if (size_ != 0) {
+        output.writeInt32(3, size_);
+      }
+      if (count_ != 0) {
+        output.writeInt32(4, count_);
+      }
+      if (page_ != 0) {
+        output.writeInt32(5, page_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < contacts_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, contacts_.get(i));
+      }
+      if (size_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, size_);
+      }
+      if (count_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, count_);
+      }
+      if (page_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, page_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage other = (Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getContactsList()
+          .equals(other.getContactsList())) return false;
+      if (getSize()
+          != other.getSize()) return false;
+      if (getCount()
+          != other.getCount()) return false;
+      if (getPage()
+          != other.getPage()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getContactsCount() > 0) {
+        hash = (37 * hash) + CONTACTS_FIELD_NUMBER;
+        hash = (53 * hash) + getContactsList().hashCode();
+      }
+      hash = (37 * hash) + SIZE_FIELD_NUMBER;
+      hash = (53 * hash) + getSize();
+      hash = (37 * hash) + COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCount();
+      hash = (37 * hash) + PAGE_FIELD_NUMBER;
+      hash = (53 * hash) + getPage();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ContactPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ContactPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.class, Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getContactsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (contactsBuilder_ == null) {
+          contacts_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          contactsBuilder_.clear();
+        }
+        size_ = 0;
+
+        count_ = 0;
+
+        page_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage result = new Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (contactsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            contacts_ = java.util.Collections.unmodifiableList(contacts_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.contacts_ = contacts_;
+        } else {
+          result.contacts_ = contactsBuilder_.build();
+        }
+        result.size_ = size_;
+        result.count_ = count_;
+        result.page_ = page_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (contactsBuilder_ == null) {
+          if (!other.contacts_.isEmpty()) {
+            if (contacts_.isEmpty()) {
+              contacts_ = other.contacts_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureContactsIsMutable();
+              contacts_.addAll(other.contacts_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.contacts_.isEmpty()) {
+            if (contactsBuilder_.isEmpty()) {
+              contactsBuilder_.dispose();
+              contactsBuilder_ = null;
+              contacts_ = other.contacts_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              contactsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getContactsFieldBuilder() : null;
+            } else {
+              contactsBuilder_.addAllMessages(other.contacts_);
+            }
+          }
+        }
+        if (other.getSize() != 0) {
+          setSize(other.getSize());
+        }
+        if (other.getCount() != 0) {
+          setCount(other.getCount());
+        }
+        if (other.getPage() != 0) {
+          setPage(other.getPage());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage> contacts_ =
+        java.util.Collections.emptyList();
+      private void ensureContactsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          contacts_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage>(contacts_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder> contactsBuilder_;
+
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage> getContactsList() {
+        if (contactsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(contacts_);
+        } else {
+          return contactsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public int getContactsCount() {
+        if (contactsBuilder_ == null) {
+          return contacts_.size();
+        } else {
+          return contactsBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage getContacts(int index) {
+        if (contactsBuilder_ == null) {
+          return contacts_.get(index);
+        } else {
+          return contactsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder setContacts(
+          int index, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.set(index, value);
+          onChanged();
+        } else {
+          contactsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder setContacts(
+          int index, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.add(value);
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          int index, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.add(index, value);
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.add(builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          int index, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder addAllContacts(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage> values) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, contacts_);
+          onChanged();
+        } else {
+          contactsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder clearContacts() {
+        if (contactsBuilder_ == null) {
+          contacts_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          contactsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Builder removeContacts(int index) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.remove(index);
+          onChanged();
+        } else {
+          contactsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder getContactsBuilder(
+          int index) {
+        return getContactsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder getContactsOrBuilder(
+          int index) {
+        if (contactsBuilder_ == null) {
+          return contacts_.get(index);  } else {
+          return contactsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder> 
+           getContactsOrBuilderList() {
+        if (contactsBuilder_ != null) {
+          return contactsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(contacts_);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder addContactsBuilder() {
+        return getContactsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder addContactsBuilder(
+          int index) {
+        return getContactsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ContactMessage Contacts = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder> 
+           getContactsBuilderList() {
+        return getContactsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder> 
+          getContactsFieldBuilder() {
+        if (contactsBuilder_ == null) {
+          contactsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder>(
+                  contacts_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          contacts_ = null;
+        }
+        return contactsBuilder_;
+      }
+
+      private int size_ ;
+      /**
+       * <code>int32 Size = 3;</code>
+       * @return The size.
+       */
+      public int getSize() {
+        return size_;
+      }
+      /**
+       * <code>int32 Size = 3;</code>
+       * @param value The size to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSize(int value) {
+        
+        size_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Size = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSize() {
+        
+        size_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int count_ ;
+      /**
+       * <code>int32 Count = 4;</code>
+       * @return The count.
+       */
+      public int getCount() {
+        return count_;
+      }
+      /**
+       * <code>int32 Count = 4;</code>
+       * @param value The count to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCount(int value) {
+        
+        count_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Count = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCount() {
+        
+        count_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int page_ ;
+      /**
+       * <code>int32 Page = 5;</code>
+       * @return The page.
+       */
+      public int getPage() {
+        return page_;
+      }
+      /**
+       * <code>int32 Page = 5;</code>
+       * @param value The page to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPage(int value) {
+        
+        page_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Page = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPage() {
+        
+        page_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ContactPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ContactPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ContactPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ContactPushNoticeMessage>() {
+      @java.lang.Override
+      public ContactPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ContactPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ContactPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ContactPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WContactPushNotice.ContactPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface ContactMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ContactMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *唯一id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * RemoteId&gt;&gt;48==20 App;
+     * RemoteId&gt;&gt;48==28 微信用户;
+     * RemoteId&gt;&gt;48==33,34 外部客户;
+     * RemoteId&gt;&gt;48==39 群机器人;
+     * RemoteId&gt;&gt;48==30 内部客服;
+     * RemoteId&gt;&gt;48==32 VIP客户;
+     * </pre>
+     *
+     * <code>string AcctId = 2;</code>
+     * @return The acctId.
+     */
+    java.lang.String getAcctId();
+    /**
+     * <pre>
+     * RemoteId&gt;&gt;48==20 App;
+     * RemoteId&gt;&gt;48==28 微信用户;
+     * RemoteId&gt;&gt;48==33,34 外部客户;
+     * RemoteId&gt;&gt;48==39 群机器人;
+     * RemoteId&gt;&gt;48==30 内部客服;
+     * RemoteId&gt;&gt;48==32 VIP客户;
+     * </pre>
+     *
+     * <code>string AcctId = 2;</code>
+     * @return The bytes for acctId.
+     */
+    com.google.protobuf.ByteString
+        getAcctIdBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Alias = 4;</code>
+     * @return The alias.
+     */
+    java.lang.String getAlias();
+    /**
+     * <code>string Alias = 4;</code>
+     * @return The bytes for alias.
+     */
+    com.google.protobuf.ByteString
+        getAliasBytes();
+
+    /**
+     * <code>string Avatar = 5;</code>
+     * @return The avatar.
+     */
+    java.lang.String getAvatar();
+    /**
+     * <code>string Avatar = 5;</code>
+     * @return The bytes for avatar.
+     */
+    com.google.protobuf.ByteString
+        getAvatarBytes();
+
+    /**
+     * <pre>
+     * 职位
+     * </pre>
+     *
+     * <code>string Job = 6;</code>
+     * @return The job.
+     */
+    java.lang.String getJob();
+    /**
+     * <pre>
+     * 职位
+     * </pre>
+     *
+     * <code>string Job = 6;</code>
+     * @return The bytes for job.
+     */
+    com.google.protobuf.ByteString
+        getJobBytes();
+
+    /**
+     * <code>string Mobile = 7;</code>
+     * @return The mobile.
+     */
+    java.lang.String getMobile();
+    /**
+     * <code>string Mobile = 7;</code>
+     * @return The bytes for mobile.
+     */
+    com.google.protobuf.ByteString
+        getMobileBytes();
+
+    /**
+     * <code>string UnionId = 8;</code>
+     * @return The unionId.
+     */
+    java.lang.String getUnionId();
+    /**
+     * <code>string UnionId = 8;</code>
+     * @return The bytes for unionId.
+     */
+    com.google.protobuf.ByteString
+        getUnionIdBytes();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+     * @return The enum numeric value on the wire for gender.
+     */
+    int getGenderValue();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+     * @return The gender.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumGender getGender();
+
+    /**
+     * <pre>
+     * 所属部门id
+     * </pre>
+     *
+     * <code>repeated int64 DepartIds = 10;</code>
+     * @return A list containing the departIds.
+     */
+    java.util.List<java.lang.Long> getDepartIdsList();
+    /**
+     * <pre>
+     * 所属部门id
+     * </pre>
+     *
+     * <code>repeated int64 DepartIds = 10;</code>
+     * @return The count of departIds.
+     */
+    int getDepartIdsCount();
+    /**
+     * <pre>
+     * 所属部门id
+     * </pre>
+     *
+     * <code>repeated int64 DepartIds = 10;</code>
+     * @param index The index of the element to return.
+     * @return The departIds at the given index.
+     */
+    long getDepartIds(int index);
+
+    /**
+     * <pre>
+     * 属性 (attr &amp; 64) == 64 || (attr &amp; 33554432) == 33554432 已激活企业微信
+     * </pre>
+     *
+     * <code>int64 Attr = 11;</code>
+     * @return The attr.
+     */
+    long getAttr();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ContactMessage}
+   */
+  public  static final class ContactMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ContactMessage)
+      ContactMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ContactMessage.newBuilder() to construct.
+    private ContactMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ContactMessage() {
+      acctId_ = "";
+      name_ = "";
+      alias_ = "";
+      avatar_ = "";
+      job_ = "";
+      mobile_ = "";
+      unionId_ = "";
+      gender_ = 0;
+      departIds_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ContactMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ContactMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              acctId_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              alias_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              avatar_ = s;
+              break;
+            }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              job_ = s;
+              break;
+            }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              mobile_ = s;
+              break;
+            }
+            case 66: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              unionId_ = s;
+              break;
+            }
+            case 72: {
+              int rawValue = input.readEnum();
+
+              gender_ = rawValue;
+              break;
+            }
+            case 80: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                departIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              departIds_.addLong(input.readInt64());
+              break;
+            }
+            case 82: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                departIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                departIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 88: {
+
+              attr_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          departIds_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.class, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder.class);
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 1;
+    private long remoteId_;
+    /**
+     * <pre>
+     *唯一id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int ACCTID_FIELD_NUMBER = 2;
+    private volatile java.lang.Object acctId_;
+    /**
+     * <pre>
+     * RemoteId&gt;&gt;48==20 App;
+     * RemoteId&gt;&gt;48==28 微信用户;
+     * RemoteId&gt;&gt;48==33,34 外部客户;
+     * RemoteId&gt;&gt;48==39 群机器人;
+     * RemoteId&gt;&gt;48==30 内部客服;
+     * RemoteId&gt;&gt;48==32 VIP客户;
+     * </pre>
+     *
+     * <code>string AcctId = 2;</code>
+     * @return The acctId.
+     */
+    public java.lang.String getAcctId() {
+      java.lang.Object ref = acctId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        acctId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * RemoteId&gt;&gt;48==20 App;
+     * RemoteId&gt;&gt;48==28 微信用户;
+     * RemoteId&gt;&gt;48==33,34 外部客户;
+     * RemoteId&gt;&gt;48==39 群机器人;
+     * RemoteId&gt;&gt;48==30 内部客服;
+     * RemoteId&gt;&gt;48==32 VIP客户;
+     * </pre>
+     *
+     * <code>string AcctId = 2;</code>
+     * @return The bytes for acctId.
+     */
+    public com.google.protobuf.ByteString
+        getAcctIdBytes() {
+      java.lang.Object ref = acctId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        acctId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ALIAS_FIELD_NUMBER = 4;
+    private volatile java.lang.Object alias_;
+    /**
+     * <code>string Alias = 4;</code>
+     * @return The alias.
+     */
+    public java.lang.String getAlias() {
+      java.lang.Object ref = alias_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        alias_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Alias = 4;</code>
+     * @return The bytes for alias.
+     */
+    public com.google.protobuf.ByteString
+        getAliasBytes() {
+      java.lang.Object ref = alias_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        alias_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AVATAR_FIELD_NUMBER = 5;
+    private volatile java.lang.Object avatar_;
+    /**
+     * <code>string Avatar = 5;</code>
+     * @return The avatar.
+     */
+    public java.lang.String getAvatar() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        avatar_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Avatar = 5;</code>
+     * @return The bytes for avatar.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarBytes() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        avatar_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int JOB_FIELD_NUMBER = 6;
+    private volatile java.lang.Object job_;
+    /**
+     * <pre>
+     * 职位
+     * </pre>
+     *
+     * <code>string Job = 6;</code>
+     * @return The job.
+     */
+    public java.lang.String getJob() {
+      java.lang.Object ref = job_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        job_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 职位
+     * </pre>
+     *
+     * <code>string Job = 6;</code>
+     * @return The bytes for job.
+     */
+    public com.google.protobuf.ByteString
+        getJobBytes() {
+      java.lang.Object ref = job_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        job_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MOBILE_FIELD_NUMBER = 7;
+    private volatile java.lang.Object mobile_;
+    /**
+     * <code>string Mobile = 7;</code>
+     * @return The mobile.
+     */
+    public java.lang.String getMobile() {
+      java.lang.Object ref = mobile_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        mobile_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Mobile = 7;</code>
+     * @return The bytes for mobile.
+     */
+    public com.google.protobuf.ByteString
+        getMobileBytes() {
+      java.lang.Object ref = mobile_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        mobile_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int UNIONID_FIELD_NUMBER = 8;
+    private volatile java.lang.Object unionId_;
+    /**
+     * <code>string UnionId = 8;</code>
+     * @return The unionId.
+     */
+    public java.lang.String getUnionId() {
+      java.lang.Object ref = unionId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        unionId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string UnionId = 8;</code>
+     * @return The bytes for unionId.
+     */
+    public com.google.protobuf.ByteString
+        getUnionIdBytes() {
+      java.lang.Object ref = unionId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        unionId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int GENDER_FIELD_NUMBER = 9;
+    private int gender_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+     * @return The enum numeric value on the wire for gender.
+     */
+    public int getGenderValue() {
+      return gender_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+     * @return The gender.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumGender getGender() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumGender result = Im.Scrm.Ww.Proto.WTransport.EnumGender.valueOf(gender_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumGender.UNRECOGNIZED : result;
+    }
+
+    public static final int DEPARTIDS_FIELD_NUMBER = 10;
+    private com.google.protobuf.Internal.LongList departIds_;
+    /**
+     * <pre>
+     * 所属部门id
+     * </pre>
+     *
+     * <code>repeated int64 DepartIds = 10;</code>
+     * @return A list containing the departIds.
+     */
+    public java.util.List<java.lang.Long>
+        getDepartIdsList() {
+      return departIds_;
+    }
+    /**
+     * <pre>
+     * 所属部门id
+     * </pre>
+     *
+     * <code>repeated int64 DepartIds = 10;</code>
+     * @return The count of departIds.
+     */
+    public int getDepartIdsCount() {
+      return departIds_.size();
+    }
+    /**
+     * <pre>
+     * 所属部门id
+     * </pre>
+     *
+     * <code>repeated int64 DepartIds = 10;</code>
+     * @param index The index of the element to return.
+     * @return The departIds at the given index.
+     */
+    public long getDepartIds(int index) {
+      return departIds_.getLong(index);
+    }
+    private int departIdsMemoizedSerializedSize = -1;
+
+    public static final int ATTR_FIELD_NUMBER = 11;
+    private long attr_;
+    /**
+     * <pre>
+     * 属性 (attr &amp; 64) == 64 || (attr &amp; 33554432) == 33554432 已激活企业微信
+     * </pre>
+     *
+     * <code>int64 Attr = 11;</code>
+     * @return The attr.
+     */
+    public long getAttr() {
+      return attr_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (remoteId_ != 0L) {
+        output.writeInt64(1, remoteId_);
+      }
+      if (!getAcctIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, acctId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getAliasBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, alias_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, avatar_);
+      }
+      if (!getJobBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, job_);
+      }
+      if (!getMobileBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, mobile_);
+      }
+      if (!getUnionIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, unionId_);
+      }
+      if (gender_ != Im.Scrm.Ww.Proto.WTransport.EnumGender.UnknownGender.getNumber()) {
+        output.writeEnum(9, gender_);
+      }
+      if (getDepartIdsList().size() > 0) {
+        output.writeUInt32NoTag(82);
+        output.writeUInt32NoTag(departIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < departIds_.size(); i++) {
+        output.writeInt64NoTag(departIds_.getLong(i));
+      }
+      if (attr_ != 0L) {
+        output.writeInt64(11, attr_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, remoteId_);
+      }
+      if (!getAcctIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, acctId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getAliasBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, alias_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, avatar_);
+      }
+      if (!getJobBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, job_);
+      }
+      if (!getMobileBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, mobile_);
+      }
+      if (!getUnionIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, unionId_);
+      }
+      if (gender_ != Im.Scrm.Ww.Proto.WTransport.EnumGender.UnknownGender.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(9, gender_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < departIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(departIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getDepartIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        departIdsMemoizedSerializedSize = dataSize;
+      }
+      if (attr_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(11, attr_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage other = (Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage) obj;
+
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getAcctId()
+          .equals(other.getAcctId())) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getAlias()
+          .equals(other.getAlias())) return false;
+      if (!getAvatar()
+          .equals(other.getAvatar())) return false;
+      if (!getJob()
+          .equals(other.getJob())) return false;
+      if (!getMobile()
+          .equals(other.getMobile())) return false;
+      if (!getUnionId()
+          .equals(other.getUnionId())) return false;
+      if (gender_ != other.gender_) return false;
+      if (!getDepartIdsList()
+          .equals(other.getDepartIdsList())) return false;
+      if (getAttr()
+          != other.getAttr()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + ACCTID_FIELD_NUMBER;
+      hash = (53 * hash) + getAcctId().hashCode();
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + ALIAS_FIELD_NUMBER;
+      hash = (53 * hash) + getAlias().hashCode();
+      hash = (37 * hash) + AVATAR_FIELD_NUMBER;
+      hash = (53 * hash) + getAvatar().hashCode();
+      hash = (37 * hash) + JOB_FIELD_NUMBER;
+      hash = (53 * hash) + getJob().hashCode();
+      hash = (37 * hash) + MOBILE_FIELD_NUMBER;
+      hash = (53 * hash) + getMobile().hashCode();
+      hash = (37 * hash) + UNIONID_FIELD_NUMBER;
+      hash = (53 * hash) + getUnionId().hashCode();
+      hash = (37 * hash) + GENDER_FIELD_NUMBER;
+      hash = (53 * hash) + gender_;
+      if (getDepartIdsCount() > 0) {
+        hash = (37 * hash) + DEPARTIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getDepartIdsList().hashCode();
+      }
+      hash = (37 * hash) + ATTR_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getAttr());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ContactMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ContactMessage)
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.class, Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        remoteId_ = 0L;
+
+        acctId_ = "";
+
+        name_ = "";
+
+        alias_ = "";
+
+        avatar_ = "";
+
+        job_ = "";
+
+        mobile_ = "";
+
+        unionId_ = "";
+
+        gender_ = 0;
+
+        departIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        attr_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.internal_static_Im_Scrm_Ww_Proto_ContactMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage build() {
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage result = new Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.remoteId_ = remoteId_;
+        result.acctId_ = acctId_;
+        result.name_ = name_;
+        result.alias_ = alias_;
+        result.avatar_ = avatar_;
+        result.job_ = job_;
+        result.mobile_ = mobile_;
+        result.unionId_ = unionId_;
+        result.gender_ = gender_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          departIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.departIds_ = departIds_;
+        result.attr_ = attr_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage.getDefaultInstance()) return this;
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getAcctId().isEmpty()) {
+          acctId_ = other.acctId_;
+          onChanged();
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getAlias().isEmpty()) {
+          alias_ = other.alias_;
+          onChanged();
+        }
+        if (!other.getAvatar().isEmpty()) {
+          avatar_ = other.avatar_;
+          onChanged();
+        }
+        if (!other.getJob().isEmpty()) {
+          job_ = other.job_;
+          onChanged();
+        }
+        if (!other.getMobile().isEmpty()) {
+          mobile_ = other.mobile_;
+          onChanged();
+        }
+        if (!other.getUnionId().isEmpty()) {
+          unionId_ = other.unionId_;
+          onChanged();
+        }
+        if (other.gender_ != 0) {
+          setGenderValue(other.getGenderValue());
+        }
+        if (!other.departIds_.isEmpty()) {
+          if (departIds_.isEmpty()) {
+            departIds_ = other.departIds_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureDepartIdsIsMutable();
+            departIds_.addAll(other.departIds_);
+          }
+          onChanged();
+        }
+        if (other.getAttr() != 0L) {
+          setAttr(other.getAttr());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       *唯一id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       *唯一id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *唯一id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object acctId_ = "";
+      /**
+       * <pre>
+       * RemoteId&gt;&gt;48==20 App;
+       * RemoteId&gt;&gt;48==28 微信用户;
+       * RemoteId&gt;&gt;48==33,34 外部客户;
+       * RemoteId&gt;&gt;48==39 群机器人;
+       * RemoteId&gt;&gt;48==30 内部客服;
+       * RemoteId&gt;&gt;48==32 VIP客户;
+       * </pre>
+       *
+       * <code>string AcctId = 2;</code>
+       * @return The acctId.
+       */
+      public java.lang.String getAcctId() {
+        java.lang.Object ref = acctId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          acctId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * RemoteId&gt;&gt;48==20 App;
+       * RemoteId&gt;&gt;48==28 微信用户;
+       * RemoteId&gt;&gt;48==33,34 外部客户;
+       * RemoteId&gt;&gt;48==39 群机器人;
+       * RemoteId&gt;&gt;48==30 内部客服;
+       * RemoteId&gt;&gt;48==32 VIP客户;
+       * </pre>
+       *
+       * <code>string AcctId = 2;</code>
+       * @return The bytes for acctId.
+       */
+      public com.google.protobuf.ByteString
+          getAcctIdBytes() {
+        java.lang.Object ref = acctId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          acctId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * RemoteId&gt;&gt;48==20 App;
+       * RemoteId&gt;&gt;48==28 微信用户;
+       * RemoteId&gt;&gt;48==33,34 外部客户;
+       * RemoteId&gt;&gt;48==39 群机器人;
+       * RemoteId&gt;&gt;48==30 内部客服;
+       * RemoteId&gt;&gt;48==32 VIP客户;
+       * </pre>
+       *
+       * <code>string AcctId = 2;</code>
+       * @param value The acctId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAcctId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        acctId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * RemoteId&gt;&gt;48==20 App;
+       * RemoteId&gt;&gt;48==28 微信用户;
+       * RemoteId&gt;&gt;48==33,34 外部客户;
+       * RemoteId&gt;&gt;48==39 群机器人;
+       * RemoteId&gt;&gt;48==30 内部客服;
+       * RemoteId&gt;&gt;48==32 VIP客户;
+       * </pre>
+       *
+       * <code>string AcctId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAcctId() {
+        
+        acctId_ = getDefaultInstance().getAcctId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * RemoteId&gt;&gt;48==20 App;
+       * RemoteId&gt;&gt;48==28 微信用户;
+       * RemoteId&gt;&gt;48==33,34 外部客户;
+       * RemoteId&gt;&gt;48==39 群机器人;
+       * RemoteId&gt;&gt;48==30 内部客服;
+       * RemoteId&gt;&gt;48==32 VIP客户;
+       * </pre>
+       *
+       * <code>string AcctId = 2;</code>
+       * @param value The bytes for acctId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAcctIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        acctId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object alias_ = "";
+      /**
+       * <code>string Alias = 4;</code>
+       * @return The alias.
+       */
+      public java.lang.String getAlias() {
+        java.lang.Object ref = alias_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          alias_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Alias = 4;</code>
+       * @return The bytes for alias.
+       */
+      public com.google.protobuf.ByteString
+          getAliasBytes() {
+        java.lang.Object ref = alias_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          alias_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Alias = 4;</code>
+       * @param value The alias to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAlias(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        alias_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Alias = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAlias() {
+        
+        alias_ = getDefaultInstance().getAlias();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Alias = 4;</code>
+       * @param value The bytes for alias to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAliasBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        alias_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object avatar_ = "";
+      /**
+       * <code>string Avatar = 5;</code>
+       * @return The avatar.
+       */
+      public java.lang.String getAvatar() {
+        java.lang.Object ref = avatar_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          avatar_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 5;</code>
+       * @return The bytes for avatar.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarBytes() {
+        java.lang.Object ref = avatar_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          avatar_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 5;</code>
+       * @param value The avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatar(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatar() {
+        
+        avatar_ = getDefaultInstance().getAvatar();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 5;</code>
+       * @param value The bytes for avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object job_ = "";
+      /**
+       * <pre>
+       * 职位
+       * </pre>
+       *
+       * <code>string Job = 6;</code>
+       * @return The job.
+       */
+      public java.lang.String getJob() {
+        java.lang.Object ref = job_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          job_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 职位
+       * </pre>
+       *
+       * <code>string Job = 6;</code>
+       * @return The bytes for job.
+       */
+      public com.google.protobuf.ByteString
+          getJobBytes() {
+        java.lang.Object ref = job_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          job_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 职位
+       * </pre>
+       *
+       * <code>string Job = 6;</code>
+       * @param value The job to set.
+       * @return This builder for chaining.
+       */
+      public Builder setJob(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        job_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 职位
+       * </pre>
+       *
+       * <code>string Job = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearJob() {
+        
+        job_ = getDefaultInstance().getJob();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 职位
+       * </pre>
+       *
+       * <code>string Job = 6;</code>
+       * @param value The bytes for job to set.
+       * @return This builder for chaining.
+       */
+      public Builder setJobBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        job_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object mobile_ = "";
+      /**
+       * <code>string Mobile = 7;</code>
+       * @return The mobile.
+       */
+      public java.lang.String getMobile() {
+        java.lang.Object ref = mobile_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          mobile_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Mobile = 7;</code>
+       * @return The bytes for mobile.
+       */
+      public com.google.protobuf.ByteString
+          getMobileBytes() {
+        java.lang.Object ref = mobile_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          mobile_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Mobile = 7;</code>
+       * @param value The mobile to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMobile(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        mobile_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Mobile = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMobile() {
+        
+        mobile_ = getDefaultInstance().getMobile();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Mobile = 7;</code>
+       * @param value The bytes for mobile to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMobileBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        mobile_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object unionId_ = "";
+      /**
+       * <code>string UnionId = 8;</code>
+       * @return The unionId.
+       */
+      public java.lang.String getUnionId() {
+        java.lang.Object ref = unionId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          unionId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string UnionId = 8;</code>
+       * @return The bytes for unionId.
+       */
+      public com.google.protobuf.ByteString
+          getUnionIdBytes() {
+        java.lang.Object ref = unionId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          unionId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string UnionId = 8;</code>
+       * @param value The unionId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnionId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        unionId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string UnionId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnionId() {
+        
+        unionId_ = getDefaultInstance().getUnionId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string UnionId = 8;</code>
+       * @param value The bytes for unionId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnionIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        unionId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int gender_ = 0;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+       * @return The enum numeric value on the wire for gender.
+       */
+      public int getGenderValue() {
+        return gender_;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+       * @param value The enum numeric value on the wire for gender to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGenderValue(int value) {
+        gender_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+       * @return The gender.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumGender getGender() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumGender result = Im.Scrm.Ww.Proto.WTransport.EnumGender.valueOf(gender_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumGender.UNRECOGNIZED : result;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+       * @param value The gender to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGender(Im.Scrm.Ww.Proto.WTransport.EnumGender value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        gender_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearGender() {
+        
+        gender_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList departIds_ = emptyLongList();
+      private void ensureDepartIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          departIds_ = mutableCopy(departIds_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @return A list containing the departIds.
+       */
+      public java.util.List<java.lang.Long>
+          getDepartIdsList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(departIds_) : departIds_;
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @return The count of departIds.
+       */
+      public int getDepartIdsCount() {
+        return departIds_.size();
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @param index The index of the element to return.
+       * @return The departIds at the given index.
+       */
+      public long getDepartIds(int index) {
+        return departIds_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @param index The index to set the value at.
+       * @param value The departIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDepartIds(
+          int index, long value) {
+        ensureDepartIdsIsMutable();
+        departIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @param value The departIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addDepartIds(long value) {
+        ensureDepartIdsIsMutable();
+        departIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @param values The departIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllDepartIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureDepartIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, departIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 所属部门id
+       * </pre>
+       *
+       * <code>repeated int64 DepartIds = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDepartIds() {
+        departIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private long attr_ ;
+      /**
+       * <pre>
+       * 属性 (attr &amp; 64) == 64 || (attr &amp; 33554432) == 33554432 已激活企业微信
+       * </pre>
+       *
+       * <code>int64 Attr = 11;</code>
+       * @return The attr.
+       */
+      public long getAttr() {
+        return attr_;
+      }
+      /**
+       * <pre>
+       * 属性 (attr &amp; 64) == 64 || (attr &amp; 33554432) == 33554432 已激活企业微信
+       * </pre>
+       *
+       * <code>int64 Attr = 11;</code>
+       * @param value The attr to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAttr(long value) {
+        
+        attr_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 属性 (attr &amp; 64) == 64 || (attr &amp; 33554432) == 33554432 已激活企业微信
+       * </pre>
+       *
+       * <code>int64 Attr = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAttr() {
+        
+        attr_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ContactMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ContactMessage)
+    private static final Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ContactMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ContactMessage>() {
+      @java.lang.Override
+      public ContactMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ContactMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ContactMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ContactMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WContactPushNotice.ContactMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ContactMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ContactMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\030WContactPushNotice.proto\022\020Im.Scrm.Ww.P" +
+      "roto\032\020WTransport.proto\"\227\001\n\030ContactPushNo" +
+      "ticeMessage\022\014\n\004WxId\030\001 \001(\003\0222\n\010Contacts\030\002 " +
+      "\003(\0132 .Im.Scrm.Ww.Proto.ContactMessage\022\014\n" +
+      "\004Size\030\003 \001(\005\022\r\n\005Count\030\004 \001(\005\022\014\n\004Page\030\005 \001(\005" +
+      "\022\016\n\006TaskId\030\006 \001(\003\"\334\001\n\016ContactMessage\022\020\n\010R" +
+      "emoteId\030\001 \001(\003\022\016\n\006AcctId\030\002 \001(\t\022\014\n\004Name\030\003 " +
+      "\001(\t\022\r\n\005Alias\030\004 \001(\t\022\016\n\006Avatar\030\005 \001(\t\022\013\n\003Jo" +
+      "b\030\006 \001(\t\022\016\n\006Mobile\030\007 \001(\t\022\017\n\007UnionId\030\010 \001(\t" +
+      "\022,\n\006Gender\030\t \001(\0162\034.Im.Scrm.Ww.Proto.Enum" +
+      "Gender\022\021\n\tDepartIds\030\n \003(\003\022\014\n\004Attr\030\013 \001(\003b" +
+      "\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ContactPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Contacts", "Size", "Count", "Page", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_ContactMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_ContactMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ContactMessage_descriptor,
+        new java.lang.String[] { "RemoteId", "AcctId", "Name", "Alias", "Avatar", "Job", "Mobile", "UnionId", "Gender", "DepartIds", "Attr", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 819 - 0
src/main/java/Im/Scrm/Ww/Proto/WConversationAddNotice.java

@@ -0,0 +1,819 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WConversationAddNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WConversationAddNotice {
+  private WConversationAddNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ConversationAddNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConversationAddNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return Whether the convers field is set.
+     */
+    boolean hasConvers();
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return The convers.
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers();
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationAddNoticeMessage}
+   */
+  public  static final class ConversationAddNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConversationAddNoticeMessage)
+      ConversationAddNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConversationAddNoticeMessage.newBuilder() to construct.
+    private ConversationAddNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConversationAddNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConversationAddNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConversationAddNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder subBuilder = null;
+              if (convers_ != null) {
+                subBuilder = convers_.toBuilder();
+              }
+              convers_ = input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(convers_);
+                convers_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConversationAddNotice.internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConversationAddNotice.internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVERS_FIELD_NUMBER = 2;
+    private Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage convers_;
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return Whether the convers field is set.
+     */
+    public boolean hasConvers() {
+      return convers_ != null;
+    }
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return The convers.
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers() {
+      return convers_ == null ? Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : convers_;
+    }
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder() {
+      return getConvers();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convers_ != null) {
+        output.writeMessage(2, getConvers());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convers_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getConvers());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage other = (Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (hasConvers() != other.hasConvers()) return false;
+      if (hasConvers()) {
+        if (!getConvers()
+            .equals(other.getConvers())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (hasConvers()) {
+        hash = (37 * hash) + CONVERS_FIELD_NUMBER;
+        hash = (53 * hash) + getConvers().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationAddNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConversationAddNoticeMessage)
+        Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConversationAddNotice.internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConversationAddNotice.internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (conversBuilder_ == null) {
+          convers_ = null;
+        } else {
+          convers_ = null;
+          conversBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConversationAddNotice.internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage result = new Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage(this);
+        result.wxId_ = wxId_;
+        if (conversBuilder_ == null) {
+          result.convers_ = convers_;
+        } else {
+          result.convers_ = conversBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.hasConvers()) {
+          mergeConvers(other.getConvers());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage convers_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> conversBuilder_;
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       * @return Whether the convers field is set.
+       */
+      public boolean hasConvers() {
+        return conversBuilder_ != null || convers_ != null;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       * @return The convers.
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers() {
+        if (conversBuilder_ == null) {
+          return convers_ == null ? Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : convers_;
+        } else {
+          return conversBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder setConvers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          convers_ = value;
+          onChanged();
+        } else {
+          conversBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder setConvers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder builderForValue) {
+        if (conversBuilder_ == null) {
+          convers_ = builderForValue.build();
+          onChanged();
+        } else {
+          conversBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder mergeConvers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (convers_ != null) {
+            convers_ =
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.newBuilder(convers_).mergeFrom(value).buildPartial();
+          } else {
+            convers_ = value;
+          }
+          onChanged();
+        } else {
+          conversBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder clearConvers() {
+        if (conversBuilder_ == null) {
+          convers_ = null;
+          onChanged();
+        } else {
+          convers_ = null;
+          conversBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder getConversBuilder() {
+        
+        onChanged();
+        return getConversFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder() {
+        if (conversBuilder_ != null) {
+          return conversBuilder_.getMessageOrBuilder();
+        } else {
+          return convers_ == null ?
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : convers_;
+        }
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+          getConversFieldBuilder() {
+        if (conversBuilder_ == null) {
+          conversBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder>(
+                  getConvers(),
+                  getParentForChildren(),
+                  isClean());
+          convers_ = null;
+        }
+        return conversBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConversationAddNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConversationAddNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConversationAddNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConversationAddNoticeMessage>() {
+      @java.lang.Override
+      public ConversationAddNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConversationAddNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConversationAddNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConversationAddNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConversationAddNotice.ConversationAddNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WConversationAddNotice.proto\022\020Im.Scrm." +
+      "Ww.Proto\032\035WConversationPushNotice.proto\"" +
+      "d\n\034ConversationAddNoticeMessage\022\014\n\004WxId\030" +
+      "\001 \001(\003\0226\n\007Convers\030\002 \001(\0132%.Im.Scrm.Ww.Prot" +
+      "o.ConversationMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConversationAddNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Convers", });
+    Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 819 - 0
src/main/java/Im/Scrm/Ww/Proto/WConversationChangedNotice.java

@@ -0,0 +1,819 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WConversationChangedNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WConversationChangedNotice {
+  private WConversationChangedNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ConversationChangedNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return Whether the convers field is set.
+     */
+    boolean hasConvers();
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return The convers.
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers();
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage}
+   */
+  public  static final class ConversationChangedNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage)
+      ConversationChangedNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConversationChangedNoticeMessage.newBuilder() to construct.
+    private ConversationChangedNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConversationChangedNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConversationChangedNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConversationChangedNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder subBuilder = null;
+              if (convers_ != null) {
+                subBuilder = convers_.toBuilder();
+              }
+              convers_ = input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(convers_);
+                convers_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConversationChangedNotice.internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConversationChangedNotice.internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVERS_FIELD_NUMBER = 2;
+    private Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage convers_;
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return Whether the convers field is set.
+     */
+    public boolean hasConvers() {
+      return convers_ != null;
+    }
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     * @return The convers.
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers() {
+      return convers_ == null ? Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : convers_;
+    }
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder() {
+      return getConvers();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convers_ != null) {
+        output.writeMessage(2, getConvers());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convers_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getConvers());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage other = (Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (hasConvers() != other.hasConvers()) return false;
+      if (hasConvers()) {
+        if (!getConvers()
+            .equals(other.getConvers())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (hasConvers()) {
+        hash = (37 * hash) + CONVERS_FIELD_NUMBER;
+        hash = (53 * hash) + getConvers().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage)
+        Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConversationChangedNotice.internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConversationChangedNotice.internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (conversBuilder_ == null) {
+          convers_ = null;
+        } else {
+          convers_ = null;
+          conversBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConversationChangedNotice.internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage result = new Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage(this);
+        result.wxId_ = wxId_;
+        if (conversBuilder_ == null) {
+          result.convers_ = convers_;
+        } else {
+          result.convers_ = conversBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.hasConvers()) {
+          mergeConvers(other.getConvers());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage convers_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> conversBuilder_;
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       * @return Whether the convers field is set.
+       */
+      public boolean hasConvers() {
+        return conversBuilder_ != null || convers_ != null;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       * @return The convers.
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers() {
+        if (conversBuilder_ == null) {
+          return convers_ == null ? Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : convers_;
+        } else {
+          return conversBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder setConvers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          convers_ = value;
+          onChanged();
+        } else {
+          conversBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder setConvers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder builderForValue) {
+        if (conversBuilder_ == null) {
+          convers_ = builderForValue.build();
+          onChanged();
+        } else {
+          conversBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder mergeConvers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (convers_ != null) {
+            convers_ =
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.newBuilder(convers_).mergeFrom(value).buildPartial();
+          } else {
+            convers_ = value;
+          }
+          onChanged();
+        } else {
+          conversBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder clearConvers() {
+        if (conversBuilder_ == null) {
+          convers_ = null;
+          onChanged();
+        } else {
+          convers_ = null;
+          conversBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder getConversBuilder() {
+        
+        onChanged();
+        return getConversFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder() {
+        if (conversBuilder_ != null) {
+          return conversBuilder_.getMessageOrBuilder();
+        } else {
+          return convers_ == null ?
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : convers_;
+        }
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+          getConversFieldBuilder() {
+        if (conversBuilder_ == null) {
+          conversBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder>(
+                  getConvers(),
+                  getParentForChildren(),
+                  isClean());
+          convers_ = null;
+        }
+        return conversBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConversationChangedNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConversationChangedNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConversationChangedNoticeMessage>() {
+      @java.lang.Override
+      public ConversationChangedNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConversationChangedNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConversationChangedNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConversationChangedNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConversationChangedNotice.ConversationChangedNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n WConversationChangedNotice.proto\022\020Im.S" +
+      "crm.Ww.Proto\032\035WConversationPushNotice.pr" +
+      "oto\"h\n ConversationChangedNoticeMessage\022" +
+      "\014\n\004WxId\030\001 \001(\003\0226\n\007Convers\030\002 \001(\0132%.Im.Scrm" +
+      ".Ww.Proto.ConversationMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConversationChangedNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Convers", });
+    Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1162 - 0
src/main/java/Im/Scrm/Ww/Proto/WConversationInfoNotice.java

@@ -0,0 +1,1162 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WConversationInfoNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WConversationInfoNotice {
+  private WConversationInfoNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ConversationInfoNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+     * @return Whether the conver field is set.
+     */
+    boolean hasConver();
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+     * @return The conver.
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConver();
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConverOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage}
+   */
+  public  static final class ConversationInfoNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage)
+      ConversationInfoNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConversationInfoNoticeMessage.newBuilder() to construct.
+    private ConversationInfoNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConversationInfoNoticeMessage() {
+      errMsg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConversationInfoNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConversationInfoNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 42: {
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder subBuilder = null;
+              if (conver_ != null) {
+                subBuilder = conver_.toBuilder();
+              }
+              conver_ = input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(conver_);
+                conver_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConversationInfoNotice.internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConversationInfoNotice.internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int CONVER_FIELD_NUMBER = 5;
+    private Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage conver_;
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+     * @return Whether the conver field is set.
+     */
+    public boolean hasConver() {
+      return conver_ != null;
+    }
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+     * @return The conver.
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConver() {
+      return conver_ == null ? Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : conver_;
+    }
+    /**
+     * <pre>
+     * 会话
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConverOrBuilder() {
+      return getConver();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      if (conver_ != null) {
+        output.writeMessage(5, getConver());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      if (conver_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, getConver());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage other = (Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (hasConver() != other.hasConver()) return false;
+      if (hasConver()) {
+        if (!getConver()
+            .equals(other.getConver())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      if (hasConver()) {
+        hash = (37 * hash) + CONVER_FIELD_NUMBER;
+        hash = (53 * hash) + getConver().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage)
+        Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConversationInfoNotice.internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConversationInfoNotice.internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        taskId_ = 0L;
+
+        if (converBuilder_ == null) {
+          conver_ = null;
+        } else {
+          conver_ = null;
+          converBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConversationInfoNotice.internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage result = new Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        result.taskId_ = taskId_;
+        if (converBuilder_ == null) {
+          result.conver_ = conver_;
+        } else {
+          result.conver_ = converBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.hasConver()) {
+          mergeConver(other.getConver());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage conver_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> converBuilder_;
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       * @return Whether the conver field is set.
+       */
+      public boolean hasConver() {
+        return converBuilder_ != null || conver_ != null;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       * @return The conver.
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConver() {
+        if (converBuilder_ == null) {
+          return conver_ == null ? Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : conver_;
+        } else {
+          return converBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      public Builder setConver(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (converBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          conver_ = value;
+          onChanged();
+        } else {
+          converBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      public Builder setConver(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder builderForValue) {
+        if (converBuilder_ == null) {
+          conver_ = builderForValue.build();
+          onChanged();
+        } else {
+          converBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      public Builder mergeConver(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (converBuilder_ == null) {
+          if (conver_ != null) {
+            conver_ =
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.newBuilder(conver_).mergeFrom(value).buildPartial();
+          } else {
+            conver_ = value;
+          }
+          onChanged();
+        } else {
+          converBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      public Builder clearConver() {
+        if (converBuilder_ == null) {
+          conver_ = null;
+          onChanged();
+        } else {
+          conver_ = null;
+          converBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder getConverBuilder() {
+        
+        onChanged();
+        return getConverFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConverOrBuilder() {
+        if (converBuilder_ != null) {
+          return converBuilder_.getMessageOrBuilder();
+        } else {
+          return conver_ == null ?
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance() : conver_;
+        }
+      }
+      /**
+       * <pre>
+       * 会话
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.ConversationMessage Conver = 5;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+          getConverFieldBuilder() {
+        if (converBuilder_ == null) {
+          converBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder>(
+                  getConver(),
+                  getParentForChildren(),
+                  isClean());
+          conver_ = null;
+        }
+        return converBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConversationInfoNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConversationInfoNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConversationInfoNoticeMessage>() {
+      @java.lang.Override
+      public ConversationInfoNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConversationInfoNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConversationInfoNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConversationInfoNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConversationInfoNotice.ConversationInfoNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WConversationInfoNotice.proto\022\020Im.Scrm" +
+      ".Ww.Proto\032\035WConversationPushNotice.proto" +
+      "\"\225\001\n\035ConversationInfoNoticeMessage\022\014\n\004Wx" +
+      "Id\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010\022\016\n\006ErrMsg\030\003 \001(" +
+      "\t\022\016\n\006TaskId\030\004 \001(\003\0225\n\006Conver\030\005 \001(\0132%.Im.S" +
+      "crm.Ww.Proto.ConversationMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConversationInfoNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "TaskId", "Conver", });
+    Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 6141 - 0
src/main/java/Im/Scrm/Ww/Proto/WConversationPushNotice.java

@@ -0,0 +1,6141 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WConversationPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WConversationPushNotice {
+  private WConversationPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ConversationPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConversationPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage> 
+        getConversList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers(int index);
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    int getConversCount();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+        getConversOrBuilderList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder(
+        int index);
+
+    /**
+     * <code>int32 Size = 3;</code>
+     * @return The size.
+     */
+    int getSize();
+
+    /**
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    int getCount();
+
+    /**
+     * <code>int32 Page = 5;</code>
+     * @return The page.
+     */
+    int getPage();
+
+    /**
+     * <pre>
+     *本次推送是否结束
+     * </pre>
+     *
+     * <code>bool IsEnd = 6;</code>
+     * @return The isEnd.
+     */
+    boolean getIsEnd();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 NextOffset = 7;</code>
+     * @return The nextOffset.
+     */
+    int getNextOffset();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 Total = 8;</code>
+     * @return The total.
+     */
+    int getTotal();
+
+    /**
+     * <code>int64 TaskId = 9;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationPushNoticeMessage}
+   */
+  public  static final class ConversationPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConversationPushNoticeMessage)
+      ConversationPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConversationPushNoticeMessage.newBuilder() to construct.
+    private ConversationPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConversationPushNoticeMessage() {
+      convers_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConversationPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConversationPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                convers_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              convers_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 24: {
+
+              size_ = input.readInt32();
+              break;
+            }
+            case 32: {
+
+              count_ = input.readInt32();
+              break;
+            }
+            case 40: {
+
+              page_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              isEnd_ = input.readBool();
+              break;
+            }
+            case 56: {
+
+              nextOffset_ = input.readInt32();
+              break;
+            }
+            case 64: {
+
+              total_ = input.readInt32();
+              break;
+            }
+            case 72: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          convers_ = java.util.Collections.unmodifiableList(convers_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVERS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage> convers_;
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage> getConversList() {
+      return convers_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+        getConversOrBuilderList() {
+      return convers_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public int getConversCount() {
+      return convers_.size();
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers(int index) {
+      return convers_.get(index);
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder(
+        int index) {
+      return convers_.get(index);
+    }
+
+    public static final int SIZE_FIELD_NUMBER = 3;
+    private int size_;
+    /**
+     * <code>int32 Size = 3;</code>
+     * @return The size.
+     */
+    public int getSize() {
+      return size_;
+    }
+
+    public static final int COUNT_FIELD_NUMBER = 4;
+    private int count_;
+    /**
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    public int getCount() {
+      return count_;
+    }
+
+    public static final int PAGE_FIELD_NUMBER = 5;
+    private int page_;
+    /**
+     * <code>int32 Page = 5;</code>
+     * @return The page.
+     */
+    public int getPage() {
+      return page_;
+    }
+
+    public static final int ISEND_FIELD_NUMBER = 6;
+    private boolean isEnd_;
+    /**
+     * <pre>
+     *本次推送是否结束
+     * </pre>
+     *
+     * <code>bool IsEnd = 6;</code>
+     * @return The isEnd.
+     */
+    public boolean getIsEnd() {
+      return isEnd_;
+    }
+
+    public static final int NEXTOFFSET_FIELD_NUMBER = 7;
+    private int nextOffset_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 NextOffset = 7;</code>
+     * @return The nextOffset.
+     */
+    public int getNextOffset() {
+      return nextOffset_;
+    }
+
+    public static final int TOTAL_FIELD_NUMBER = 8;
+    private int total_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 Total = 8;</code>
+     * @return The total.
+     */
+    public int getTotal() {
+      return total_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 9;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 9;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < convers_.size(); i++) {
+        output.writeMessage(2, convers_.get(i));
+      }
+      if (size_ != 0) {
+        output.writeInt32(3, size_);
+      }
+      if (count_ != 0) {
+        output.writeInt32(4, count_);
+      }
+      if (page_ != 0) {
+        output.writeInt32(5, page_);
+      }
+      if (isEnd_ != false) {
+        output.writeBool(6, isEnd_);
+      }
+      if (nextOffset_ != 0) {
+        output.writeInt32(7, nextOffset_);
+      }
+      if (total_ != 0) {
+        output.writeInt32(8, total_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(9, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < convers_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, convers_.get(i));
+      }
+      if (size_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, size_);
+      }
+      if (count_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, count_);
+      }
+      if (page_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, page_);
+      }
+      if (isEnd_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(6, isEnd_);
+      }
+      if (nextOffset_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(7, nextOffset_);
+      }
+      if (total_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(8, total_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(9, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage other = (Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getConversList()
+          .equals(other.getConversList())) return false;
+      if (getSize()
+          != other.getSize()) return false;
+      if (getCount()
+          != other.getCount()) return false;
+      if (getPage()
+          != other.getPage()) return false;
+      if (getIsEnd()
+          != other.getIsEnd()) return false;
+      if (getNextOffset()
+          != other.getNextOffset()) return false;
+      if (getTotal()
+          != other.getTotal()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getConversCount() > 0) {
+        hash = (37 * hash) + CONVERS_FIELD_NUMBER;
+        hash = (53 * hash) + getConversList().hashCode();
+      }
+      hash = (37 * hash) + SIZE_FIELD_NUMBER;
+      hash = (53 * hash) + getSize();
+      hash = (37 * hash) + COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCount();
+      hash = (37 * hash) + PAGE_FIELD_NUMBER;
+      hash = (53 * hash) + getPage();
+      hash = (37 * hash) + ISEND_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsEnd());
+      hash = (37 * hash) + NEXTOFFSET_FIELD_NUMBER;
+      hash = (53 * hash) + getNextOffset();
+      hash = (37 * hash) + TOTAL_FIELD_NUMBER;
+      hash = (53 * hash) + getTotal();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConversationPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.class, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getConversFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (conversBuilder_ == null) {
+          convers_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          conversBuilder_.clear();
+        }
+        size_ = 0;
+
+        count_ = 0;
+
+        page_ = 0;
+
+        isEnd_ = false;
+
+        nextOffset_ = 0;
+
+        total_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage result = new Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (conversBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            convers_ = java.util.Collections.unmodifiableList(convers_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.convers_ = convers_;
+        } else {
+          result.convers_ = conversBuilder_.build();
+        }
+        result.size_ = size_;
+        result.count_ = count_;
+        result.page_ = page_;
+        result.isEnd_ = isEnd_;
+        result.nextOffset_ = nextOffset_;
+        result.total_ = total_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (conversBuilder_ == null) {
+          if (!other.convers_.isEmpty()) {
+            if (convers_.isEmpty()) {
+              convers_ = other.convers_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureConversIsMutable();
+              convers_.addAll(other.convers_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.convers_.isEmpty()) {
+            if (conversBuilder_.isEmpty()) {
+              conversBuilder_.dispose();
+              conversBuilder_ = null;
+              convers_ = other.convers_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              conversBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getConversFieldBuilder() : null;
+            } else {
+              conversBuilder_.addAllMessages(other.convers_);
+            }
+          }
+        }
+        if (other.getSize() != 0) {
+          setSize(other.getSize());
+        }
+        if (other.getCount() != 0) {
+          setCount(other.getCount());
+        }
+        if (other.getPage() != 0) {
+          setPage(other.getPage());
+        }
+        if (other.getIsEnd() != false) {
+          setIsEnd(other.getIsEnd());
+        }
+        if (other.getNextOffset() != 0) {
+          setNextOffset(other.getNextOffset());
+        }
+        if (other.getTotal() != 0) {
+          setTotal(other.getTotal());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage> convers_ =
+        java.util.Collections.emptyList();
+      private void ensureConversIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          convers_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage>(convers_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> conversBuilder_;
+
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage> getConversList() {
+        if (conversBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(convers_);
+        } else {
+          return conversBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public int getConversCount() {
+        if (conversBuilder_ == null) {
+          return convers_.size();
+        } else {
+          return conversBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getConvers(int index) {
+        if (conversBuilder_ == null) {
+          return convers_.get(index);
+        } else {
+          return conversBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder setConvers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureConversIsMutable();
+          convers_.set(index, value);
+          onChanged();
+        } else {
+          conversBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder setConvers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder builderForValue) {
+        if (conversBuilder_ == null) {
+          ensureConversIsMutable();
+          convers_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          conversBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder addConvers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureConversIsMutable();
+          convers_.add(value);
+          onChanged();
+        } else {
+          conversBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder addConvers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage value) {
+        if (conversBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureConversIsMutable();
+          convers_.add(index, value);
+          onChanged();
+        } else {
+          conversBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder addConvers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder builderForValue) {
+        if (conversBuilder_ == null) {
+          ensureConversIsMutable();
+          convers_.add(builderForValue.build());
+          onChanged();
+        } else {
+          conversBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder addConvers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder builderForValue) {
+        if (conversBuilder_ == null) {
+          ensureConversIsMutable();
+          convers_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          conversBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder addAllConvers(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage> values) {
+        if (conversBuilder_ == null) {
+          ensureConversIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, convers_);
+          onChanged();
+        } else {
+          conversBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder clearConvers() {
+        if (conversBuilder_ == null) {
+          convers_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          conversBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Builder removeConvers(int index) {
+        if (conversBuilder_ == null) {
+          ensureConversIsMutable();
+          convers_.remove(index);
+          onChanged();
+        } else {
+          conversBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder getConversBuilder(
+          int index) {
+        return getConversFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder getConversOrBuilder(
+          int index) {
+        if (conversBuilder_ == null) {
+          return convers_.get(index);  } else {
+          return conversBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+           getConversOrBuilderList() {
+        if (conversBuilder_ != null) {
+          return conversBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(convers_);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder addConversBuilder() {
+        return getConversFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder addConversBuilder(
+          int index) {
+        return getConversFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConversationMessage Convers = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder> 
+           getConversBuilderList() {
+        return getConversFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder> 
+          getConversFieldBuilder() {
+        if (conversBuilder_ == null) {
+          conversBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder>(
+                  convers_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          convers_ = null;
+        }
+        return conversBuilder_;
+      }
+
+      private int size_ ;
+      /**
+       * <code>int32 Size = 3;</code>
+       * @return The size.
+       */
+      public int getSize() {
+        return size_;
+      }
+      /**
+       * <code>int32 Size = 3;</code>
+       * @param value The size to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSize(int value) {
+        
+        size_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Size = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSize() {
+        
+        size_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int count_ ;
+      /**
+       * <code>int32 Count = 4;</code>
+       * @return The count.
+       */
+      public int getCount() {
+        return count_;
+      }
+      /**
+       * <code>int32 Count = 4;</code>
+       * @param value The count to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCount(int value) {
+        
+        count_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Count = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCount() {
+        
+        count_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int page_ ;
+      /**
+       * <code>int32 Page = 5;</code>
+       * @return The page.
+       */
+      public int getPage() {
+        return page_;
+      }
+      /**
+       * <code>int32 Page = 5;</code>
+       * @param value The page to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPage(int value) {
+        
+        page_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Page = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPage() {
+        
+        page_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private boolean isEnd_ ;
+      /**
+       * <pre>
+       *本次推送是否结束
+       * </pre>
+       *
+       * <code>bool IsEnd = 6;</code>
+       * @return The isEnd.
+       */
+      public boolean getIsEnd() {
+        return isEnd_;
+      }
+      /**
+       * <pre>
+       *本次推送是否结束
+       * </pre>
+       *
+       * <code>bool IsEnd = 6;</code>
+       * @param value The isEnd to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsEnd(boolean value) {
+        
+        isEnd_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *本次推送是否结束
+       * </pre>
+       *
+       * <code>bool IsEnd = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsEnd() {
+        
+        isEnd_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int nextOffset_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 NextOffset = 7;</code>
+       * @return The nextOffset.
+       */
+      public int getNextOffset() {
+        return nextOffset_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 NextOffset = 7;</code>
+       * @param value The nextOffset to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNextOffset(int value) {
+        
+        nextOffset_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 NextOffset = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNextOffset() {
+        
+        nextOffset_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int total_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 Total = 8;</code>
+       * @return The total.
+       */
+      public int getTotal() {
+        return total_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 Total = 8;</code>
+       * @param value The total to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTotal(int value) {
+        
+        total_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 Total = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTotal() {
+        
+        total_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 9;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 9;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConversationPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConversationPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConversationPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConversationPushNoticeMessage>() {
+      @java.lang.Override
+      public ConversationPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConversationPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConversationPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConversationPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface ConversationMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConversationMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    long getId();
+
+    /**
+     * <pre>
+     * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    java.lang.String getAvatar();
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    com.google.protobuf.ByteString
+        getAvatarBytes();
+
+    /**
+     * <pre>
+     * 0 单聊 1 群聊
+     * </pre>
+     *
+     * <code>int32 Type = 5;</code>
+     * @return The type.
+     */
+    int getType();
+
+    /**
+     * <pre>
+     *创建者id
+     * </pre>
+     *
+     * <code>int64 Creator = 6;</code>
+     * @return The creator.
+     */
+    long getCreator();
+
+    /**
+     * <pre>
+     *创建时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 7;</code>
+     * @return The createTime.
+     */
+    long getCreateTime();
+
+    /**
+     * <pre>
+     * 最后更新时间
+     * </pre>
+     *
+     * <code>int64 UpdateTime = 8;</code>
+     * @return The updateTime.
+     */
+    long getUpdateTime();
+
+    /**
+     * <pre>
+     * 是否新消息提示
+     * </pre>
+     *
+     * <code>bool Notified = 9;</code>
+     * @return The notified.
+     */
+    boolean getNotified();
+
+    /**
+     * <pre>
+     * &amp;2 全员群 &amp;32 部门群
+     * </pre>
+     *
+     * <code>int32 Flag = 10;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <pre>
+     *未读消息数
+     * </pre>
+     *
+     * <code>int32 UnreadCnt = 11;</code>
+     * @return The unreadCnt.
+     */
+    int getUnreadCnt();
+
+    /**
+     * <pre>
+     * 群公告
+     * </pre>
+     *
+     * <code>string Notice = 12;</code>
+     * @return The notice.
+     */
+    java.lang.String getNotice();
+    /**
+     * <pre>
+     * 群公告
+     * </pre>
+     *
+     * <code>string Notice = 12;</code>
+     * @return The bytes for notice.
+     */
+    com.google.protobuf.ByteString
+        getNoticeBytes();
+
+    /**
+     * <pre>
+     * 最新消息概要
+     * </pre>
+     *
+     * <code>string Digest = 13;</code>
+     * @return The digest.
+     */
+    java.lang.String getDigest();
+    /**
+     * <pre>
+     * 最新消息概要
+     * </pre>
+     *
+     * <code>string Digest = 13;</code>
+     * @return The bytes for digest.
+     */
+    com.google.protobuf.ByteString
+        getDigestBytes();
+
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> 
+        getMembersList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index);
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    int getMembersCount();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index);
+
+    /**
+     * <pre>
+     * 群管理员
+     * </pre>
+     *
+     * <code>repeated int64 Admins = 15;</code>
+     * @return A list containing the admins.
+     */
+    java.util.List<java.lang.Long> getAdminsList();
+    /**
+     * <pre>
+     * 群管理员
+     * </pre>
+     *
+     * <code>repeated int64 Admins = 15;</code>
+     * @return The count of admins.
+     */
+    int getAdminsCount();
+    /**
+     * <pre>
+     * 群管理员
+     * </pre>
+     *
+     * <code>repeated int64 Admins = 15;</code>
+     * @param index The index of the element to return.
+     * @return The admins at the given index.
+     */
+    long getAdmins(int index);
+
+    /**
+     * <pre>
+     * 是否有外部联系人(外部群)
+     * </pre>
+     *
+     * <code>bool HasExternMember = 16;</code>
+     * @return The hasExternMember.
+     */
+    boolean getHasExternMember();
+
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @return A list containing the avatarList.
+     */
+    java.util.List<java.lang.String>
+        getAvatarListList();
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @return The count of avatarList.
+     */
+    int getAvatarListCount();
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @param index The index of the element to return.
+     * @return The avatarList at the given index.
+     */
+    java.lang.String getAvatarList(int index);
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the avatarList at the given index.
+     */
+    com.google.protobuf.ByteString
+        getAvatarListBytes(int index);
+
+    /**
+     * <pre>
+     * 是否保存的群聊
+     * </pre>
+     *
+     * <code>bool isSaved = 18;</code>
+     * @return The isSaved.
+     */
+    boolean getIsSaved();
+
+    /**
+     * <pre>
+     * 是否标注
+     * </pre>
+     *
+     * <code>bool isMarked = 19;</code>
+     * @return The isMarked.
+     */
+    boolean getIsMarked();
+
+    /**
+     * <pre>
+     * 是否置顶
+     * </pre>
+     *
+     * <code>bool isTop = 20;</code>
+     * @return The isTop.
+     */
+    boolean getIsTop();
+
+    /**
+     * <pre>
+     * 在线客服服务id
+     * </pre>
+     *
+     * <code>int64 FwId = 21;</code>
+     * @return The fwId.
+     */
+    long getFwId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationMessage}
+   */
+  public  static final class ConversationMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConversationMessage)
+      ConversationMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConversationMessage.newBuilder() to construct.
+    private ConversationMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConversationMessage() {
+      name_ = "";
+      avatar_ = "";
+      notice_ = "";
+      digest_ = "";
+      members_ = java.util.Collections.emptyList();
+      admins_ = emptyLongList();
+      avatarList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConversationMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConversationMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              id_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              avatar_ = s;
+              break;
+            }
+            case 40: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              creator_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              createTime_ = input.readInt64();
+              break;
+            }
+            case 64: {
+
+              updateTime_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              notified_ = input.readBool();
+              break;
+            }
+            case 80: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 88: {
+
+              unreadCnt_ = input.readInt32();
+              break;
+            }
+            case 98: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              notice_ = s;
+              break;
+            }
+            case 106: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              digest_ = s;
+              break;
+            }
+            case 114: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              members_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 120: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                admins_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              admins_.addLong(input.readInt64());
+              break;
+            }
+            case 122: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+                admins_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                admins_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 128: {
+
+              hasExternMember_ = input.readBool();
+              break;
+            }
+            case 138: {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                avatarList_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              avatarList_.add(s);
+              break;
+            }
+            case 144: {
+
+              isSaved_ = input.readBool();
+              break;
+            }
+            case 152: {
+
+              isMarked_ = input.readBool();
+              break;
+            }
+            case 160: {
+
+              isTop_ = input.readBool();
+              break;
+            }
+            case 168: {
+
+              fwId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          members_ = java.util.Collections.unmodifiableList(members_);
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          admins_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          avatarList_ = avatarList_.getUnmodifiableView();
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.class, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder.class);
+    }
+
+    public static final int ID_FIELD_NUMBER = 1;
+    private long id_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    public long getId() {
+      return id_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AVATAR_FIELD_NUMBER = 4;
+    private volatile java.lang.Object avatar_;
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    public java.lang.String getAvatar() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        avatar_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarBytes() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        avatar_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 5;
+    private int type_;
+    /**
+     * <pre>
+     * 0 单聊 1 群聊
+     * </pre>
+     *
+     * <code>int32 Type = 5;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    public static final int CREATOR_FIELD_NUMBER = 6;
+    private long creator_;
+    /**
+     * <pre>
+     *创建者id
+     * </pre>
+     *
+     * <code>int64 Creator = 6;</code>
+     * @return The creator.
+     */
+    public long getCreator() {
+      return creator_;
+    }
+
+    public static final int CREATETIME_FIELD_NUMBER = 7;
+    private long createTime_;
+    /**
+     * <pre>
+     *创建时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 7;</code>
+     * @return The createTime.
+     */
+    public long getCreateTime() {
+      return createTime_;
+    }
+
+    public static final int UPDATETIME_FIELD_NUMBER = 8;
+    private long updateTime_;
+    /**
+     * <pre>
+     * 最后更新时间
+     * </pre>
+     *
+     * <code>int64 UpdateTime = 8;</code>
+     * @return The updateTime.
+     */
+    public long getUpdateTime() {
+      return updateTime_;
+    }
+
+    public static final int NOTIFIED_FIELD_NUMBER = 9;
+    private boolean notified_;
+    /**
+     * <pre>
+     * 是否新消息提示
+     * </pre>
+     *
+     * <code>bool Notified = 9;</code>
+     * @return The notified.
+     */
+    public boolean getNotified() {
+      return notified_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 10;
+    private int flag_;
+    /**
+     * <pre>
+     * &amp;2 全员群 &amp;32 部门群
+     * </pre>
+     *
+     * <code>int32 Flag = 10;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int UNREADCNT_FIELD_NUMBER = 11;
+    private int unreadCnt_;
+    /**
+     * <pre>
+     *未读消息数
+     * </pre>
+     *
+     * <code>int32 UnreadCnt = 11;</code>
+     * @return The unreadCnt.
+     */
+    public int getUnreadCnt() {
+      return unreadCnt_;
+    }
+
+    public static final int NOTICE_FIELD_NUMBER = 12;
+    private volatile java.lang.Object notice_;
+    /**
+     * <pre>
+     * 群公告
+     * </pre>
+     *
+     * <code>string Notice = 12;</code>
+     * @return The notice.
+     */
+    public java.lang.String getNotice() {
+      java.lang.Object ref = notice_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        notice_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 群公告
+     * </pre>
+     *
+     * <code>string Notice = 12;</code>
+     * @return The bytes for notice.
+     */
+    public com.google.protobuf.ByteString
+        getNoticeBytes() {
+      java.lang.Object ref = notice_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        notice_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int DIGEST_FIELD_NUMBER = 13;
+    private volatile java.lang.Object digest_;
+    /**
+     * <pre>
+     * 最新消息概要
+     * </pre>
+     *
+     * <code>string Digest = 13;</code>
+     * @return The digest.
+     */
+    public java.lang.String getDigest() {
+      java.lang.Object ref = digest_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        digest_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 最新消息概要
+     * </pre>
+     *
+     * <code>string Digest = 13;</code>
+     * @return The bytes for digest.
+     */
+    public com.google.protobuf.ByteString
+        getDigestBytes() {
+      java.lang.Object ref = digest_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        digest_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MEMBERS_FIELD_NUMBER = 14;
+    private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_;
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    public int getMembersCount() {
+      return members_.size();
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+      return members_.get(index);
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index) {
+      return members_.get(index);
+    }
+
+    public static final int ADMINS_FIELD_NUMBER = 15;
+    private com.google.protobuf.Internal.LongList admins_;
+    /**
+     * <pre>
+     * 群管理员
+     * </pre>
+     *
+     * <code>repeated int64 Admins = 15;</code>
+     * @return A list containing the admins.
+     */
+    public java.util.List<java.lang.Long>
+        getAdminsList() {
+      return admins_;
+    }
+    /**
+     * <pre>
+     * 群管理员
+     * </pre>
+     *
+     * <code>repeated int64 Admins = 15;</code>
+     * @return The count of admins.
+     */
+    public int getAdminsCount() {
+      return admins_.size();
+    }
+    /**
+     * <pre>
+     * 群管理员
+     * </pre>
+     *
+     * <code>repeated int64 Admins = 15;</code>
+     * @param index The index of the element to return.
+     * @return The admins at the given index.
+     */
+    public long getAdmins(int index) {
+      return admins_.getLong(index);
+    }
+    private int adminsMemoizedSerializedSize = -1;
+
+    public static final int HASEXTERNMEMBER_FIELD_NUMBER = 16;
+    private boolean hasExternMember_;
+    /**
+     * <pre>
+     * 是否有外部联系人(外部群)
+     * </pre>
+     *
+     * <code>bool HasExternMember = 16;</code>
+     * @return The hasExternMember.
+     */
+    public boolean getHasExternMember() {
+      return hasExternMember_;
+    }
+
+    public static final int AVATARLIST_FIELD_NUMBER = 17;
+    private com.google.protobuf.LazyStringList avatarList_;
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @return A list containing the avatarList.
+     */
+    public com.google.protobuf.ProtocolStringList
+        getAvatarListList() {
+      return avatarList_;
+    }
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @return The count of avatarList.
+     */
+    public int getAvatarListCount() {
+      return avatarList_.size();
+    }
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @param index The index of the element to return.
+     * @return The avatarList at the given index.
+     */
+    public java.lang.String getAvatarList(int index) {
+      return avatarList_.get(index);
+    }
+    /**
+     * <pre>
+     * 群聊头像列表,9宫格
+     * </pre>
+     *
+     * <code>repeated string AvatarList = 17;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the avatarList at the given index.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarListBytes(int index) {
+      return avatarList_.getByteString(index);
+    }
+
+    public static final int ISSAVED_FIELD_NUMBER = 18;
+    private boolean isSaved_;
+    /**
+     * <pre>
+     * 是否保存的群聊
+     * </pre>
+     *
+     * <code>bool isSaved = 18;</code>
+     * @return The isSaved.
+     */
+    public boolean getIsSaved() {
+      return isSaved_;
+    }
+
+    public static final int ISMARKED_FIELD_NUMBER = 19;
+    private boolean isMarked_;
+    /**
+     * <pre>
+     * 是否标注
+     * </pre>
+     *
+     * <code>bool isMarked = 19;</code>
+     * @return The isMarked.
+     */
+    public boolean getIsMarked() {
+      return isMarked_;
+    }
+
+    public static final int ISTOP_FIELD_NUMBER = 20;
+    private boolean isTop_;
+    /**
+     * <pre>
+     * 是否置顶
+     * </pre>
+     *
+     * <code>bool isTop = 20;</code>
+     * @return The isTop.
+     */
+    public boolean getIsTop() {
+      return isTop_;
+    }
+
+    public static final int FWID_FIELD_NUMBER = 21;
+    private long fwId_;
+    /**
+     * <pre>
+     * 在线客服服务id
+     * </pre>
+     *
+     * <code>int64 FwId = 21;</code>
+     * @return The fwId.
+     */
+    public long getFwId() {
+      return fwId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (id_ != 0L) {
+        output.writeInt64(1, id_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, avatar_);
+      }
+      if (type_ != 0) {
+        output.writeInt32(5, type_);
+      }
+      if (creator_ != 0L) {
+        output.writeInt64(6, creator_);
+      }
+      if (createTime_ != 0L) {
+        output.writeInt64(7, createTime_);
+      }
+      if (updateTime_ != 0L) {
+        output.writeInt64(8, updateTime_);
+      }
+      if (notified_ != false) {
+        output.writeBool(9, notified_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(10, flag_);
+      }
+      if (unreadCnt_ != 0) {
+        output.writeInt32(11, unreadCnt_);
+      }
+      if (!getNoticeBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, notice_);
+      }
+      if (!getDigestBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, digest_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        output.writeMessage(14, members_.get(i));
+      }
+      if (getAdminsList().size() > 0) {
+        output.writeUInt32NoTag(122);
+        output.writeUInt32NoTag(adminsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < admins_.size(); i++) {
+        output.writeInt64NoTag(admins_.getLong(i));
+      }
+      if (hasExternMember_ != false) {
+        output.writeBool(16, hasExternMember_);
+      }
+      for (int i = 0; i < avatarList_.size(); i++) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, avatarList_.getRaw(i));
+      }
+      if (isSaved_ != false) {
+        output.writeBool(18, isSaved_);
+      }
+      if (isMarked_ != false) {
+        output.writeBool(19, isMarked_);
+      }
+      if (isTop_ != false) {
+        output.writeBool(20, isTop_);
+      }
+      if (fwId_ != 0L) {
+        output.writeInt64(21, fwId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (id_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, id_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, avatar_);
+      }
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, type_);
+      }
+      if (creator_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, creator_);
+      }
+      if (createTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, createTime_);
+      }
+      if (updateTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, updateTime_);
+      }
+      if (notified_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(9, notified_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(10, flag_);
+      }
+      if (unreadCnt_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(11, unreadCnt_);
+      }
+      if (!getNoticeBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, notice_);
+      }
+      if (!getDigestBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, digest_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(14, members_.get(i));
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < admins_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(admins_.getLong(i));
+        }
+        size += dataSize;
+        if (!getAdminsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        adminsMemoizedSerializedSize = dataSize;
+      }
+      if (hasExternMember_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(16, hasExternMember_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < avatarList_.size(); i++) {
+          dataSize += computeStringSizeNoTag(avatarList_.getRaw(i));
+        }
+        size += dataSize;
+        size += 2 * getAvatarListList().size();
+      }
+      if (isSaved_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(18, isSaved_);
+      }
+      if (isMarked_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(19, isMarked_);
+      }
+      if (isTop_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(20, isTop_);
+      }
+      if (fwId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(21, fwId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage other = (Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage) obj;
+
+      if (getId()
+          != other.getId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getAvatar()
+          .equals(other.getAvatar())) return false;
+      if (getType()
+          != other.getType()) return false;
+      if (getCreator()
+          != other.getCreator()) return false;
+      if (getCreateTime()
+          != other.getCreateTime()) return false;
+      if (getUpdateTime()
+          != other.getUpdateTime()) return false;
+      if (getNotified()
+          != other.getNotified()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getUnreadCnt()
+          != other.getUnreadCnt()) return false;
+      if (!getNotice()
+          .equals(other.getNotice())) return false;
+      if (!getDigest()
+          .equals(other.getDigest())) return false;
+      if (!getMembersList()
+          .equals(other.getMembersList())) return false;
+      if (!getAdminsList()
+          .equals(other.getAdminsList())) return false;
+      if (getHasExternMember()
+          != other.getHasExternMember()) return false;
+      if (!getAvatarListList()
+          .equals(other.getAvatarListList())) return false;
+      if (getIsSaved()
+          != other.getIsSaved()) return false;
+      if (getIsMarked()
+          != other.getIsMarked()) return false;
+      if (getIsTop()
+          != other.getIsTop()) return false;
+      if (getFwId()
+          != other.getFwId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + AVATAR_FIELD_NUMBER;
+      hash = (53 * hash) + getAvatar().hashCode();
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (37 * hash) + CREATOR_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCreator());
+      hash = (37 * hash) + CREATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCreateTime());
+      hash = (37 * hash) + UPDATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getUpdateTime());
+      hash = (37 * hash) + NOTIFIED_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getNotified());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + UNREADCNT_FIELD_NUMBER;
+      hash = (53 * hash) + getUnreadCnt();
+      hash = (37 * hash) + NOTICE_FIELD_NUMBER;
+      hash = (53 * hash) + getNotice().hashCode();
+      hash = (37 * hash) + DIGEST_FIELD_NUMBER;
+      hash = (53 * hash) + getDigest().hashCode();
+      if (getMembersCount() > 0) {
+        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
+        hash = (53 * hash) + getMembersList().hashCode();
+      }
+      if (getAdminsCount() > 0) {
+        hash = (37 * hash) + ADMINS_FIELD_NUMBER;
+        hash = (53 * hash) + getAdminsList().hashCode();
+      }
+      hash = (37 * hash) + HASEXTERNMEMBER_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getHasExternMember());
+      if (getAvatarListCount() > 0) {
+        hash = (37 * hash) + AVATARLIST_FIELD_NUMBER;
+        hash = (53 * hash) + getAvatarListList().hashCode();
+      }
+      hash = (37 * hash) + ISSAVED_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsSaved());
+      hash = (37 * hash) + ISMARKED_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsMarked());
+      hash = (37 * hash) + ISTOP_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsTop());
+      hash = (37 * hash) + FWID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getFwId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConversationMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConversationMessage)
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.class, Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMembersFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        id_ = 0L;
+
+        remoteId_ = 0L;
+
+        name_ = "";
+
+        avatar_ = "";
+
+        type_ = 0;
+
+        creator_ = 0L;
+
+        createTime_ = 0L;
+
+        updateTime_ = 0L;
+
+        notified_ = false;
+
+        flag_ = 0;
+
+        unreadCnt_ = 0;
+
+        notice_ = "";
+
+        digest_ = "";
+
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          membersBuilder_.clear();
+        }
+        admins_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        hasExternMember_ = false;
+
+        avatarList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        isSaved_ = false;
+
+        isMarked_ = false;
+
+        isTop_ = false;
+
+        fwId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConversationMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage build() {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage result = new Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.id_ = id_;
+        result.remoteId_ = remoteId_;
+        result.name_ = name_;
+        result.avatar_ = avatar_;
+        result.type_ = type_;
+        result.creator_ = creator_;
+        result.createTime_ = createTime_;
+        result.updateTime_ = updateTime_;
+        result.notified_ = notified_;
+        result.flag_ = flag_;
+        result.unreadCnt_ = unreadCnt_;
+        result.notice_ = notice_;
+        result.digest_ = digest_;
+        if (membersBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            members_ = java.util.Collections.unmodifiableList(members_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.members_ = members_;
+        } else {
+          result.members_ = membersBuilder_.build();
+        }
+        if (((bitField0_ & 0x00000002) != 0)) {
+          admins_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.admins_ = admins_;
+        result.hasExternMember_ = hasExternMember_;
+        if (((bitField0_ & 0x00000004) != 0)) {
+          avatarList_ = avatarList_.getUnmodifiableView();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        }
+        result.avatarList_ = avatarList_;
+        result.isSaved_ = isSaved_;
+        result.isMarked_ = isMarked_;
+        result.isTop_ = isTop_;
+        result.fwId_ = fwId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage.getDefaultInstance()) return this;
+        if (other.getId() != 0L) {
+          setId(other.getId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getAvatar().isEmpty()) {
+          avatar_ = other.avatar_;
+          onChanged();
+        }
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        if (other.getCreator() != 0L) {
+          setCreator(other.getCreator());
+        }
+        if (other.getCreateTime() != 0L) {
+          setCreateTime(other.getCreateTime());
+        }
+        if (other.getUpdateTime() != 0L) {
+          setUpdateTime(other.getUpdateTime());
+        }
+        if (other.getNotified() != false) {
+          setNotified(other.getNotified());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getUnreadCnt() != 0) {
+          setUnreadCnt(other.getUnreadCnt());
+        }
+        if (!other.getNotice().isEmpty()) {
+          notice_ = other.notice_;
+          onChanged();
+        }
+        if (!other.getDigest().isEmpty()) {
+          digest_ = other.digest_;
+          onChanged();
+        }
+        if (membersBuilder_ == null) {
+          if (!other.members_.isEmpty()) {
+            if (members_.isEmpty()) {
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMembersIsMutable();
+              members_.addAll(other.members_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.members_.isEmpty()) {
+            if (membersBuilder_.isEmpty()) {
+              membersBuilder_.dispose();
+              membersBuilder_ = null;
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              membersBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMembersFieldBuilder() : null;
+            } else {
+              membersBuilder_.addAllMessages(other.members_);
+            }
+          }
+        }
+        if (!other.admins_.isEmpty()) {
+          if (admins_.isEmpty()) {
+            admins_ = other.admins_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureAdminsIsMutable();
+            admins_.addAll(other.admins_);
+          }
+          onChanged();
+        }
+        if (other.getHasExternMember() != false) {
+          setHasExternMember(other.getHasExternMember());
+        }
+        if (!other.avatarList_.isEmpty()) {
+          if (avatarList_.isEmpty()) {
+            avatarList_ = other.avatarList_;
+            bitField0_ = (bitField0_ & ~0x00000004);
+          } else {
+            ensureAvatarListIsMutable();
+            avatarList_.addAll(other.avatarList_);
+          }
+          onChanged();
+        }
+        if (other.getIsSaved() != false) {
+          setIsSaved(other.getIsSaved());
+        }
+        if (other.getIsMarked() != false) {
+          setIsMarked(other.getIsMarked());
+        }
+        if (other.getIsTop() != false) {
+          setIsTop(other.getIsTop());
+        }
+        if (other.getFwId() != 0L) {
+          setFwId(other.getFwId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long id_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return The id.
+       */
+      public long getId() {
+        return id_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @param value The id to set.
+       * @return This builder for chaining.
+       */
+      public Builder setId(long value) {
+        
+        id_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearId() {
+        
+        id_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object avatar_ = "";
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The avatar.
+       */
+      public java.lang.String getAvatar() {
+        java.lang.Object ref = avatar_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          avatar_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The bytes for avatar.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarBytes() {
+        java.lang.Object ref = avatar_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          avatar_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatar(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatar() {
+        
+        avatar_ = getDefaultInstance().getAvatar();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The bytes for avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int type_ ;
+      /**
+       * <pre>
+       * 0 单聊 1 群聊
+       * </pre>
+       *
+       * <code>int32 Type = 5;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <pre>
+       * 0 单聊 1 群聊
+       * </pre>
+       *
+       * <code>int32 Type = 5;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 0 单聊 1 群聊
+       * </pre>
+       *
+       * <code>int32 Type = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long creator_ ;
+      /**
+       * <pre>
+       *创建者id
+       * </pre>
+       *
+       * <code>int64 Creator = 6;</code>
+       * @return The creator.
+       */
+      public long getCreator() {
+        return creator_;
+      }
+      /**
+       * <pre>
+       *创建者id
+       * </pre>
+       *
+       * <code>int64 Creator = 6;</code>
+       * @param value The creator to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCreator(long value) {
+        
+        creator_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *创建者id
+       * </pre>
+       *
+       * <code>int64 Creator = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCreator() {
+        
+        creator_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long createTime_ ;
+      /**
+       * <pre>
+       *创建时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 7;</code>
+       * @return The createTime.
+       */
+      public long getCreateTime() {
+        return createTime_;
+      }
+      /**
+       * <pre>
+       *创建时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 7;</code>
+       * @param value The createTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCreateTime(long value) {
+        
+        createTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *创建时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCreateTime() {
+        
+        createTime_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long updateTime_ ;
+      /**
+       * <pre>
+       * 最后更新时间
+       * </pre>
+       *
+       * <code>int64 UpdateTime = 8;</code>
+       * @return The updateTime.
+       */
+      public long getUpdateTime() {
+        return updateTime_;
+      }
+      /**
+       * <pre>
+       * 最后更新时间
+       * </pre>
+       *
+       * <code>int64 UpdateTime = 8;</code>
+       * @param value The updateTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUpdateTime(long value) {
+        
+        updateTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 最后更新时间
+       * </pre>
+       *
+       * <code>int64 UpdateTime = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUpdateTime() {
+        
+        updateTime_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean notified_ ;
+      /**
+       * <pre>
+       * 是否新消息提示
+       * </pre>
+       *
+       * <code>bool Notified = 9;</code>
+       * @return The notified.
+       */
+      public boolean getNotified() {
+        return notified_;
+      }
+      /**
+       * <pre>
+       * 是否新消息提示
+       * </pre>
+       *
+       * <code>bool Notified = 9;</code>
+       * @param value The notified to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNotified(boolean value) {
+        
+        notified_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否新消息提示
+       * </pre>
+       *
+       * <code>bool Notified = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNotified() {
+        
+        notified_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <pre>
+       * &amp;2 全员群 &amp;32 部门群
+       * </pre>
+       *
+       * <code>int32 Flag = 10;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <pre>
+       * &amp;2 全员群 &amp;32 部门群
+       * </pre>
+       *
+       * <code>int32 Flag = 10;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * &amp;2 全员群 &amp;32 部门群
+       * </pre>
+       *
+       * <code>int32 Flag = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int unreadCnt_ ;
+      /**
+       * <pre>
+       *未读消息数
+       * </pre>
+       *
+       * <code>int32 UnreadCnt = 11;</code>
+       * @return The unreadCnt.
+       */
+      public int getUnreadCnt() {
+        return unreadCnt_;
+      }
+      /**
+       * <pre>
+       *未读消息数
+       * </pre>
+       *
+       * <code>int32 UnreadCnt = 11;</code>
+       * @param value The unreadCnt to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnreadCnt(int value) {
+        
+        unreadCnt_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *未读消息数
+       * </pre>
+       *
+       * <code>int32 UnreadCnt = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnreadCnt() {
+        
+        unreadCnt_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object notice_ = "";
+      /**
+       * <pre>
+       * 群公告
+       * </pre>
+       *
+       * <code>string Notice = 12;</code>
+       * @return The notice.
+       */
+      public java.lang.String getNotice() {
+        java.lang.Object ref = notice_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          notice_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 群公告
+       * </pre>
+       *
+       * <code>string Notice = 12;</code>
+       * @return The bytes for notice.
+       */
+      public com.google.protobuf.ByteString
+          getNoticeBytes() {
+        java.lang.Object ref = notice_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          notice_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 群公告
+       * </pre>
+       *
+       * <code>string Notice = 12;</code>
+       * @param value The notice to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNotice(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        notice_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群公告
+       * </pre>
+       *
+       * <code>string Notice = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNotice() {
+        
+        notice_ = getDefaultInstance().getNotice();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群公告
+       * </pre>
+       *
+       * <code>string Notice = 12;</code>
+       * @param value The bytes for notice to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNoticeBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        notice_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object digest_ = "";
+      /**
+       * <pre>
+       * 最新消息概要
+       * </pre>
+       *
+       * <code>string Digest = 13;</code>
+       * @return The digest.
+       */
+      public java.lang.String getDigest() {
+        java.lang.Object ref = digest_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          digest_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 最新消息概要
+       * </pre>
+       *
+       * <code>string Digest = 13;</code>
+       * @return The bytes for digest.
+       */
+      public com.google.protobuf.ByteString
+          getDigestBytes() {
+        java.lang.Object ref = digest_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          digest_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 最新消息概要
+       * </pre>
+       *
+       * <code>string Digest = 13;</code>
+       * @param value The digest to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDigest(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        digest_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 最新消息概要
+       * </pre>
+       *
+       * <code>string Digest = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDigest() {
+        
+        digest_ = getDefaultInstance().getDigest();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 最新消息概要
+       * </pre>
+       *
+       * <code>string Digest = 13;</code>
+       * @param value The bytes for digest to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDigestBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        digest_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_ =
+        java.util.Collections.emptyList();
+      private void ensureMembersIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>(members_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> membersBuilder_;
+
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+        if (membersBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(members_);
+        } else {
+          return membersBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public int getMembersCount() {
+        if (membersBuilder_ == null) {
+          return members_.size();
+        } else {
+          return membersBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);
+        } else {
+          return membersBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.set(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder addMembers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder addMembers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder addAllMembers(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> values) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, members_);
+          onChanged();
+        } else {
+          membersBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder clearMembers() {
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          membersBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Builder removeMembers(int index) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.remove(index);
+          onChanged();
+        } else {
+          membersBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder getMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+          int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);  } else {
+          return membersBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+           getMembersOrBuilderList() {
+        if (membersBuilder_ != null) {
+          return membersBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(members_);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder() {
+        return getMembersFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 14;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder> 
+           getMembersBuilderList() {
+        return getMembersFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+          getMembersFieldBuilder() {
+        if (membersBuilder_ == null) {
+          membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder>(
+                  members_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          members_ = null;
+        }
+        return membersBuilder_;
+      }
+
+      private com.google.protobuf.Internal.LongList admins_ = emptyLongList();
+      private void ensureAdminsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          admins_ = mutableCopy(admins_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @return A list containing the admins.
+       */
+      public java.util.List<java.lang.Long>
+          getAdminsList() {
+        return ((bitField0_ & 0x00000002) != 0) ?
+                 java.util.Collections.unmodifiableList(admins_) : admins_;
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @return The count of admins.
+       */
+      public int getAdminsCount() {
+        return admins_.size();
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @param index The index of the element to return.
+       * @return The admins at the given index.
+       */
+      public long getAdmins(int index) {
+        return admins_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @param index The index to set the value at.
+       * @param value The admins to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAdmins(
+          int index, long value) {
+        ensureAdminsIsMutable();
+        admins_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @param value The admins to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAdmins(long value) {
+        ensureAdminsIsMutable();
+        admins_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @param values The admins to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllAdmins(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureAdminsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, admins_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群管理员
+       * </pre>
+       *
+       * <code>repeated int64 Admins = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAdmins() {
+        admins_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+
+      private boolean hasExternMember_ ;
+      /**
+       * <pre>
+       * 是否有外部联系人(外部群)
+       * </pre>
+       *
+       * <code>bool HasExternMember = 16;</code>
+       * @return The hasExternMember.
+       */
+      public boolean getHasExternMember() {
+        return hasExternMember_;
+      }
+      /**
+       * <pre>
+       * 是否有外部联系人(外部群)
+       * </pre>
+       *
+       * <code>bool HasExternMember = 16;</code>
+       * @param value The hasExternMember to set.
+       * @return This builder for chaining.
+       */
+      public Builder setHasExternMember(boolean value) {
+        
+        hasExternMember_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否有外部联系人(外部群)
+       * </pre>
+       *
+       * <code>bool HasExternMember = 16;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearHasExternMember() {
+        
+        hasExternMember_ = false;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.LazyStringList avatarList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureAvatarListIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          avatarList_ = new com.google.protobuf.LazyStringArrayList(avatarList_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @return A list containing the avatarList.
+       */
+      public com.google.protobuf.ProtocolStringList
+          getAvatarListList() {
+        return avatarList_.getUnmodifiableView();
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @return The count of avatarList.
+       */
+      public int getAvatarListCount() {
+        return avatarList_.size();
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @param index The index of the element to return.
+       * @return The avatarList at the given index.
+       */
+      public java.lang.String getAvatarList(int index) {
+        return avatarList_.get(index);
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @param index The index of the value to return.
+       * @return The bytes of the avatarList at the given index.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarListBytes(int index) {
+        return avatarList_.getByteString(index);
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @param index The index to set the value at.
+       * @param value The avatarList to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarList(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAvatarListIsMutable();
+        avatarList_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @param value The avatarList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAvatarList(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAvatarListIsMutable();
+        avatarList_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @param values The avatarList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllAvatarList(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureAvatarListIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, avatarList_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatarList() {
+        avatarList_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊头像列表,9宫格
+       * </pre>
+       *
+       * <code>repeated string AvatarList = 17;</code>
+       * @param value The bytes of the avatarList to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAvatarListBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        ensureAvatarListIsMutable();
+        avatarList_.add(value);
+        onChanged();
+        return this;
+      }
+
+      private boolean isSaved_ ;
+      /**
+       * <pre>
+       * 是否保存的群聊
+       * </pre>
+       *
+       * <code>bool isSaved = 18;</code>
+       * @return The isSaved.
+       */
+      public boolean getIsSaved() {
+        return isSaved_;
+      }
+      /**
+       * <pre>
+       * 是否保存的群聊
+       * </pre>
+       *
+       * <code>bool isSaved = 18;</code>
+       * @param value The isSaved to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsSaved(boolean value) {
+        
+        isSaved_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否保存的群聊
+       * </pre>
+       *
+       * <code>bool isSaved = 18;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsSaved() {
+        
+        isSaved_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean isMarked_ ;
+      /**
+       * <pre>
+       * 是否标注
+       * </pre>
+       *
+       * <code>bool isMarked = 19;</code>
+       * @return The isMarked.
+       */
+      public boolean getIsMarked() {
+        return isMarked_;
+      }
+      /**
+       * <pre>
+       * 是否标注
+       * </pre>
+       *
+       * <code>bool isMarked = 19;</code>
+       * @param value The isMarked to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsMarked(boolean value) {
+        
+        isMarked_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否标注
+       * </pre>
+       *
+       * <code>bool isMarked = 19;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsMarked() {
+        
+        isMarked_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean isTop_ ;
+      /**
+       * <pre>
+       * 是否置顶
+       * </pre>
+       *
+       * <code>bool isTop = 20;</code>
+       * @return The isTop.
+       */
+      public boolean getIsTop() {
+        return isTop_;
+      }
+      /**
+       * <pre>
+       * 是否置顶
+       * </pre>
+       *
+       * <code>bool isTop = 20;</code>
+       * @param value The isTop to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsTop(boolean value) {
+        
+        isTop_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否置顶
+       * </pre>
+       *
+       * <code>bool isTop = 20;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsTop() {
+        
+        isTop_ = false;
+        onChanged();
+        return this;
+      }
+
+      private long fwId_ ;
+      /**
+       * <pre>
+       * 在线客服服务id
+       * </pre>
+       *
+       * <code>int64 FwId = 21;</code>
+       * @return The fwId.
+       */
+      public long getFwId() {
+        return fwId_;
+      }
+      /**
+       * <pre>
+       * 在线客服服务id
+       * </pre>
+       *
+       * <code>int64 FwId = 21;</code>
+       * @param value The fwId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFwId(long value) {
+        
+        fwId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 在线客服服务id
+       * </pre>
+       *
+       * <code>int64 FwId = 21;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFwId() {
+        
+        fwId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConversationMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConversationMessage)
+    private static final Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConversationMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConversationMessage>() {
+      @java.lang.Override
+      public ConversationMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConversationMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConversationMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConversationMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConversationMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface ConvMemberMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConvMemberMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 群成员id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 2;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 2;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>int64 JoinTime = 3;</code>
+     * @return The joinTime.
+     */
+    long getJoinTime();
+
+    /**
+     * <pre>
+     * 加入场景,数值待确定
+     * </pre>
+     *
+     * <code>int32 JoinScene = 4;</code>
+     * @return The joinScene.
+     */
+    int getJoinScene();
+
+    /**
+     * <pre>
+     * 头像
+     * </pre>
+     *
+     * <code>string Avatar = 5;</code>
+     * @return The avatar.
+     */
+    java.lang.String getAvatar();
+    /**
+     * <pre>
+     * 头像
+     * </pre>
+     *
+     * <code>string Avatar = 5;</code>
+     * @return The bytes for avatar.
+     */
+    com.google.protobuf.ByteString
+        getAvatarBytes();
+
+    /**
+     * <pre>
+     * 公司id
+     * </pre>
+     *
+     * <code>int64 CorpId = 6;</code>
+     * @return The corpId.
+     */
+    long getCorpId();
+
+    /**
+     * <pre>
+     * 邀请人id
+     * </pre>
+     *
+     * <code>int64 OpRemoteId = 7;</code>
+     * @return The opRemoteId.
+     */
+    long getOpRemoteId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConvMemberMessage}
+   */
+  public  static final class ConvMemberMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConvMemberMessage)
+      ConvMemberMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConvMemberMessage.newBuilder() to construct.
+    private ConvMemberMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConvMemberMessage() {
+      name_ = "";
+      avatar_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConvMemberMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConvMemberMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 24: {
+
+              joinTime_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              joinScene_ = input.readInt32();
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              avatar_ = s;
+              break;
+            }
+            case 48: {
+
+              corpId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              opRemoteId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.class, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder.class);
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 1;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 群成员id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 2;
+    private volatile java.lang.Object name_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 2;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Name = 2;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int JOINTIME_FIELD_NUMBER = 3;
+    private long joinTime_;
+    /**
+     * <code>int64 JoinTime = 3;</code>
+     * @return The joinTime.
+     */
+    public long getJoinTime() {
+      return joinTime_;
+    }
+
+    public static final int JOINSCENE_FIELD_NUMBER = 4;
+    private int joinScene_;
+    /**
+     * <pre>
+     * 加入场景,数值待确定
+     * </pre>
+     *
+     * <code>int32 JoinScene = 4;</code>
+     * @return The joinScene.
+     */
+    public int getJoinScene() {
+      return joinScene_;
+    }
+
+    public static final int AVATAR_FIELD_NUMBER = 5;
+    private volatile java.lang.Object avatar_;
+    /**
+     * <pre>
+     * 头像
+     * </pre>
+     *
+     * <code>string Avatar = 5;</code>
+     * @return The avatar.
+     */
+    public java.lang.String getAvatar() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        avatar_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 头像
+     * </pre>
+     *
+     * <code>string Avatar = 5;</code>
+     * @return The bytes for avatar.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarBytes() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        avatar_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int CORPID_FIELD_NUMBER = 6;
+    private long corpId_;
+    /**
+     * <pre>
+     * 公司id
+     * </pre>
+     *
+     * <code>int64 CorpId = 6;</code>
+     * @return The corpId.
+     */
+    public long getCorpId() {
+      return corpId_;
+    }
+
+    public static final int OPREMOTEID_FIELD_NUMBER = 7;
+    private long opRemoteId_;
+    /**
+     * <pre>
+     * 邀请人id
+     * </pre>
+     *
+     * <code>int64 OpRemoteId = 7;</code>
+     * @return The opRemoteId.
+     */
+    public long getOpRemoteId() {
+      return opRemoteId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (remoteId_ != 0L) {
+        output.writeInt64(1, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
+      }
+      if (joinTime_ != 0L) {
+        output.writeInt64(3, joinTime_);
+      }
+      if (joinScene_ != 0) {
+        output.writeInt32(4, joinScene_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, avatar_);
+      }
+      if (corpId_ != 0L) {
+        output.writeInt64(6, corpId_);
+      }
+      if (opRemoteId_ != 0L) {
+        output.writeInt64(7, opRemoteId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
+      }
+      if (joinTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, joinTime_);
+      }
+      if (joinScene_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, joinScene_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, avatar_);
+      }
+      if (corpId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, corpId_);
+      }
+      if (opRemoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, opRemoteId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage other = (Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage) obj;
+
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (getJoinTime()
+          != other.getJoinTime()) return false;
+      if (getJoinScene()
+          != other.getJoinScene()) return false;
+      if (!getAvatar()
+          .equals(other.getAvatar())) return false;
+      if (getCorpId()
+          != other.getCorpId()) return false;
+      if (getOpRemoteId()
+          != other.getOpRemoteId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + JOINTIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getJoinTime());
+      hash = (37 * hash) + JOINSCENE_FIELD_NUMBER;
+      hash = (53 * hash) + getJoinScene();
+      hash = (37 * hash) + AVATAR_FIELD_NUMBER;
+      hash = (53 * hash) + getAvatar().hashCode();
+      hash = (37 * hash) + CORPID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCorpId());
+      hash = (37 * hash) + OPREMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getOpRemoteId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConvMemberMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConvMemberMessage)
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.class, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        remoteId_ = 0L;
+
+        name_ = "";
+
+        joinTime_ = 0L;
+
+        joinScene_ = 0;
+
+        avatar_ = "";
+
+        corpId_ = 0L;
+
+        opRemoteId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage build() {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage result = new Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage(this);
+        result.remoteId_ = remoteId_;
+        result.name_ = name_;
+        result.joinTime_ = joinTime_;
+        result.joinScene_ = joinScene_;
+        result.avatar_ = avatar_;
+        result.corpId_ = corpId_;
+        result.opRemoteId_ = opRemoteId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance()) return this;
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (other.getJoinTime() != 0L) {
+          setJoinTime(other.getJoinTime());
+        }
+        if (other.getJoinScene() != 0) {
+          setJoinScene(other.getJoinScene());
+        }
+        if (!other.getAvatar().isEmpty()) {
+          avatar_ = other.avatar_;
+          onChanged();
+        }
+        if (other.getCorpId() != 0L) {
+          setCorpId(other.getCorpId());
+        }
+        if (other.getOpRemoteId() != 0L) {
+          setOpRemoteId(other.getOpRemoteId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 群成员id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 群成员id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 2;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 2;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 2;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Name = 2;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long joinTime_ ;
+      /**
+       * <code>int64 JoinTime = 3;</code>
+       * @return The joinTime.
+       */
+      public long getJoinTime() {
+        return joinTime_;
+      }
+      /**
+       * <code>int64 JoinTime = 3;</code>
+       * @param value The joinTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setJoinTime(long value) {
+        
+        joinTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 JoinTime = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearJoinTime() {
+        
+        joinTime_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int joinScene_ ;
+      /**
+       * <pre>
+       * 加入场景,数值待确定
+       * </pre>
+       *
+       * <code>int32 JoinScene = 4;</code>
+       * @return The joinScene.
+       */
+      public int getJoinScene() {
+        return joinScene_;
+      }
+      /**
+       * <pre>
+       * 加入场景,数值待确定
+       * </pre>
+       *
+       * <code>int32 JoinScene = 4;</code>
+       * @param value The joinScene to set.
+       * @return This builder for chaining.
+       */
+      public Builder setJoinScene(int value) {
+        
+        joinScene_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 加入场景,数值待确定
+       * </pre>
+       *
+       * <code>int32 JoinScene = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearJoinScene() {
+        
+        joinScene_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object avatar_ = "";
+      /**
+       * <pre>
+       * 头像
+       * </pre>
+       *
+       * <code>string Avatar = 5;</code>
+       * @return The avatar.
+       */
+      public java.lang.String getAvatar() {
+        java.lang.Object ref = avatar_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          avatar_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 头像
+       * </pre>
+       *
+       * <code>string Avatar = 5;</code>
+       * @return The bytes for avatar.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarBytes() {
+        java.lang.Object ref = avatar_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          avatar_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 头像
+       * </pre>
+       *
+       * <code>string Avatar = 5;</code>
+       * @param value The avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatar(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 头像
+       * </pre>
+       *
+       * <code>string Avatar = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatar() {
+        
+        avatar_ = getDefaultInstance().getAvatar();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 头像
+       * </pre>
+       *
+       * <code>string Avatar = 5;</code>
+       * @param value The bytes for avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long corpId_ ;
+      /**
+       * <pre>
+       * 公司id
+       * </pre>
+       *
+       * <code>int64 CorpId = 6;</code>
+       * @return The corpId.
+       */
+      public long getCorpId() {
+        return corpId_;
+      }
+      /**
+       * <pre>
+       * 公司id
+       * </pre>
+       *
+       * <code>int64 CorpId = 6;</code>
+       * @param value The corpId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCorpId(long value) {
+        
+        corpId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 公司id
+       * </pre>
+       *
+       * <code>int64 CorpId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCorpId() {
+        
+        corpId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long opRemoteId_ ;
+      /**
+       * <pre>
+       * 邀请人id
+       * </pre>
+       *
+       * <code>int64 OpRemoteId = 7;</code>
+       * @return The opRemoteId.
+       */
+      public long getOpRemoteId() {
+        return opRemoteId_;
+      }
+      /**
+       * <pre>
+       * 邀请人id
+       * </pre>
+       *
+       * <code>int64 OpRemoteId = 7;</code>
+       * @param value The opRemoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOpRemoteId(long value) {
+        
+        opRemoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 邀请人id
+       * </pre>
+       *
+       * <code>int64 OpRemoteId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOpRemoteId() {
+        
+        opRemoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConvMemberMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConvMemberMessage)
+    private static final Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConvMemberMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConvMemberMessage>() {
+      @java.lang.Override
+      public ConvMemberMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConvMemberMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConvMemberMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConvMemberMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConversationMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConversationMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WConversationPushNotice.proto\022\020Im.Scrm" +
+      ".Ww.Proto\032\020WTransport.proto\"\322\001\n\035Conversa" +
+      "tionPushNoticeMessage\022\014\n\004WxId\030\001 \001(\003\0226\n\007C" +
+      "onvers\030\002 \003(\0132%.Im.Scrm.Ww.Proto.Conversa" +
+      "tionMessage\022\014\n\004Size\030\003 \001(\005\022\r\n\005Count\030\004 \001(\005" +
+      "\022\014\n\004Page\030\005 \001(\005\022\r\n\005IsEnd\030\006 \001(\010\022\022\n\nNextOff" +
+      "set\030\007 \001(\005\022\r\n\005Total\030\010 \001(\005\022\016\n\006TaskId\030\t \001(\003" +
+      "\"\236\003\n\023ConversationMessage\022\n\n\002Id\030\001 \001(\003\022\020\n\010" +
+      "RemoteId\030\002 \001(\003\022\014\n\004Name\030\003 \001(\t\022\016\n\006Avatar\030\004" +
+      " \001(\t\022\014\n\004Type\030\005 \001(\005\022\017\n\007Creator\030\006 \001(\003\022\022\n\nC" +
+      "reateTime\030\007 \001(\003\022\022\n\nUpdateTime\030\010 \001(\003\022\020\n\010N" +
+      "otified\030\t \001(\010\022\014\n\004Flag\030\n \001(\005\022\021\n\tUnreadCnt" +
+      "\030\013 \001(\005\022\016\n\006Notice\030\014 \001(\t\022\016\n\006Digest\030\r \001(\t\0224" +
+      "\n\007Members\030\016 \003(\0132#.Im.Scrm.Ww.Proto.ConvM" +
+      "emberMessage\022\016\n\006Admins\030\017 \003(\003\022\027\n\017HasExter" +
+      "nMember\030\020 \001(\010\022\022\n\nAvatarList\030\021 \003(\t\022\017\n\007isS" +
+      "aved\030\022 \001(\010\022\020\n\010isMarked\030\023 \001(\010\022\r\n\005isTop\030\024 " +
+      "\001(\010\022\014\n\004FwId\030\025 \001(\003\"\214\001\n\021ConvMemberMessage\022" +
+      "\020\n\010RemoteId\030\001 \001(\003\022\014\n\004Name\030\002 \001(\t\022\020\n\010JoinT" +
+      "ime\030\003 \001(\003\022\021\n\tJoinScene\030\004 \001(\005\022\016\n\006Avatar\030\005" +
+      " \001(\t\022\016\n\006CorpId\030\006 \001(\003\022\022\n\nOpRemoteId\030\007 \001(\003" +
+      "b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConversationPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Convers", "Size", "Count", "Page", "IsEnd", "NextOffset", "Total", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_ConversationMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_ConversationMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConversationMessage_descriptor,
+        new java.lang.String[] { "Id", "RemoteId", "Name", "Avatar", "Type", "Creator", "CreateTime", "UpdateTime", "Notified", "Flag", "UnreadCnt", "Notice", "Digest", "Members", "Admins", "HasExternMember", "AvatarList", "IsSaved", "IsMarked", "IsTop", "FwId", });
+    internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_descriptor =
+      getDescriptor().getMessageTypes().get(2);
+    internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConvMemberMessage_descriptor,
+        new java.lang.String[] { "RemoteId", "Name", "JoinTime", "JoinScene", "Avatar", "CorpId", "OpRemoteId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1688 - 0
src/main/java/Im/Scrm/Ww/Proto/WCorporationPushNotice.java

@@ -0,0 +1,1688 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCorporationPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCorporationPushNotice {
+  private WCorporationPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CorporationPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CorporationPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage> 
+        getCorpsList();
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage getCorps(int index);
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    int getCorpsCount();
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder> 
+        getCorpsOrBuilderList();
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder getCorpsOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CorporationPushNoticeMessage}
+   */
+  public  static final class CorporationPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CorporationPushNoticeMessage)
+      CorporationPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CorporationPushNoticeMessage.newBuilder() to construct.
+    private CorporationPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CorporationPushNoticeMessage() {
+      corps_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CorporationPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CorporationPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                corps_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              corps_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          corps_ = java.util.Collections.unmodifiableList(corps_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.class, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CORPS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage> corps_;
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage> getCorpsList() {
+      return corps_;
+    }
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder> 
+        getCorpsOrBuilderList() {
+      return corps_;
+    }
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    public int getCorpsCount() {
+      return corps_.size();
+    }
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage getCorps(int index) {
+      return corps_.get(index);
+    }
+    /**
+     * <pre>
+     * 企业信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder getCorpsOrBuilder(
+        int index) {
+      return corps_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < corps_.size(); i++) {
+        output.writeMessage(2, corps_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < corps_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, corps_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage other = (Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getCorpsList()
+          .equals(other.getCorpsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getCorpsCount() > 0) {
+        hash = (37 * hash) + CORPS_FIELD_NUMBER;
+        hash = (53 * hash) + getCorpsList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CorporationPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CorporationPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.class, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getCorpsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (corpsBuilder_ == null) {
+          corps_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          corpsBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage result = new Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (corpsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            corps_ = java.util.Collections.unmodifiableList(corps_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.corps_ = corps_;
+        } else {
+          result.corps_ = corpsBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (corpsBuilder_ == null) {
+          if (!other.corps_.isEmpty()) {
+            if (corps_.isEmpty()) {
+              corps_ = other.corps_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureCorpsIsMutable();
+              corps_.addAll(other.corps_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.corps_.isEmpty()) {
+            if (corpsBuilder_.isEmpty()) {
+              corpsBuilder_.dispose();
+              corpsBuilder_ = null;
+              corps_ = other.corps_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              corpsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getCorpsFieldBuilder() : null;
+            } else {
+              corpsBuilder_.addAllMessages(other.corps_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage> corps_ =
+        java.util.Collections.emptyList();
+      private void ensureCorpsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          corps_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage>(corps_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder> corpsBuilder_;
+
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage> getCorpsList() {
+        if (corpsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(corps_);
+        } else {
+          return corpsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public int getCorpsCount() {
+        if (corpsBuilder_ == null) {
+          return corps_.size();
+        } else {
+          return corpsBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage getCorps(int index) {
+        if (corpsBuilder_ == null) {
+          return corps_.get(index);
+        } else {
+          return corpsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder setCorps(
+          int index, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage value) {
+        if (corpsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCorpsIsMutable();
+          corps_.set(index, value);
+          onChanged();
+        } else {
+          corpsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder setCorps(
+          int index, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder builderForValue) {
+        if (corpsBuilder_ == null) {
+          ensureCorpsIsMutable();
+          corps_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          corpsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder addCorps(Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage value) {
+        if (corpsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCorpsIsMutable();
+          corps_.add(value);
+          onChanged();
+        } else {
+          corpsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder addCorps(
+          int index, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage value) {
+        if (corpsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCorpsIsMutable();
+          corps_.add(index, value);
+          onChanged();
+        } else {
+          corpsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder addCorps(
+          Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder builderForValue) {
+        if (corpsBuilder_ == null) {
+          ensureCorpsIsMutable();
+          corps_.add(builderForValue.build());
+          onChanged();
+        } else {
+          corpsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder addCorps(
+          int index, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder builderForValue) {
+        if (corpsBuilder_ == null) {
+          ensureCorpsIsMutable();
+          corps_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          corpsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder addAllCorps(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage> values) {
+        if (corpsBuilder_ == null) {
+          ensureCorpsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, corps_);
+          onChanged();
+        } else {
+          corpsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder clearCorps() {
+        if (corpsBuilder_ == null) {
+          corps_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          corpsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Builder removeCorps(int index) {
+        if (corpsBuilder_ == null) {
+          ensureCorpsIsMutable();
+          corps_.remove(index);
+          onChanged();
+        } else {
+          corpsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder getCorpsBuilder(
+          int index) {
+        return getCorpsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder getCorpsOrBuilder(
+          int index) {
+        if (corpsBuilder_ == null) {
+          return corps_.get(index);  } else {
+          return corpsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder> 
+           getCorpsOrBuilderList() {
+        if (corpsBuilder_ != null) {
+          return corpsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(corps_);
+        }
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder addCorpsBuilder() {
+        return getCorpsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder addCorpsBuilder(
+          int index) {
+        return getCorpsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 企业信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CorporationMessage Corps = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder> 
+           getCorpsBuilderList() {
+        return getCorpsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder> 
+          getCorpsFieldBuilder() {
+        if (corpsBuilder_ == null) {
+          corpsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder>(
+                  corps_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          corps_ = null;
+        }
+        return corpsBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CorporationPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CorporationPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CorporationPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CorporationPushNoticeMessage>() {
+      @java.lang.Override
+      public CorporationPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CorporationPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CorporationPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CorporationPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface CorporationMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CorporationMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    long getId();
+
+    /**
+     * <code>string Name = 2;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 2;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CorporationMessage}
+   */
+  public  static final class CorporationMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CorporationMessage)
+      CorporationMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CorporationMessage.newBuilder() to construct.
+    private CorporationMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CorporationMessage() {
+      name_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CorporationMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CorporationMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              id_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.class, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder.class);
+    }
+
+    public static final int ID_FIELD_NUMBER = 1;
+    private long id_;
+    /**
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    public long getId() {
+      return id_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 2;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 2;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 2;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (id_ != 0L) {
+        output.writeInt64(1, id_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (id_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, id_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage other = (Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage) obj;
+
+      if (getId()
+          != other.getId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CorporationMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CorporationMessage)
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.class, Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        id_ = 0L;
+
+        name_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.internal_static_Im_Scrm_Ww_Proto_CorporationMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage build() {
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage result = new Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage(this);
+        result.id_ = id_;
+        result.name_ = name_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage.getDefaultInstance()) return this;
+        if (other.getId() != 0L) {
+          setId(other.getId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long id_ ;
+      /**
+       * <code>int64 Id = 1;</code>
+       * @return The id.
+       */
+      public long getId() {
+        return id_;
+      }
+      /**
+       * <code>int64 Id = 1;</code>
+       * @param value The id to set.
+       * @return This builder for chaining.
+       */
+      public Builder setId(long value) {
+        
+        id_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 Id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearId() {
+        
+        id_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 2;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CorporationMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CorporationMessage)
+    private static final Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CorporationMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CorporationMessage>() {
+      @java.lang.Override
+      public CorporationMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CorporationMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CorporationMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CorporationMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCorporationPushNotice.CorporationMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CorporationMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CorporationMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WCorporationPushNotice.proto\022\020Im.Scrm." +
+      "Ww.Proto\032\020WTransport.proto\"a\n\034Corporatio" +
+      "nPushNoticeMessage\022\014\n\004WxId\030\001 \001(\003\0223\n\005Corp" +
+      "s\030\002 \003(\0132$.Im.Scrm.Ww.Proto.CorporationMe" +
+      "ssage\".\n\022CorporationMessage\022\n\n\002Id\030\001 \001(\003\022" +
+      "\014\n\004Name\030\002 \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CorporationPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Corps", });
+    internal_static_Im_Scrm_Ww_Proto_CorporationMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_CorporationMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CorporationMessage_descriptor,
+        new java.lang.String[] { "Id", "Name", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 819 - 0
src/main/java/Im/Scrm/Ww/Proto/WCustomerAddNotice.java

@@ -0,0 +1,819 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCustomerAddNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCustomerAddNotice {
+  private WCustomerAddNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CustomerAddNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CustomerAddNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 好友信息模型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+     * @return Whether the contact field is set.
+     */
+    boolean hasContact();
+    /**
+     * <pre>
+     * 好友信息模型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+     * @return The contact.
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContact();
+    /**
+     * <pre>
+     * 好友信息模型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerAddNoticeMessage}
+   */
+  public  static final class CustomerAddNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CustomerAddNoticeMessage)
+      CustomerAddNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CustomerAddNoticeMessage.newBuilder() to construct.
+    private CustomerAddNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CustomerAddNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CustomerAddNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CustomerAddNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder subBuilder = null;
+              if (contact_ != null) {
+                subBuilder = contact_.toBuilder();
+              }
+              contact_ = input.readMessage(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(contact_);
+                contact_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCustomerAddNotice.internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCustomerAddNotice.internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTACT_FIELD_NUMBER = 2;
+    private Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage contact_;
+    /**
+     * <pre>
+     * 好友信息模型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+     * @return Whether the contact field is set.
+     */
+    public boolean hasContact() {
+      return contact_ != null;
+    }
+    /**
+     * <pre>
+     * 好友信息模型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+     * @return The contact.
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContact() {
+      return contact_ == null ? Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : contact_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactOrBuilder() {
+      return getContact();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (contact_ != null) {
+        output.writeMessage(2, getContact());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (contact_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getContact());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage other = (Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (hasContact() != other.hasContact()) return false;
+      if (hasContact()) {
+        if (!getContact()
+            .equals(other.getContact())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (hasContact()) {
+        hash = (37 * hash) + CONTACT_FIELD_NUMBER;
+        hash = (53 * hash) + getContact().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerAddNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CustomerAddNoticeMessage)
+        Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCustomerAddNotice.internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCustomerAddNotice.internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (contactBuilder_ == null) {
+          contact_ = null;
+        } else {
+          contact_ = null;
+          contactBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCustomerAddNotice.internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage result = new Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage(this);
+        result.wxId_ = wxId_;
+        if (contactBuilder_ == null) {
+          result.contact_ = contact_;
+        } else {
+          result.contact_ = contactBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.hasContact()) {
+          mergeContact(other.getContact());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage contact_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> contactBuilder_;
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       * @return Whether the contact field is set.
+       */
+      public boolean hasContact() {
+        return contactBuilder_ != null || contact_ != null;
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       * @return The contact.
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContact() {
+        if (contactBuilder_ == null) {
+          return contact_ == null ? Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : contact_;
+        } else {
+          return contactBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      public Builder setContact(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          contact_ = value;
+          onChanged();
+        } else {
+          contactBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      public Builder setContact(
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactBuilder_ == null) {
+          contact_ = builderForValue.build();
+          onChanged();
+        } else {
+          contactBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      public Builder mergeContact(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactBuilder_ == null) {
+          if (contact_ != null) {
+            contact_ =
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.newBuilder(contact_).mergeFrom(value).buildPartial();
+          } else {
+            contact_ = value;
+          }
+          onChanged();
+        } else {
+          contactBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      public Builder clearContact() {
+        if (contactBuilder_ == null) {
+          contact_ = null;
+          onChanged();
+        } else {
+          contact_ = null;
+          contactBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder getContactBuilder() {
+        
+        onChanged();
+        return getContactFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactOrBuilder() {
+        if (contactBuilder_ != null) {
+          return contactBuilder_.getMessageOrBuilder();
+        } else {
+          return contact_ == null ?
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : contact_;
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 2;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+          getContactFieldBuilder() {
+        if (contactBuilder_ == null) {
+          contactBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder>(
+                  getContact(),
+                  getParentForChildren(),
+                  isClean());
+          contact_ = null;
+        }
+        return contactBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CustomerAddNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CustomerAddNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CustomerAddNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CustomerAddNoticeMessage>() {
+      @java.lang.Override
+      public CustomerAddNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CustomerAddNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CustomerAddNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CustomerAddNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCustomerAddNotice.CustomerAddNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\030WCustomerAddNotice.proto\022\020Im.Scrm.Ww.P" +
+      "roto\032\031WCustomerPushNotice.proto\"\\\n\030Custo" +
+      "merAddNoticeMessage\022\014\n\004WxId\030\001 \001(\003\0222\n\007Con" +
+      "tact\030\002 \001(\0132!.Im.Scrm.Ww.Proto.CustomerMe" +
+      "ssageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CustomerAddNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Contact", });
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 647 - 0
src/main/java/Im/Scrm/Ww/Proto/WCustomerDelNotice.java

@@ -0,0 +1,647 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCustomerDelNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCustomerDelNotice {
+  private WCustomerDelNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CustomerDelNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CustomerDelNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 被移除客户的remoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerDelNoticeMessage}
+   */
+  public  static final class CustomerDelNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CustomerDelNoticeMessage)
+      CustomerDelNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CustomerDelNoticeMessage.newBuilder() to construct.
+    private CustomerDelNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CustomerDelNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CustomerDelNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CustomerDelNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCustomerDelNotice.internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCustomerDelNotice.internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 被移除客户的remoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage other = (Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerDelNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CustomerDelNoticeMessage)
+        Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCustomerDelNotice.internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCustomerDelNotice.internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCustomerDelNotice.internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage result = new Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 被移除客户的remoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 被移除客户的remoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 被移除客户的remoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CustomerDelNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CustomerDelNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CustomerDelNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CustomerDelNoticeMessage>() {
+      @java.lang.Override
+      public CustomerDelNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CustomerDelNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CustomerDelNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CustomerDelNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCustomerDelNotice.CustomerDelNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\030WCustomerDelNotice.proto\022\020Im.Scrm.Ww.P" +
+      "roto\032\031WCustomerPushNotice.proto\":\n\030Custo" +
+      "merDelNoticeMessage\022\014\n\004WxId\030\001 \001(\003\022\020\n\010Rem" +
+      "oteId\030\002 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CustomerDelNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", });
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 2579 - 0
src/main/java/Im/Scrm/Ww/Proto/WCustomerGroupPushNotice.java

@@ -0,0 +1,2579 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCustomerGroupPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCustomerGroupPushNotice {
+  private WCustomerGroupPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CustomerGroupPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage> 
+        getGroupsList();
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage getGroups(int index);
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    int getGroupsCount();
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder> 
+        getGroupsOrBuilderList();
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder getGroupsOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage}
+   */
+  public  static final class CustomerGroupPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage)
+      CustomerGroupPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CustomerGroupPushNoticeMessage.newBuilder() to construct.
+    private CustomerGroupPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CustomerGroupPushNoticeMessage() {
+      groups_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CustomerGroupPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CustomerGroupPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                groups_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              groups_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          groups_ = java.util.Collections.unmodifiableList(groups_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int GROUPS_FIELD_NUMBER = 3;
+    private java.util.List<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage> groups_;
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage> getGroupsList() {
+      return groups_;
+    }
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder> 
+        getGroupsOrBuilderList() {
+      return groups_;
+    }
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    public int getGroupsCount() {
+      return groups_.size();
+    }
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage getGroups(int index) {
+      return groups_.get(index);
+    }
+    /**
+     * <pre>
+     * 客户群列表
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder getGroupsOrBuilder(
+        int index) {
+      return groups_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      for (int i = 0; i < groups_.size(); i++) {
+        output.writeMessage(3, groups_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      for (int i = 0; i < groups_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, groups_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage other = (Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getGroupsList()
+          .equals(other.getGroupsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      if (getGroupsCount() > 0) {
+        hash = (37 * hash) + GROUPS_FIELD_NUMBER;
+        hash = (53 * hash) + getGroupsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getGroupsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        if (groupsBuilder_ == null) {
+          groups_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          groupsBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage result = new Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        if (groupsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            groups_ = java.util.Collections.unmodifiableList(groups_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.groups_ = groups_;
+        } else {
+          result.groups_ = groupsBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (groupsBuilder_ == null) {
+          if (!other.groups_.isEmpty()) {
+            if (groups_.isEmpty()) {
+              groups_ = other.groups_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureGroupsIsMutable();
+              groups_.addAll(other.groups_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.groups_.isEmpty()) {
+            if (groupsBuilder_.isEmpty()) {
+              groupsBuilder_.dispose();
+              groupsBuilder_ = null;
+              groups_ = other.groups_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              groupsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getGroupsFieldBuilder() : null;
+            } else {
+              groupsBuilder_.addAllMessages(other.groups_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage> groups_ =
+        java.util.Collections.emptyList();
+      private void ensureGroupsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          groups_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage>(groups_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder> groupsBuilder_;
+
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage> getGroupsList() {
+        if (groupsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(groups_);
+        } else {
+          return groupsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public int getGroupsCount() {
+        if (groupsBuilder_ == null) {
+          return groups_.size();
+        } else {
+          return groupsBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage getGroups(int index) {
+        if (groupsBuilder_ == null) {
+          return groups_.get(index);
+        } else {
+          return groupsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder setGroups(
+          int index, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage value) {
+        if (groupsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureGroupsIsMutable();
+          groups_.set(index, value);
+          onChanged();
+        } else {
+          groupsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder setGroups(
+          int index, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder builderForValue) {
+        if (groupsBuilder_ == null) {
+          ensureGroupsIsMutable();
+          groups_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          groupsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder addGroups(Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage value) {
+        if (groupsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureGroupsIsMutable();
+          groups_.add(value);
+          onChanged();
+        } else {
+          groupsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder addGroups(
+          int index, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage value) {
+        if (groupsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureGroupsIsMutable();
+          groups_.add(index, value);
+          onChanged();
+        } else {
+          groupsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder addGroups(
+          Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder builderForValue) {
+        if (groupsBuilder_ == null) {
+          ensureGroupsIsMutable();
+          groups_.add(builderForValue.build());
+          onChanged();
+        } else {
+          groupsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder addGroups(
+          int index, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder builderForValue) {
+        if (groupsBuilder_ == null) {
+          ensureGroupsIsMutable();
+          groups_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          groupsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder addAllGroups(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage> values) {
+        if (groupsBuilder_ == null) {
+          ensureGroupsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, groups_);
+          onChanged();
+        } else {
+          groupsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder clearGroups() {
+        if (groupsBuilder_ == null) {
+          groups_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          groupsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Builder removeGroups(int index) {
+        if (groupsBuilder_ == null) {
+          ensureGroupsIsMutable();
+          groups_.remove(index);
+          onChanged();
+        } else {
+          groupsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder getGroupsBuilder(
+          int index) {
+        return getGroupsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder getGroupsOrBuilder(
+          int index) {
+        if (groupsBuilder_ == null) {
+          return groups_.get(index);  } else {
+          return groupsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder> 
+           getGroupsOrBuilderList() {
+        if (groupsBuilder_ != null) {
+          return groupsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(groups_);
+        }
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder addGroupsBuilder() {
+        return getGroupsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder addGroupsBuilder(
+          int index) {
+        return getGroupsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 客户群列表
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerGroupMessage Groups = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder> 
+           getGroupsBuilderList() {
+        return getGroupsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder> 
+          getGroupsFieldBuilder() {
+        if (groupsBuilder_ == null) {
+          groupsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder>(
+                  groups_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          groups_ = null;
+        }
+        return groupsBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CustomerGroupPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CustomerGroupPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CustomerGroupPushNoticeMessage>() {
+      @java.lang.Override
+      public CustomerGroupPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CustomerGroupPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CustomerGroupPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CustomerGroupPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface CustomerGroupMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CustomerGroupMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 会话id
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    long getId();
+
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * 群名
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <pre>
+     * 群名
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    java.lang.String getAvatar();
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    com.google.protobuf.ByteString
+        getAvatarBytes();
+
+    /**
+     * <pre>
+     *群主Id
+     * </pre>
+     *
+     * <code>int64 Owner = 6;</code>
+     * @return The owner.
+     */
+    long getOwner();
+
+    /**
+     * <pre>
+     *创建时间
+     * </pre>
+     *
+     * <code>int32 CreateTime = 7;</code>
+     * @return The createTime.
+     */
+    int getCreateTime();
+
+    /**
+     * <pre>
+     * 最后更新时间
+     * </pre>
+     *
+     * <code>int32 UpdateTime = 8;</code>
+     * @return The updateTime.
+     */
+    int getUpdateTime();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 Flag = 10;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <pre>
+     *群成员数
+     * </pre>
+     *
+     * <code>int32 MemberCnt = 11;</code>
+     * @return The memberCnt.
+     */
+    int getMemberCnt();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerGroupMessage}
+   */
+  public  static final class CustomerGroupMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CustomerGroupMessage)
+      CustomerGroupMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CustomerGroupMessage.newBuilder() to construct.
+    private CustomerGroupMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CustomerGroupMessage() {
+      name_ = "";
+      avatar_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CustomerGroupMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CustomerGroupMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              id_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              avatar_ = s;
+              break;
+            }
+            case 48: {
+
+              owner_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              createTime_ = input.readInt32();
+              break;
+            }
+            case 64: {
+
+              updateTime_ = input.readInt32();
+              break;
+            }
+            case 80: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 88: {
+
+              memberCnt_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.class, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder.class);
+    }
+
+    public static final int ID_FIELD_NUMBER = 1;
+    private long id_;
+    /**
+     * <pre>
+     * 会话id
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    public long getId() {
+      return id_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <pre>
+     * 群名
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 群名
+     * </pre>
+     *
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AVATAR_FIELD_NUMBER = 4;
+    private volatile java.lang.Object avatar_;
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    public java.lang.String getAvatar() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        avatar_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarBytes() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        avatar_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int OWNER_FIELD_NUMBER = 6;
+    private long owner_;
+    /**
+     * <pre>
+     *群主Id
+     * </pre>
+     *
+     * <code>int64 Owner = 6;</code>
+     * @return The owner.
+     */
+    public long getOwner() {
+      return owner_;
+    }
+
+    public static final int CREATETIME_FIELD_NUMBER = 7;
+    private int createTime_;
+    /**
+     * <pre>
+     *创建时间
+     * </pre>
+     *
+     * <code>int32 CreateTime = 7;</code>
+     * @return The createTime.
+     */
+    public int getCreateTime() {
+      return createTime_;
+    }
+
+    public static final int UPDATETIME_FIELD_NUMBER = 8;
+    private int updateTime_;
+    /**
+     * <pre>
+     * 最后更新时间
+     * </pre>
+     *
+     * <code>int32 UpdateTime = 8;</code>
+     * @return The updateTime.
+     */
+    public int getUpdateTime() {
+      return updateTime_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 10;
+    private int flag_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int32 Flag = 10;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int MEMBERCNT_FIELD_NUMBER = 11;
+    private int memberCnt_;
+    /**
+     * <pre>
+     *群成员数
+     * </pre>
+     *
+     * <code>int32 MemberCnt = 11;</code>
+     * @return The memberCnt.
+     */
+    public int getMemberCnt() {
+      return memberCnt_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (id_ != 0L) {
+        output.writeInt64(1, id_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, avatar_);
+      }
+      if (owner_ != 0L) {
+        output.writeInt64(6, owner_);
+      }
+      if (createTime_ != 0) {
+        output.writeInt32(7, createTime_);
+      }
+      if (updateTime_ != 0) {
+        output.writeInt32(8, updateTime_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(10, flag_);
+      }
+      if (memberCnt_ != 0) {
+        output.writeInt32(11, memberCnt_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (id_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, id_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, avatar_);
+      }
+      if (owner_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, owner_);
+      }
+      if (createTime_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(7, createTime_);
+      }
+      if (updateTime_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(8, updateTime_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(10, flag_);
+      }
+      if (memberCnt_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(11, memberCnt_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage other = (Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage) obj;
+
+      if (getId()
+          != other.getId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getAvatar()
+          .equals(other.getAvatar())) return false;
+      if (getOwner()
+          != other.getOwner()) return false;
+      if (getCreateTime()
+          != other.getCreateTime()) return false;
+      if (getUpdateTime()
+          != other.getUpdateTime()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getMemberCnt()
+          != other.getMemberCnt()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + AVATAR_FIELD_NUMBER;
+      hash = (53 * hash) + getAvatar().hashCode();
+      hash = (37 * hash) + OWNER_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getOwner());
+      hash = (37 * hash) + CREATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + getCreateTime();
+      hash = (37 * hash) + UPDATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + getUpdateTime();
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + MEMBERCNT_FIELD_NUMBER;
+      hash = (53 * hash) + getMemberCnt();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerGroupMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CustomerGroupMessage)
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.class, Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        id_ = 0L;
+
+        remoteId_ = 0L;
+
+        name_ = "";
+
+        avatar_ = "";
+
+        owner_ = 0L;
+
+        createTime_ = 0;
+
+        updateTime_ = 0;
+
+        flag_ = 0;
+
+        memberCnt_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage build() {
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage result = new Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage(this);
+        result.id_ = id_;
+        result.remoteId_ = remoteId_;
+        result.name_ = name_;
+        result.avatar_ = avatar_;
+        result.owner_ = owner_;
+        result.createTime_ = createTime_;
+        result.updateTime_ = updateTime_;
+        result.flag_ = flag_;
+        result.memberCnt_ = memberCnt_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage.getDefaultInstance()) return this;
+        if (other.getId() != 0L) {
+          setId(other.getId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getAvatar().isEmpty()) {
+          avatar_ = other.avatar_;
+          onChanged();
+        }
+        if (other.getOwner() != 0L) {
+          setOwner(other.getOwner());
+        }
+        if (other.getCreateTime() != 0) {
+          setCreateTime(other.getCreateTime());
+        }
+        if (other.getUpdateTime() != 0) {
+          setUpdateTime(other.getUpdateTime());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getMemberCnt() != 0) {
+          setMemberCnt(other.getMemberCnt());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long id_ ;
+      /**
+       * <pre>
+       * 会话id
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return The id.
+       */
+      public long getId() {
+        return id_;
+      }
+      /**
+       * <pre>
+       * 会话id
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @param value The id to set.
+       * @return This builder for chaining.
+       */
+      public Builder setId(long value) {
+        
+        id_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话id
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearId() {
+        
+        id_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <pre>
+       * 群名
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 群名
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 群名
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群名
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群名
+       * </pre>
+       *
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object avatar_ = "";
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The avatar.
+       */
+      public java.lang.String getAvatar() {
+        java.lang.Object ref = avatar_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          avatar_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The bytes for avatar.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarBytes() {
+        java.lang.Object ref = avatar_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          avatar_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatar(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatar() {
+        
+        avatar_ = getDefaultInstance().getAvatar();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The bytes for avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long owner_ ;
+      /**
+       * <pre>
+       *群主Id
+       * </pre>
+       *
+       * <code>int64 Owner = 6;</code>
+       * @return The owner.
+       */
+      public long getOwner() {
+        return owner_;
+      }
+      /**
+       * <pre>
+       *群主Id
+       * </pre>
+       *
+       * <code>int64 Owner = 6;</code>
+       * @param value The owner to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOwner(long value) {
+        
+        owner_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *群主Id
+       * </pre>
+       *
+       * <code>int64 Owner = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOwner() {
+        
+        owner_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int createTime_ ;
+      /**
+       * <pre>
+       *创建时间
+       * </pre>
+       *
+       * <code>int32 CreateTime = 7;</code>
+       * @return The createTime.
+       */
+      public int getCreateTime() {
+        return createTime_;
+      }
+      /**
+       * <pre>
+       *创建时间
+       * </pre>
+       *
+       * <code>int32 CreateTime = 7;</code>
+       * @param value The createTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCreateTime(int value) {
+        
+        createTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *创建时间
+       * </pre>
+       *
+       * <code>int32 CreateTime = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCreateTime() {
+        
+        createTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int updateTime_ ;
+      /**
+       * <pre>
+       * 最后更新时间
+       * </pre>
+       *
+       * <code>int32 UpdateTime = 8;</code>
+       * @return The updateTime.
+       */
+      public int getUpdateTime() {
+        return updateTime_;
+      }
+      /**
+       * <pre>
+       * 最后更新时间
+       * </pre>
+       *
+       * <code>int32 UpdateTime = 8;</code>
+       * @param value The updateTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUpdateTime(int value) {
+        
+        updateTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 最后更新时间
+       * </pre>
+       *
+       * <code>int32 UpdateTime = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUpdateTime() {
+        
+        updateTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 Flag = 10;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 Flag = 10;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int32 Flag = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int memberCnt_ ;
+      /**
+       * <pre>
+       *群成员数
+       * </pre>
+       *
+       * <code>int32 MemberCnt = 11;</code>
+       * @return The memberCnt.
+       */
+      public int getMemberCnt() {
+        return memberCnt_;
+      }
+      /**
+       * <pre>
+       *群成员数
+       * </pre>
+       *
+       * <code>int32 MemberCnt = 11;</code>
+       * @param value The memberCnt to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemberCnt(int value) {
+        
+        memberCnt_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *群成员数
+       * </pre>
+       *
+       * <code>int32 MemberCnt = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMemberCnt() {
+        
+        memberCnt_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CustomerGroupMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CustomerGroupMessage)
+    private static final Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CustomerGroupMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CustomerGroupMessage>() {
+      @java.lang.Override
+      public CustomerGroupMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CustomerGroupMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CustomerGroupMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CustomerGroupMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCustomerGroupPushNotice.CustomerGroupMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\036WCustomerGroupPushNotice.proto\022\020Im.Scr" +
+      "m.Ww.Proto\032\020WTransport.proto\"\207\001\n\036Custome" +
+      "rGroupPushNoticeMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n" +
+      "\007Success\030\002 \001(\010\0226\n\006Groups\030\003 \003(\0132&.Im.Scrm" +
+      ".Ww.Proto.CustomerGroupMessage\022\016\n\006TaskId" +
+      "\030\004 \001(\003\"\252\001\n\024CustomerGroupMessage\022\n\n\002Id\030\001 " +
+      "\001(\003\022\020\n\010RemoteId\030\002 \001(\003\022\014\n\004Name\030\003 \001(\t\022\016\n\006A" +
+      "vatar\030\004 \001(\t\022\r\n\005Owner\030\006 \001(\003\022\022\n\nCreateTime" +
+      "\030\007 \001(\005\022\022\n\nUpdateTime\030\010 \001(\005\022\014\n\004Flag\030\n \001(\005" +
+      "\022\021\n\tMemberCnt\030\013 \001(\005b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CustomerGroupPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "Groups", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CustomerGroupMessage_descriptor,
+        new java.lang.String[] { "Id", "RemoteId", "Name", "Avatar", "Owner", "CreateTime", "UpdateTime", "Flag", "MemberCnt", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 5087 - 0
src/main/java/Im/Scrm/Ww/Proto/WCustomerPushNotice.java

@@ -0,0 +1,5087 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WCustomerPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WCustomerPushNotice {
+  private WCustomerPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface CustomerPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CustomerPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> 
+        getContactsList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContacts(int index);
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    int getContactsCount();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+        getContactsOrBuilderList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactsOrBuilder(
+        int index);
+
+    /**
+     * <code>int32 Size = 3;</code>
+     * @return The size.
+     */
+    int getSize();
+
+    /**
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    int getCount();
+
+    /**
+     * <code>int32 Page = 5;</code>
+     * @return The page.
+     */
+    int getPage();
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerPushNoticeMessage}
+   */
+  public  static final class CustomerPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CustomerPushNoticeMessage)
+      CustomerPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CustomerPushNoticeMessage.newBuilder() to construct.
+    private CustomerPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CustomerPushNoticeMessage() {
+      contacts_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CustomerPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CustomerPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                contacts_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              contacts_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 24: {
+
+              size_ = input.readInt32();
+              break;
+            }
+            case 32: {
+
+              count_ = input.readInt32();
+              break;
+            }
+            case 40: {
+
+              page_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          contacts_ = java.util.Collections.unmodifiableList(contacts_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTACTS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> contacts_;
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> getContactsList() {
+      return contacts_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+        getContactsOrBuilderList() {
+      return contacts_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public int getContactsCount() {
+      return contacts_.size();
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContacts(int index) {
+      return contacts_.get(index);
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactsOrBuilder(
+        int index) {
+      return contacts_.get(index);
+    }
+
+    public static final int SIZE_FIELD_NUMBER = 3;
+    private int size_;
+    /**
+     * <code>int32 Size = 3;</code>
+     * @return The size.
+     */
+    public int getSize() {
+      return size_;
+    }
+
+    public static final int COUNT_FIELD_NUMBER = 4;
+    private int count_;
+    /**
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    public int getCount() {
+      return count_;
+    }
+
+    public static final int PAGE_FIELD_NUMBER = 5;
+    private int page_;
+    /**
+     * <code>int32 Page = 5;</code>
+     * @return The page.
+     */
+    public int getPage() {
+      return page_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < contacts_.size(); i++) {
+        output.writeMessage(2, contacts_.get(i));
+      }
+      if (size_ != 0) {
+        output.writeInt32(3, size_);
+      }
+      if (count_ != 0) {
+        output.writeInt32(4, count_);
+      }
+      if (page_ != 0) {
+        output.writeInt32(5, page_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < contacts_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, contacts_.get(i));
+      }
+      if (size_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, size_);
+      }
+      if (count_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, count_);
+      }
+      if (page_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, page_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage other = (Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getContactsList()
+          .equals(other.getContactsList())) return false;
+      if (getSize()
+          != other.getSize()) return false;
+      if (getCount()
+          != other.getCount()) return false;
+      if (getPage()
+          != other.getPage()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getContactsCount() > 0) {
+        hash = (37 * hash) + CONTACTS_FIELD_NUMBER;
+        hash = (53 * hash) + getContactsList().hashCode();
+      }
+      hash = (37 * hash) + SIZE_FIELD_NUMBER;
+      hash = (53 * hash) + getSize();
+      hash = (37 * hash) + COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCount();
+      hash = (37 * hash) + PAGE_FIELD_NUMBER;
+      hash = (53 * hash) + getPage();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CustomerPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.class, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getContactsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (contactsBuilder_ == null) {
+          contacts_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          contactsBuilder_.clear();
+        }
+        size_ = 0;
+
+        count_ = 0;
+
+        page_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage result = new Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (contactsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            contacts_ = java.util.Collections.unmodifiableList(contacts_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.contacts_ = contacts_;
+        } else {
+          result.contacts_ = contactsBuilder_.build();
+        }
+        result.size_ = size_;
+        result.count_ = count_;
+        result.page_ = page_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (contactsBuilder_ == null) {
+          if (!other.contacts_.isEmpty()) {
+            if (contacts_.isEmpty()) {
+              contacts_ = other.contacts_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureContactsIsMutable();
+              contacts_.addAll(other.contacts_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.contacts_.isEmpty()) {
+            if (contactsBuilder_.isEmpty()) {
+              contactsBuilder_.dispose();
+              contactsBuilder_ = null;
+              contacts_ = other.contacts_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              contactsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getContactsFieldBuilder() : null;
+            } else {
+              contactsBuilder_.addAllMessages(other.contacts_);
+            }
+          }
+        }
+        if (other.getSize() != 0) {
+          setSize(other.getSize());
+        }
+        if (other.getCount() != 0) {
+          setCount(other.getCount());
+        }
+        if (other.getPage() != 0) {
+          setPage(other.getPage());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> contacts_ =
+        java.util.Collections.emptyList();
+      private void ensureContactsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          contacts_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage>(contacts_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> contactsBuilder_;
+
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> getContactsList() {
+        if (contactsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(contacts_);
+        } else {
+          return contactsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public int getContactsCount() {
+        if (contactsBuilder_ == null) {
+          return contacts_.size();
+        } else {
+          return contactsBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContacts(int index) {
+        if (contactsBuilder_ == null) {
+          return contacts_.get(index);
+        } else {
+          return contactsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder setContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.set(index, value);
+          onChanged();
+        } else {
+          contactsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder setContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.add(value);
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.add(index, value);
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.add(builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addAllContacts(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> values) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, contacts_);
+          onChanged();
+        } else {
+          contactsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder clearContacts() {
+        if (contactsBuilder_ == null) {
+          contacts_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          contactsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder removeContacts(int index) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.remove(index);
+          onChanged();
+        } else {
+          contactsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder getContactsBuilder(
+          int index) {
+        return getContactsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactsOrBuilder(
+          int index) {
+        if (contactsBuilder_ == null) {
+          return contacts_.get(index);  } else {
+          return contactsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+           getContactsOrBuilderList() {
+        if (contactsBuilder_ != null) {
+          return contactsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(contacts_);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder addContactsBuilder() {
+        return getContactsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder addContactsBuilder(
+          int index) {
+        return getContactsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder> 
+           getContactsBuilderList() {
+        return getContactsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+          getContactsFieldBuilder() {
+        if (contactsBuilder_ == null) {
+          contactsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder>(
+                  contacts_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          contacts_ = null;
+        }
+        return contactsBuilder_;
+      }
+
+      private int size_ ;
+      /**
+       * <code>int32 Size = 3;</code>
+       * @return The size.
+       */
+      public int getSize() {
+        return size_;
+      }
+      /**
+       * <code>int32 Size = 3;</code>
+       * @param value The size to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSize(int value) {
+        
+        size_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Size = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSize() {
+        
+        size_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int count_ ;
+      /**
+       * <code>int32 Count = 4;</code>
+       * @return The count.
+       */
+      public int getCount() {
+        return count_;
+      }
+      /**
+       * <code>int32 Count = 4;</code>
+       * @param value The count to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCount(int value) {
+        
+        count_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Count = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCount() {
+        
+        count_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int page_ ;
+      /**
+       * <code>int32 Page = 5;</code>
+       * @return The page.
+       */
+      public int getPage() {
+        return page_;
+      }
+      /**
+       * <code>int32 Page = 5;</code>
+       * @param value The page to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPage(int value) {
+        
+        page_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Page = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPage() {
+        
+        page_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CustomerPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CustomerPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CustomerPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CustomerPushNoticeMessage>() {
+      @java.lang.Override
+      public CustomerPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CustomerPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CustomerPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CustomerPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface CustomerMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.CustomerMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *唯一id (RemoteId&gt;&gt;48==20 App; RemoteId&gt;&gt;48==28 微信用户; RemoteId&gt;&gt;48==33,34 外部客户; RemoteId&gt;&gt;48==39 群机器人; RemoteId&gt;&gt;48==30 内部客服; RemoteId&gt;&gt;48==32 VIP客户;)
+     * </pre>
+     *
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>string Name = 2;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 2;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Alias = 3;</code>
+     * @return The alias.
+     */
+    java.lang.String getAlias();
+    /**
+     * <code>string Alias = 3;</code>
+     * @return The bytes for alias.
+     */
+    com.google.protobuf.ByteString
+        getAliasBytes();
+
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    java.lang.String getAvatar();
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    com.google.protobuf.ByteString
+        getAvatarBytes();
+
+    /**
+     * <code>string Mobile = 5;</code>
+     * @return The mobile.
+     */
+    java.lang.String getMobile();
+    /**
+     * <code>string Mobile = 5;</code>
+     * @return The bytes for mobile.
+     */
+    com.google.protobuf.ByteString
+        getMobileBytes();
+
+    /**
+     * <pre>
+     * 微信UnionId,可能为空
+     * </pre>
+     *
+     * <code>string UnionId = 6;</code>
+     * @return The unionId.
+     */
+    java.lang.String getUnionId();
+    /**
+     * <pre>
+     * 微信UnionId,可能为空
+     * </pre>
+     *
+     * <code>string UnionId = 6;</code>
+     * @return The bytes for unionId.
+     */
+    com.google.protobuf.ByteString
+        getUnionIdBytes();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+     * @return The enum numeric value on the wire for gender.
+     */
+    int getGenderValue();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+     * @return The gender.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumGender getGender();
+
+    /**
+     * <code>int64 CorpId = 8;</code>
+     * @return The corpId.
+     */
+    long getCorpId();
+
+    /**
+     * <code>int32 AddTime = 9;</code>
+     * @return The addTime.
+     */
+    int getAddTime();
+
+    /**
+     * <pre>
+     * 添加来源
+     * </pre>
+     *
+     * <code>int32 Source = 10;</code>
+     * @return The source.
+     */
+    int getSource();
+
+    /**
+     * <pre>
+     *设置的用户标签
+     * </pre>
+     *
+     * <code>repeated int64 LabelIds = 11;</code>
+     * @return A list containing the labelIds.
+     */
+    java.util.List<java.lang.Long> getLabelIdsList();
+    /**
+     * <pre>
+     *设置的用户标签
+     * </pre>
+     *
+     * <code>repeated int64 LabelIds = 11;</code>
+     * @return The count of labelIds.
+     */
+    int getLabelIdsCount();
+    /**
+     * <pre>
+     *设置的用户标签
+     * </pre>
+     *
+     * <code>repeated int64 LabelIds = 11;</code>
+     * @param index The index of the element to return.
+     * @return The labelIds at the given index.
+     */
+    long getLabelIds(int index);
+
+    /**
+     * <pre>
+     * 后缀
+     * </pre>
+     *
+     * <code>string Suffix = 12;</code>
+     * @return The suffix.
+     */
+    java.lang.String getSuffix();
+    /**
+     * <pre>
+     * 后缀
+     * </pre>
+     *
+     * <code>string Suffix = 12;</code>
+     * @return The bytes for suffix.
+     */
+    com.google.protobuf.ByteString
+        getSuffixBytes();
+
+    /**
+     * <code>string OpenId = 13;</code>
+     * @return The openId.
+     */
+    java.lang.String getOpenId();
+    /**
+     * <code>string OpenId = 13;</code>
+     * @return The bytes for openId.
+     */
+    com.google.protobuf.ByteString
+        getOpenIdBytes();
+
+    /**
+     * <code>int64 SourceUser = 14;</code>
+     * @return The sourceUser.
+     */
+    long getSourceUser();
+
+    /**
+     * <code>int64 SourceRoomId = 15;</code>
+     * @return The sourceRoomId.
+     */
+    long getSourceRoomId();
+
+    /**
+     * <pre>
+     *来自微信好友(wxid)来自通讯录(电话号码)
+     * </pre>
+     *
+     * <code>string SourceFriend = 16;</code>
+     * @return The sourceFriend.
+     */
+    java.lang.String getSourceFriend();
+    /**
+     * <pre>
+     *来自微信好友(wxid)来自通讯录(电话号码)
+     * </pre>
+     *
+     * <code>string SourceFriend = 16;</code>
+     * @return The bytes for sourceFriend.
+     */
+    com.google.protobuf.ByteString
+        getSourceFriendBytes();
+
+    /**
+     * <code>string ApplyContent = 17;</code>
+     * @return The applyContent.
+     */
+    java.lang.String getApplyContent();
+    /**
+     * <code>string ApplyContent = 17;</code>
+     * @return The bytes for applyContent.
+     */
+    com.google.protobuf.ByteString
+        getApplyContentBytes();
+
+    /**
+     * <code>string Remark = 18;</code>
+     * @return The remark.
+     */
+    java.lang.String getRemark();
+    /**
+     * <code>string Remark = 18;</code>
+     * @return The bytes for remark.
+     */
+    com.google.protobuf.ByteString
+        getRemarkBytes();
+
+    /**
+     * <code>string CompanyRemark = 19;</code>
+     * @return The companyRemark.
+     */
+    java.lang.String getCompanyRemark();
+    /**
+     * <code>string CompanyRemark = 19;</code>
+     * @return The bytes for companyRemark.
+     */
+    com.google.protobuf.ByteString
+        getCompanyRemarkBytes();
+
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @return A list containing the phoneRemark.
+     */
+    java.util.List<java.lang.String>
+        getPhoneRemarkList();
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @return The count of phoneRemark.
+     */
+    int getPhoneRemarkCount();
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @param index The index of the element to return.
+     * @return The phoneRemark at the given index.
+     */
+    java.lang.String getPhoneRemark(int index);
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the phoneRemark at the given index.
+     */
+    com.google.protobuf.ByteString
+        getPhoneRemarkBytes(int index);
+
+    /**
+     * <code>string Desc = 21;</code>
+     * @return The desc.
+     */
+    java.lang.String getDesc();
+    /**
+     * <code>string Desc = 21;</code>
+     * @return The bytes for desc.
+     */
+    com.google.protobuf.ByteString
+        getDescBytes();
+
+    /**
+     * <code>string DescUrl = 22;</code>
+     * @return The descUrl.
+     */
+    java.lang.String getDescUrl();
+    /**
+     * <code>string DescUrl = 22;</code>
+     * @return The bytes for descUrl.
+     */
+    com.google.protobuf.ByteString
+        getDescUrlBytes();
+
+    /**
+     * <code>int64 Attr = 23;</code>
+     * @return The attr.
+     */
+    long getAttr();
+
+    /**
+     * <code>int64 Attr2 = 24;</code>
+     * @return The attr2.
+     */
+    long getAttr2();
+
+    /**
+     * <code>int64 Attr3 = 25;</code>
+     * @return The attr3.
+     */
+    long getAttr3();
+
+    /**
+     * <code>int64 ApplyTime = 26;</code>
+     * @return The applyTime.
+     */
+    long getApplyTime();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerMessage}
+   */
+  public  static final class CustomerMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.CustomerMessage)
+      CustomerMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use CustomerMessage.newBuilder() to construct.
+    private CustomerMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private CustomerMessage() {
+      name_ = "";
+      alias_ = "";
+      avatar_ = "";
+      mobile_ = "";
+      unionId_ = "";
+      gender_ = 0;
+      labelIds_ = emptyLongList();
+      suffix_ = "";
+      openId_ = "";
+      sourceFriend_ = "";
+      applyContent_ = "";
+      remark_ = "";
+      companyRemark_ = "";
+      phoneRemark_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      desc_ = "";
+      descUrl_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new CustomerMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private CustomerMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              alias_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              avatar_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              mobile_ = s;
+              break;
+            }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              unionId_ = s;
+              break;
+            }
+            case 56: {
+              int rawValue = input.readEnum();
+
+              gender_ = rawValue;
+              break;
+            }
+            case 64: {
+
+              corpId_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              addTime_ = input.readInt32();
+              break;
+            }
+            case 80: {
+
+              source_ = input.readInt32();
+              break;
+            }
+            case 88: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                labelIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              labelIds_.addLong(input.readInt64());
+              break;
+            }
+            case 90: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                labelIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                labelIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 98: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              suffix_ = s;
+              break;
+            }
+            case 106: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              openId_ = s;
+              break;
+            }
+            case 112: {
+
+              sourceUser_ = input.readInt64();
+              break;
+            }
+            case 120: {
+
+              sourceRoomId_ = input.readInt64();
+              break;
+            }
+            case 130: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              sourceFriend_ = s;
+              break;
+            }
+            case 138: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              applyContent_ = s;
+              break;
+            }
+            case 146: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              remark_ = s;
+              break;
+            }
+            case 154: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              companyRemark_ = s;
+              break;
+            }
+            case 162: {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                phoneRemark_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              phoneRemark_.add(s);
+              break;
+            }
+            case 170: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              desc_ = s;
+              break;
+            }
+            case 178: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              descUrl_ = s;
+              break;
+            }
+            case 184: {
+
+              attr_ = input.readInt64();
+              break;
+            }
+            case 192: {
+
+              attr2_ = input.readInt64();
+              break;
+            }
+            case 200: {
+
+              attr3_ = input.readInt64();
+              break;
+            }
+            case 208: {
+
+              applyTime_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          labelIds_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          phoneRemark_ = phoneRemark_.getUnmodifiableView();
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.class, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder.class);
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 1;
+    private long remoteId_;
+    /**
+     * <pre>
+     *唯一id (RemoteId&gt;&gt;48==20 App; RemoteId&gt;&gt;48==28 微信用户; RemoteId&gt;&gt;48==33,34 外部客户; RemoteId&gt;&gt;48==39 群机器人; RemoteId&gt;&gt;48==30 内部客服; RemoteId&gt;&gt;48==32 VIP客户;)
+     * </pre>
+     *
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 2;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 2;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 2;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ALIAS_FIELD_NUMBER = 3;
+    private volatile java.lang.Object alias_;
+    /**
+     * <code>string Alias = 3;</code>
+     * @return The alias.
+     */
+    public java.lang.String getAlias() {
+      java.lang.Object ref = alias_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        alias_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Alias = 3;</code>
+     * @return The bytes for alias.
+     */
+    public com.google.protobuf.ByteString
+        getAliasBytes() {
+      java.lang.Object ref = alias_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        alias_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AVATAR_FIELD_NUMBER = 4;
+    private volatile java.lang.Object avatar_;
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    public java.lang.String getAvatar() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        avatar_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarBytes() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        avatar_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MOBILE_FIELD_NUMBER = 5;
+    private volatile java.lang.Object mobile_;
+    /**
+     * <code>string Mobile = 5;</code>
+     * @return The mobile.
+     */
+    public java.lang.String getMobile() {
+      java.lang.Object ref = mobile_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        mobile_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Mobile = 5;</code>
+     * @return The bytes for mobile.
+     */
+    public com.google.protobuf.ByteString
+        getMobileBytes() {
+      java.lang.Object ref = mobile_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        mobile_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int UNIONID_FIELD_NUMBER = 6;
+    private volatile java.lang.Object unionId_;
+    /**
+     * <pre>
+     * 微信UnionId,可能为空
+     * </pre>
+     *
+     * <code>string UnionId = 6;</code>
+     * @return The unionId.
+     */
+    public java.lang.String getUnionId() {
+      java.lang.Object ref = unionId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        unionId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 微信UnionId,可能为空
+     * </pre>
+     *
+     * <code>string UnionId = 6;</code>
+     * @return The bytes for unionId.
+     */
+    public com.google.protobuf.ByteString
+        getUnionIdBytes() {
+      java.lang.Object ref = unionId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        unionId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int GENDER_FIELD_NUMBER = 7;
+    private int gender_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+     * @return The enum numeric value on the wire for gender.
+     */
+    public int getGenderValue() {
+      return gender_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+     * @return The gender.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumGender getGender() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumGender result = Im.Scrm.Ww.Proto.WTransport.EnumGender.valueOf(gender_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumGender.UNRECOGNIZED : result;
+    }
+
+    public static final int CORPID_FIELD_NUMBER = 8;
+    private long corpId_;
+    /**
+     * <code>int64 CorpId = 8;</code>
+     * @return The corpId.
+     */
+    public long getCorpId() {
+      return corpId_;
+    }
+
+    public static final int ADDTIME_FIELD_NUMBER = 9;
+    private int addTime_;
+    /**
+     * <code>int32 AddTime = 9;</code>
+     * @return The addTime.
+     */
+    public int getAddTime() {
+      return addTime_;
+    }
+
+    public static final int SOURCE_FIELD_NUMBER = 10;
+    private int source_;
+    /**
+     * <pre>
+     * 添加来源
+     * </pre>
+     *
+     * <code>int32 Source = 10;</code>
+     * @return The source.
+     */
+    public int getSource() {
+      return source_;
+    }
+
+    public static final int LABELIDS_FIELD_NUMBER = 11;
+    private com.google.protobuf.Internal.LongList labelIds_;
+    /**
+     * <pre>
+     *设置的用户标签
+     * </pre>
+     *
+     * <code>repeated int64 LabelIds = 11;</code>
+     * @return A list containing the labelIds.
+     */
+    public java.util.List<java.lang.Long>
+        getLabelIdsList() {
+      return labelIds_;
+    }
+    /**
+     * <pre>
+     *设置的用户标签
+     * </pre>
+     *
+     * <code>repeated int64 LabelIds = 11;</code>
+     * @return The count of labelIds.
+     */
+    public int getLabelIdsCount() {
+      return labelIds_.size();
+    }
+    /**
+     * <pre>
+     *设置的用户标签
+     * </pre>
+     *
+     * <code>repeated int64 LabelIds = 11;</code>
+     * @param index The index of the element to return.
+     * @return The labelIds at the given index.
+     */
+    public long getLabelIds(int index) {
+      return labelIds_.getLong(index);
+    }
+    private int labelIdsMemoizedSerializedSize = -1;
+
+    public static final int SUFFIX_FIELD_NUMBER = 12;
+    private volatile java.lang.Object suffix_;
+    /**
+     * <pre>
+     * 后缀
+     * </pre>
+     *
+     * <code>string Suffix = 12;</code>
+     * @return The suffix.
+     */
+    public java.lang.String getSuffix() {
+      java.lang.Object ref = suffix_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        suffix_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 后缀
+     * </pre>
+     *
+     * <code>string Suffix = 12;</code>
+     * @return The bytes for suffix.
+     */
+    public com.google.protobuf.ByteString
+        getSuffixBytes() {
+      java.lang.Object ref = suffix_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        suffix_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int OPENID_FIELD_NUMBER = 13;
+    private volatile java.lang.Object openId_;
+    /**
+     * <code>string OpenId = 13;</code>
+     * @return The openId.
+     */
+    public java.lang.String getOpenId() {
+      java.lang.Object ref = openId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        openId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string OpenId = 13;</code>
+     * @return The bytes for openId.
+     */
+    public com.google.protobuf.ByteString
+        getOpenIdBytes() {
+      java.lang.Object ref = openId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        openId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SOURCEUSER_FIELD_NUMBER = 14;
+    private long sourceUser_;
+    /**
+     * <code>int64 SourceUser = 14;</code>
+     * @return The sourceUser.
+     */
+    public long getSourceUser() {
+      return sourceUser_;
+    }
+
+    public static final int SOURCEROOMID_FIELD_NUMBER = 15;
+    private long sourceRoomId_;
+    /**
+     * <code>int64 SourceRoomId = 15;</code>
+     * @return The sourceRoomId.
+     */
+    public long getSourceRoomId() {
+      return sourceRoomId_;
+    }
+
+    public static final int SOURCEFRIEND_FIELD_NUMBER = 16;
+    private volatile java.lang.Object sourceFriend_;
+    /**
+     * <pre>
+     *来自微信好友(wxid)来自通讯录(电话号码)
+     * </pre>
+     *
+     * <code>string SourceFriend = 16;</code>
+     * @return The sourceFriend.
+     */
+    public java.lang.String getSourceFriend() {
+      java.lang.Object ref = sourceFriend_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        sourceFriend_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *来自微信好友(wxid)来自通讯录(电话号码)
+     * </pre>
+     *
+     * <code>string SourceFriend = 16;</code>
+     * @return The bytes for sourceFriend.
+     */
+    public com.google.protobuf.ByteString
+        getSourceFriendBytes() {
+      java.lang.Object ref = sourceFriend_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        sourceFriend_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int APPLYCONTENT_FIELD_NUMBER = 17;
+    private volatile java.lang.Object applyContent_;
+    /**
+     * <code>string ApplyContent = 17;</code>
+     * @return The applyContent.
+     */
+    public java.lang.String getApplyContent() {
+      java.lang.Object ref = applyContent_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        applyContent_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string ApplyContent = 17;</code>
+     * @return The bytes for applyContent.
+     */
+    public com.google.protobuf.ByteString
+        getApplyContentBytes() {
+      java.lang.Object ref = applyContent_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        applyContent_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int REMARK_FIELD_NUMBER = 18;
+    private volatile java.lang.Object remark_;
+    /**
+     * <code>string Remark = 18;</code>
+     * @return The remark.
+     */
+    public java.lang.String getRemark() {
+      java.lang.Object ref = remark_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        remark_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Remark = 18;</code>
+     * @return The bytes for remark.
+     */
+    public com.google.protobuf.ByteString
+        getRemarkBytes() {
+      java.lang.Object ref = remark_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        remark_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int COMPANYREMARK_FIELD_NUMBER = 19;
+    private volatile java.lang.Object companyRemark_;
+    /**
+     * <code>string CompanyRemark = 19;</code>
+     * @return The companyRemark.
+     */
+    public java.lang.String getCompanyRemark() {
+      java.lang.Object ref = companyRemark_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        companyRemark_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string CompanyRemark = 19;</code>
+     * @return The bytes for companyRemark.
+     */
+    public com.google.protobuf.ByteString
+        getCompanyRemarkBytes() {
+      java.lang.Object ref = companyRemark_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        companyRemark_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int PHONEREMARK_FIELD_NUMBER = 20;
+    private com.google.protobuf.LazyStringList phoneRemark_;
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @return A list containing the phoneRemark.
+     */
+    public com.google.protobuf.ProtocolStringList
+        getPhoneRemarkList() {
+      return phoneRemark_;
+    }
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @return The count of phoneRemark.
+     */
+    public int getPhoneRemarkCount() {
+      return phoneRemark_.size();
+    }
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @param index The index of the element to return.
+     * @return The phoneRemark at the given index.
+     */
+    public java.lang.String getPhoneRemark(int index) {
+      return phoneRemark_.get(index);
+    }
+    /**
+     * <code>repeated string PhoneRemark = 20;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the phoneRemark at the given index.
+     */
+    public com.google.protobuf.ByteString
+        getPhoneRemarkBytes(int index) {
+      return phoneRemark_.getByteString(index);
+    }
+
+    public static final int DESC_FIELD_NUMBER = 21;
+    private volatile java.lang.Object desc_;
+    /**
+     * <code>string Desc = 21;</code>
+     * @return The desc.
+     */
+    public java.lang.String getDesc() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        desc_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Desc = 21;</code>
+     * @return The bytes for desc.
+     */
+    public com.google.protobuf.ByteString
+        getDescBytes() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        desc_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int DESCURL_FIELD_NUMBER = 22;
+    private volatile java.lang.Object descUrl_;
+    /**
+     * <code>string DescUrl = 22;</code>
+     * @return The descUrl.
+     */
+    public java.lang.String getDescUrl() {
+      java.lang.Object ref = descUrl_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        descUrl_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string DescUrl = 22;</code>
+     * @return The bytes for descUrl.
+     */
+    public com.google.protobuf.ByteString
+        getDescUrlBytes() {
+      java.lang.Object ref = descUrl_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        descUrl_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ATTR_FIELD_NUMBER = 23;
+    private long attr_;
+    /**
+     * <code>int64 Attr = 23;</code>
+     * @return The attr.
+     */
+    public long getAttr() {
+      return attr_;
+    }
+
+    public static final int ATTR2_FIELD_NUMBER = 24;
+    private long attr2_;
+    /**
+     * <code>int64 Attr2 = 24;</code>
+     * @return The attr2.
+     */
+    public long getAttr2() {
+      return attr2_;
+    }
+
+    public static final int ATTR3_FIELD_NUMBER = 25;
+    private long attr3_;
+    /**
+     * <code>int64 Attr3 = 25;</code>
+     * @return The attr3.
+     */
+    public long getAttr3() {
+      return attr3_;
+    }
+
+    public static final int APPLYTIME_FIELD_NUMBER = 26;
+    private long applyTime_;
+    /**
+     * <code>int64 ApplyTime = 26;</code>
+     * @return The applyTime.
+     */
+    public long getApplyTime() {
+      return applyTime_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (remoteId_ != 0L) {
+        output.writeInt64(1, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
+      }
+      if (!getAliasBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, alias_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, avatar_);
+      }
+      if (!getMobileBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, mobile_);
+      }
+      if (!getUnionIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, unionId_);
+      }
+      if (gender_ != Im.Scrm.Ww.Proto.WTransport.EnumGender.UnknownGender.getNumber()) {
+        output.writeEnum(7, gender_);
+      }
+      if (corpId_ != 0L) {
+        output.writeInt64(8, corpId_);
+      }
+      if (addTime_ != 0) {
+        output.writeInt32(9, addTime_);
+      }
+      if (source_ != 0) {
+        output.writeInt32(10, source_);
+      }
+      if (getLabelIdsList().size() > 0) {
+        output.writeUInt32NoTag(90);
+        output.writeUInt32NoTag(labelIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < labelIds_.size(); i++) {
+        output.writeInt64NoTag(labelIds_.getLong(i));
+      }
+      if (!getSuffixBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, suffix_);
+      }
+      if (!getOpenIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, openId_);
+      }
+      if (sourceUser_ != 0L) {
+        output.writeInt64(14, sourceUser_);
+      }
+      if (sourceRoomId_ != 0L) {
+        output.writeInt64(15, sourceRoomId_);
+      }
+      if (!getSourceFriendBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, sourceFriend_);
+      }
+      if (!getApplyContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, applyContent_);
+      }
+      if (!getRemarkBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, remark_);
+      }
+      if (!getCompanyRemarkBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, companyRemark_);
+      }
+      for (int i = 0; i < phoneRemark_.size(); i++) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, phoneRemark_.getRaw(i));
+      }
+      if (!getDescBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 21, desc_);
+      }
+      if (!getDescUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 22, descUrl_);
+      }
+      if (attr_ != 0L) {
+        output.writeInt64(23, attr_);
+      }
+      if (attr2_ != 0L) {
+        output.writeInt64(24, attr2_);
+      }
+      if (attr3_ != 0L) {
+        output.writeInt64(25, attr3_);
+      }
+      if (applyTime_ != 0L) {
+        output.writeInt64(26, applyTime_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
+      }
+      if (!getAliasBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, alias_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, avatar_);
+      }
+      if (!getMobileBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, mobile_);
+      }
+      if (!getUnionIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, unionId_);
+      }
+      if (gender_ != Im.Scrm.Ww.Proto.WTransport.EnumGender.UnknownGender.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(7, gender_);
+      }
+      if (corpId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, corpId_);
+      }
+      if (addTime_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(9, addTime_);
+      }
+      if (source_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(10, source_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < labelIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(labelIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getLabelIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        labelIdsMemoizedSerializedSize = dataSize;
+      }
+      if (!getSuffixBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, suffix_);
+      }
+      if (!getOpenIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, openId_);
+      }
+      if (sourceUser_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(14, sourceUser_);
+      }
+      if (sourceRoomId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(15, sourceRoomId_);
+      }
+      if (!getSourceFriendBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, sourceFriend_);
+      }
+      if (!getApplyContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, applyContent_);
+      }
+      if (!getRemarkBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, remark_);
+      }
+      if (!getCompanyRemarkBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, companyRemark_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < phoneRemark_.size(); i++) {
+          dataSize += computeStringSizeNoTag(phoneRemark_.getRaw(i));
+        }
+        size += dataSize;
+        size += 2 * getPhoneRemarkList().size();
+      }
+      if (!getDescBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, desc_);
+      }
+      if (!getDescUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, descUrl_);
+      }
+      if (attr_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(23, attr_);
+      }
+      if (attr2_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(24, attr2_);
+      }
+      if (attr3_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(25, attr3_);
+      }
+      if (applyTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(26, applyTime_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage other = (Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage) obj;
+
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getAlias()
+          .equals(other.getAlias())) return false;
+      if (!getAvatar()
+          .equals(other.getAvatar())) return false;
+      if (!getMobile()
+          .equals(other.getMobile())) return false;
+      if (!getUnionId()
+          .equals(other.getUnionId())) return false;
+      if (gender_ != other.gender_) return false;
+      if (getCorpId()
+          != other.getCorpId()) return false;
+      if (getAddTime()
+          != other.getAddTime()) return false;
+      if (getSource()
+          != other.getSource()) return false;
+      if (!getLabelIdsList()
+          .equals(other.getLabelIdsList())) return false;
+      if (!getSuffix()
+          .equals(other.getSuffix())) return false;
+      if (!getOpenId()
+          .equals(other.getOpenId())) return false;
+      if (getSourceUser()
+          != other.getSourceUser()) return false;
+      if (getSourceRoomId()
+          != other.getSourceRoomId()) return false;
+      if (!getSourceFriend()
+          .equals(other.getSourceFriend())) return false;
+      if (!getApplyContent()
+          .equals(other.getApplyContent())) return false;
+      if (!getRemark()
+          .equals(other.getRemark())) return false;
+      if (!getCompanyRemark()
+          .equals(other.getCompanyRemark())) return false;
+      if (!getPhoneRemarkList()
+          .equals(other.getPhoneRemarkList())) return false;
+      if (!getDesc()
+          .equals(other.getDesc())) return false;
+      if (!getDescUrl()
+          .equals(other.getDescUrl())) return false;
+      if (getAttr()
+          != other.getAttr()) return false;
+      if (getAttr2()
+          != other.getAttr2()) return false;
+      if (getAttr3()
+          != other.getAttr3()) return false;
+      if (getApplyTime()
+          != other.getApplyTime()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + ALIAS_FIELD_NUMBER;
+      hash = (53 * hash) + getAlias().hashCode();
+      hash = (37 * hash) + AVATAR_FIELD_NUMBER;
+      hash = (53 * hash) + getAvatar().hashCode();
+      hash = (37 * hash) + MOBILE_FIELD_NUMBER;
+      hash = (53 * hash) + getMobile().hashCode();
+      hash = (37 * hash) + UNIONID_FIELD_NUMBER;
+      hash = (53 * hash) + getUnionId().hashCode();
+      hash = (37 * hash) + GENDER_FIELD_NUMBER;
+      hash = (53 * hash) + gender_;
+      hash = (37 * hash) + CORPID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCorpId());
+      hash = (37 * hash) + ADDTIME_FIELD_NUMBER;
+      hash = (53 * hash) + getAddTime();
+      hash = (37 * hash) + SOURCE_FIELD_NUMBER;
+      hash = (53 * hash) + getSource();
+      if (getLabelIdsCount() > 0) {
+        hash = (37 * hash) + LABELIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getLabelIdsList().hashCode();
+      }
+      hash = (37 * hash) + SUFFIX_FIELD_NUMBER;
+      hash = (53 * hash) + getSuffix().hashCode();
+      hash = (37 * hash) + OPENID_FIELD_NUMBER;
+      hash = (53 * hash) + getOpenId().hashCode();
+      hash = (37 * hash) + SOURCEUSER_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSourceUser());
+      hash = (37 * hash) + SOURCEROOMID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSourceRoomId());
+      hash = (37 * hash) + SOURCEFRIEND_FIELD_NUMBER;
+      hash = (53 * hash) + getSourceFriend().hashCode();
+      hash = (37 * hash) + APPLYCONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getApplyContent().hashCode();
+      hash = (37 * hash) + REMARK_FIELD_NUMBER;
+      hash = (53 * hash) + getRemark().hashCode();
+      hash = (37 * hash) + COMPANYREMARK_FIELD_NUMBER;
+      hash = (53 * hash) + getCompanyRemark().hashCode();
+      if (getPhoneRemarkCount() > 0) {
+        hash = (37 * hash) + PHONEREMARK_FIELD_NUMBER;
+        hash = (53 * hash) + getPhoneRemarkList().hashCode();
+      }
+      hash = (37 * hash) + DESC_FIELD_NUMBER;
+      hash = (53 * hash) + getDesc().hashCode();
+      hash = (37 * hash) + DESCURL_FIELD_NUMBER;
+      hash = (53 * hash) + getDescUrl().hashCode();
+      hash = (37 * hash) + ATTR_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getAttr());
+      hash = (37 * hash) + ATTR2_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getAttr2());
+      hash = (37 * hash) + ATTR3_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getAttr3());
+      hash = (37 * hash) + APPLYTIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getApplyTime());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.CustomerMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.CustomerMessage)
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.class, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        remoteId_ = 0L;
+
+        name_ = "";
+
+        alias_ = "";
+
+        avatar_ = "";
+
+        mobile_ = "";
+
+        unionId_ = "";
+
+        gender_ = 0;
+
+        corpId_ = 0L;
+
+        addTime_ = 0;
+
+        source_ = 0;
+
+        labelIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        suffix_ = "";
+
+        openId_ = "";
+
+        sourceUser_ = 0L;
+
+        sourceRoomId_ = 0L;
+
+        sourceFriend_ = "";
+
+        applyContent_ = "";
+
+        remark_ = "";
+
+        companyRemark_ = "";
+
+        phoneRemark_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        desc_ = "";
+
+        descUrl_ = "";
+
+        attr_ = 0L;
+
+        attr2_ = 0L;
+
+        attr3_ = 0L;
+
+        applyTime_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_CustomerMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage build() {
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage result = new Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.remoteId_ = remoteId_;
+        result.name_ = name_;
+        result.alias_ = alias_;
+        result.avatar_ = avatar_;
+        result.mobile_ = mobile_;
+        result.unionId_ = unionId_;
+        result.gender_ = gender_;
+        result.corpId_ = corpId_;
+        result.addTime_ = addTime_;
+        result.source_ = source_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          labelIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.labelIds_ = labelIds_;
+        result.suffix_ = suffix_;
+        result.openId_ = openId_;
+        result.sourceUser_ = sourceUser_;
+        result.sourceRoomId_ = sourceRoomId_;
+        result.sourceFriend_ = sourceFriend_;
+        result.applyContent_ = applyContent_;
+        result.remark_ = remark_;
+        result.companyRemark_ = companyRemark_;
+        if (((bitField0_ & 0x00000002) != 0)) {
+          phoneRemark_ = phoneRemark_.getUnmodifiableView();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.phoneRemark_ = phoneRemark_;
+        result.desc_ = desc_;
+        result.descUrl_ = descUrl_;
+        result.attr_ = attr_;
+        result.attr2_ = attr2_;
+        result.attr3_ = attr3_;
+        result.applyTime_ = applyTime_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance()) return this;
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getAlias().isEmpty()) {
+          alias_ = other.alias_;
+          onChanged();
+        }
+        if (!other.getAvatar().isEmpty()) {
+          avatar_ = other.avatar_;
+          onChanged();
+        }
+        if (!other.getMobile().isEmpty()) {
+          mobile_ = other.mobile_;
+          onChanged();
+        }
+        if (!other.getUnionId().isEmpty()) {
+          unionId_ = other.unionId_;
+          onChanged();
+        }
+        if (other.gender_ != 0) {
+          setGenderValue(other.getGenderValue());
+        }
+        if (other.getCorpId() != 0L) {
+          setCorpId(other.getCorpId());
+        }
+        if (other.getAddTime() != 0) {
+          setAddTime(other.getAddTime());
+        }
+        if (other.getSource() != 0) {
+          setSource(other.getSource());
+        }
+        if (!other.labelIds_.isEmpty()) {
+          if (labelIds_.isEmpty()) {
+            labelIds_ = other.labelIds_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureLabelIdsIsMutable();
+            labelIds_.addAll(other.labelIds_);
+          }
+          onChanged();
+        }
+        if (!other.getSuffix().isEmpty()) {
+          suffix_ = other.suffix_;
+          onChanged();
+        }
+        if (!other.getOpenId().isEmpty()) {
+          openId_ = other.openId_;
+          onChanged();
+        }
+        if (other.getSourceUser() != 0L) {
+          setSourceUser(other.getSourceUser());
+        }
+        if (other.getSourceRoomId() != 0L) {
+          setSourceRoomId(other.getSourceRoomId());
+        }
+        if (!other.getSourceFriend().isEmpty()) {
+          sourceFriend_ = other.sourceFriend_;
+          onChanged();
+        }
+        if (!other.getApplyContent().isEmpty()) {
+          applyContent_ = other.applyContent_;
+          onChanged();
+        }
+        if (!other.getRemark().isEmpty()) {
+          remark_ = other.remark_;
+          onChanged();
+        }
+        if (!other.getCompanyRemark().isEmpty()) {
+          companyRemark_ = other.companyRemark_;
+          onChanged();
+        }
+        if (!other.phoneRemark_.isEmpty()) {
+          if (phoneRemark_.isEmpty()) {
+            phoneRemark_ = other.phoneRemark_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensurePhoneRemarkIsMutable();
+            phoneRemark_.addAll(other.phoneRemark_);
+          }
+          onChanged();
+        }
+        if (!other.getDesc().isEmpty()) {
+          desc_ = other.desc_;
+          onChanged();
+        }
+        if (!other.getDescUrl().isEmpty()) {
+          descUrl_ = other.descUrl_;
+          onChanged();
+        }
+        if (other.getAttr() != 0L) {
+          setAttr(other.getAttr());
+        }
+        if (other.getAttr2() != 0L) {
+          setAttr2(other.getAttr2());
+        }
+        if (other.getAttr3() != 0L) {
+          setAttr3(other.getAttr3());
+        }
+        if (other.getApplyTime() != 0L) {
+          setApplyTime(other.getApplyTime());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       *唯一id (RemoteId&gt;&gt;48==20 App; RemoteId&gt;&gt;48==28 微信用户; RemoteId&gt;&gt;48==33,34 外部客户; RemoteId&gt;&gt;48==39 群机器人; RemoteId&gt;&gt;48==30 内部客服; RemoteId&gt;&gt;48==32 VIP客户;)
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       *唯一id (RemoteId&gt;&gt;48==20 App; RemoteId&gt;&gt;48==28 微信用户; RemoteId&gt;&gt;48==33,34 外部客户; RemoteId&gt;&gt;48==39 群机器人; RemoteId&gt;&gt;48==30 内部客服; RemoteId&gt;&gt;48==32 VIP客户;)
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *唯一id (RemoteId&gt;&gt;48==20 App; RemoteId&gt;&gt;48==28 微信用户; RemoteId&gt;&gt;48==33,34 外部客户; RemoteId&gt;&gt;48==39 群机器人; RemoteId&gt;&gt;48==30 内部客服; RemoteId&gt;&gt;48==32 VIP客户;)
+       * </pre>
+       *
+       * <code>int64 RemoteId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 2;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 2;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object alias_ = "";
+      /**
+       * <code>string Alias = 3;</code>
+       * @return The alias.
+       */
+      public java.lang.String getAlias() {
+        java.lang.Object ref = alias_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          alias_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Alias = 3;</code>
+       * @return The bytes for alias.
+       */
+      public com.google.protobuf.ByteString
+          getAliasBytes() {
+        java.lang.Object ref = alias_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          alias_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Alias = 3;</code>
+       * @param value The alias to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAlias(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        alias_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Alias = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAlias() {
+        
+        alias_ = getDefaultInstance().getAlias();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Alias = 3;</code>
+       * @param value The bytes for alias to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAliasBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        alias_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object avatar_ = "";
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The avatar.
+       */
+      public java.lang.String getAvatar() {
+        java.lang.Object ref = avatar_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          avatar_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The bytes for avatar.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarBytes() {
+        java.lang.Object ref = avatar_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          avatar_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatar(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatar() {
+        
+        avatar_ = getDefaultInstance().getAvatar();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The bytes for avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object mobile_ = "";
+      /**
+       * <code>string Mobile = 5;</code>
+       * @return The mobile.
+       */
+      public java.lang.String getMobile() {
+        java.lang.Object ref = mobile_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          mobile_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Mobile = 5;</code>
+       * @return The bytes for mobile.
+       */
+      public com.google.protobuf.ByteString
+          getMobileBytes() {
+        java.lang.Object ref = mobile_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          mobile_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Mobile = 5;</code>
+       * @param value The mobile to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMobile(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        mobile_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Mobile = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMobile() {
+        
+        mobile_ = getDefaultInstance().getMobile();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Mobile = 5;</code>
+       * @param value The bytes for mobile to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMobileBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        mobile_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object unionId_ = "";
+      /**
+       * <pre>
+       * 微信UnionId,可能为空
+       * </pre>
+       *
+       * <code>string UnionId = 6;</code>
+       * @return The unionId.
+       */
+      public java.lang.String getUnionId() {
+        java.lang.Object ref = unionId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          unionId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 微信UnionId,可能为空
+       * </pre>
+       *
+       * <code>string UnionId = 6;</code>
+       * @return The bytes for unionId.
+       */
+      public com.google.protobuf.ByteString
+          getUnionIdBytes() {
+        java.lang.Object ref = unionId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          unionId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 微信UnionId,可能为空
+       * </pre>
+       *
+       * <code>string UnionId = 6;</code>
+       * @param value The unionId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnionId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        unionId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信UnionId,可能为空
+       * </pre>
+       *
+       * <code>string UnionId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUnionId() {
+        
+        unionId_ = getDefaultInstance().getUnionId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信UnionId,可能为空
+       * </pre>
+       *
+       * <code>string UnionId = 6;</code>
+       * @param value The bytes for unionId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUnionIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        unionId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int gender_ = 0;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+       * @return The enum numeric value on the wire for gender.
+       */
+      public int getGenderValue() {
+        return gender_;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+       * @param value The enum numeric value on the wire for gender to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGenderValue(int value) {
+        gender_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+       * @return The gender.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumGender getGender() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumGender result = Im.Scrm.Ww.Proto.WTransport.EnumGender.valueOf(gender_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumGender.UNRECOGNIZED : result;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+       * @param value The gender to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGender(Im.Scrm.Ww.Proto.WTransport.EnumGender value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        gender_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumGender Gender = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearGender() {
+        
+        gender_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long corpId_ ;
+      /**
+       * <code>int64 CorpId = 8;</code>
+       * @return The corpId.
+       */
+      public long getCorpId() {
+        return corpId_;
+      }
+      /**
+       * <code>int64 CorpId = 8;</code>
+       * @param value The corpId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCorpId(long value) {
+        
+        corpId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 CorpId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCorpId() {
+        
+        corpId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int addTime_ ;
+      /**
+       * <code>int32 AddTime = 9;</code>
+       * @return The addTime.
+       */
+      public int getAddTime() {
+        return addTime_;
+      }
+      /**
+       * <code>int32 AddTime = 9;</code>
+       * @param value The addTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAddTime(int value) {
+        
+        addTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 AddTime = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAddTime() {
+        
+        addTime_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int source_ ;
+      /**
+       * <pre>
+       * 添加来源
+       * </pre>
+       *
+       * <code>int32 Source = 10;</code>
+       * @return The source.
+       */
+      public int getSource() {
+        return source_;
+      }
+      /**
+       * <pre>
+       * 添加来源
+       * </pre>
+       *
+       * <code>int32 Source = 10;</code>
+       * @param value The source to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSource(int value) {
+        
+        source_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 添加来源
+       * </pre>
+       *
+       * <code>int32 Source = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSource() {
+        
+        source_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList labelIds_ = emptyLongList();
+      private void ensureLabelIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          labelIds_ = mutableCopy(labelIds_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @return A list containing the labelIds.
+       */
+      public java.util.List<java.lang.Long>
+          getLabelIdsList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(labelIds_) : labelIds_;
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @return The count of labelIds.
+       */
+      public int getLabelIdsCount() {
+        return labelIds_.size();
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @param index The index of the element to return.
+       * @return The labelIds at the given index.
+       */
+      public long getLabelIds(int index) {
+        return labelIds_.getLong(index);
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @param index The index to set the value at.
+       * @param value The labelIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLabelIds(
+          int index, long value) {
+        ensureLabelIdsIsMutable();
+        labelIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @param value The labelIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLabelIds(long value) {
+        ensureLabelIdsIsMutable();
+        labelIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @param values The labelIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllLabelIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureLabelIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, labelIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *设置的用户标签
+       * </pre>
+       *
+       * <code>repeated int64 LabelIds = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLabelIds() {
+        labelIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object suffix_ = "";
+      /**
+       * <pre>
+       * 后缀
+       * </pre>
+       *
+       * <code>string Suffix = 12;</code>
+       * @return The suffix.
+       */
+      public java.lang.String getSuffix() {
+        java.lang.Object ref = suffix_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          suffix_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 后缀
+       * </pre>
+       *
+       * <code>string Suffix = 12;</code>
+       * @return The bytes for suffix.
+       */
+      public com.google.protobuf.ByteString
+          getSuffixBytes() {
+        java.lang.Object ref = suffix_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          suffix_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 后缀
+       * </pre>
+       *
+       * <code>string Suffix = 12;</code>
+       * @param value The suffix to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuffix(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        suffix_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 后缀
+       * </pre>
+       *
+       * <code>string Suffix = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuffix() {
+        
+        suffix_ = getDefaultInstance().getSuffix();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 后缀
+       * </pre>
+       *
+       * <code>string Suffix = 12;</code>
+       * @param value The bytes for suffix to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuffixBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        suffix_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object openId_ = "";
+      /**
+       * <code>string OpenId = 13;</code>
+       * @return The openId.
+       */
+      public java.lang.String getOpenId() {
+        java.lang.Object ref = openId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          openId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string OpenId = 13;</code>
+       * @return The bytes for openId.
+       */
+      public com.google.protobuf.ByteString
+          getOpenIdBytes() {
+        java.lang.Object ref = openId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          openId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string OpenId = 13;</code>
+       * @param value The openId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOpenId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        openId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string OpenId = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOpenId() {
+        
+        openId_ = getDefaultInstance().getOpenId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string OpenId = 13;</code>
+       * @param value The bytes for openId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOpenIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        openId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long sourceUser_ ;
+      /**
+       * <code>int64 SourceUser = 14;</code>
+       * @return The sourceUser.
+       */
+      public long getSourceUser() {
+        return sourceUser_;
+      }
+      /**
+       * <code>int64 SourceUser = 14;</code>
+       * @param value The sourceUser to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSourceUser(long value) {
+        
+        sourceUser_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 SourceUser = 14;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSourceUser() {
+        
+        sourceUser_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long sourceRoomId_ ;
+      /**
+       * <code>int64 SourceRoomId = 15;</code>
+       * @return The sourceRoomId.
+       */
+      public long getSourceRoomId() {
+        return sourceRoomId_;
+      }
+      /**
+       * <code>int64 SourceRoomId = 15;</code>
+       * @param value The sourceRoomId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSourceRoomId(long value) {
+        
+        sourceRoomId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 SourceRoomId = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSourceRoomId() {
+        
+        sourceRoomId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object sourceFriend_ = "";
+      /**
+       * <pre>
+       *来自微信好友(wxid)来自通讯录(电话号码)
+       * </pre>
+       *
+       * <code>string SourceFriend = 16;</code>
+       * @return The sourceFriend.
+       */
+      public java.lang.String getSourceFriend() {
+        java.lang.Object ref = sourceFriend_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          sourceFriend_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *来自微信好友(wxid)来自通讯录(电话号码)
+       * </pre>
+       *
+       * <code>string SourceFriend = 16;</code>
+       * @return The bytes for sourceFriend.
+       */
+      public com.google.protobuf.ByteString
+          getSourceFriendBytes() {
+        java.lang.Object ref = sourceFriend_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          sourceFriend_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *来自微信好友(wxid)来自通讯录(电话号码)
+       * </pre>
+       *
+       * <code>string SourceFriend = 16;</code>
+       * @param value The sourceFriend to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSourceFriend(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        sourceFriend_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *来自微信好友(wxid)来自通讯录(电话号码)
+       * </pre>
+       *
+       * <code>string SourceFriend = 16;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSourceFriend() {
+        
+        sourceFriend_ = getDefaultInstance().getSourceFriend();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *来自微信好友(wxid)来自通讯录(电话号码)
+       * </pre>
+       *
+       * <code>string SourceFriend = 16;</code>
+       * @param value The bytes for sourceFriend to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSourceFriendBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        sourceFriend_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object applyContent_ = "";
+      /**
+       * <code>string ApplyContent = 17;</code>
+       * @return The applyContent.
+       */
+      public java.lang.String getApplyContent() {
+        java.lang.Object ref = applyContent_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          applyContent_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string ApplyContent = 17;</code>
+       * @return The bytes for applyContent.
+       */
+      public com.google.protobuf.ByteString
+          getApplyContentBytes() {
+        java.lang.Object ref = applyContent_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          applyContent_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string ApplyContent = 17;</code>
+       * @param value The applyContent to set.
+       * @return This builder for chaining.
+       */
+      public Builder setApplyContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        applyContent_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ApplyContent = 17;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearApplyContent() {
+        
+        applyContent_ = getDefaultInstance().getApplyContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ApplyContent = 17;</code>
+       * @param value The bytes for applyContent to set.
+       * @return This builder for chaining.
+       */
+      public Builder setApplyContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        applyContent_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object remark_ = "";
+      /**
+       * <code>string Remark = 18;</code>
+       * @return The remark.
+       */
+      public java.lang.String getRemark() {
+        java.lang.Object ref = remark_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          remark_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Remark = 18;</code>
+       * @return The bytes for remark.
+       */
+      public com.google.protobuf.ByteString
+          getRemarkBytes() {
+        java.lang.Object ref = remark_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          remark_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Remark = 18;</code>
+       * @param value The remark to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemark(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        remark_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Remark = 18;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemark() {
+        
+        remark_ = getDefaultInstance().getRemark();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Remark = 18;</code>
+       * @param value The bytes for remark to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemarkBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        remark_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object companyRemark_ = "";
+      /**
+       * <code>string CompanyRemark = 19;</code>
+       * @return The companyRemark.
+       */
+      public java.lang.String getCompanyRemark() {
+        java.lang.Object ref = companyRemark_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          companyRemark_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string CompanyRemark = 19;</code>
+       * @return The bytes for companyRemark.
+       */
+      public com.google.protobuf.ByteString
+          getCompanyRemarkBytes() {
+        java.lang.Object ref = companyRemark_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          companyRemark_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string CompanyRemark = 19;</code>
+       * @param value The companyRemark to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCompanyRemark(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        companyRemark_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string CompanyRemark = 19;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCompanyRemark() {
+        
+        companyRemark_ = getDefaultInstance().getCompanyRemark();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string CompanyRemark = 19;</code>
+       * @param value The bytes for companyRemark to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCompanyRemarkBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        companyRemark_ = value;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.LazyStringList phoneRemark_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensurePhoneRemarkIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          phoneRemark_ = new com.google.protobuf.LazyStringArrayList(phoneRemark_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @return A list containing the phoneRemark.
+       */
+      public com.google.protobuf.ProtocolStringList
+          getPhoneRemarkList() {
+        return phoneRemark_.getUnmodifiableView();
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @return The count of phoneRemark.
+       */
+      public int getPhoneRemarkCount() {
+        return phoneRemark_.size();
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @param index The index of the element to return.
+       * @return The phoneRemark at the given index.
+       */
+      public java.lang.String getPhoneRemark(int index) {
+        return phoneRemark_.get(index);
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @param index The index of the value to return.
+       * @return The bytes of the phoneRemark at the given index.
+       */
+      public com.google.protobuf.ByteString
+          getPhoneRemarkBytes(int index) {
+        return phoneRemark_.getByteString(index);
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @param index The index to set the value at.
+       * @param value The phoneRemark to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPhoneRemark(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensurePhoneRemarkIsMutable();
+        phoneRemark_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @param value The phoneRemark to add.
+       * @return This builder for chaining.
+       */
+      public Builder addPhoneRemark(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensurePhoneRemarkIsMutable();
+        phoneRemark_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @param values The phoneRemark to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllPhoneRemark(
+          java.lang.Iterable<java.lang.String> values) {
+        ensurePhoneRemarkIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, phoneRemark_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPhoneRemark() {
+        phoneRemark_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string PhoneRemark = 20;</code>
+       * @param value The bytes of the phoneRemark to add.
+       * @return This builder for chaining.
+       */
+      public Builder addPhoneRemarkBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        ensurePhoneRemarkIsMutable();
+        phoneRemark_.add(value);
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object desc_ = "";
+      /**
+       * <code>string Desc = 21;</code>
+       * @return The desc.
+       */
+      public java.lang.String getDesc() {
+        java.lang.Object ref = desc_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          desc_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 21;</code>
+       * @return The bytes for desc.
+       */
+      public com.google.protobuf.ByteString
+          getDescBytes() {
+        java.lang.Object ref = desc_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          desc_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Desc = 21;</code>
+       * @param value The desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDesc(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 21;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDesc() {
+        
+        desc_ = getDefaultInstance().getDesc();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Desc = 21;</code>
+       * @param value The bytes for desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object descUrl_ = "";
+      /**
+       * <code>string DescUrl = 22;</code>
+       * @return The descUrl.
+       */
+      public java.lang.String getDescUrl() {
+        java.lang.Object ref = descUrl_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          descUrl_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string DescUrl = 22;</code>
+       * @return The bytes for descUrl.
+       */
+      public com.google.protobuf.ByteString
+          getDescUrlBytes() {
+        java.lang.Object ref = descUrl_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          descUrl_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string DescUrl = 22;</code>
+       * @param value The descUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        descUrl_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string DescUrl = 22;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDescUrl() {
+        
+        descUrl_ = getDefaultInstance().getDescUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string DescUrl = 22;</code>
+       * @param value The bytes for descUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        descUrl_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long attr_ ;
+      /**
+       * <code>int64 Attr = 23;</code>
+       * @return The attr.
+       */
+      public long getAttr() {
+        return attr_;
+      }
+      /**
+       * <code>int64 Attr = 23;</code>
+       * @param value The attr to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAttr(long value) {
+        
+        attr_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 Attr = 23;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAttr() {
+        
+        attr_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long attr2_ ;
+      /**
+       * <code>int64 Attr2 = 24;</code>
+       * @return The attr2.
+       */
+      public long getAttr2() {
+        return attr2_;
+      }
+      /**
+       * <code>int64 Attr2 = 24;</code>
+       * @param value The attr2 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAttr2(long value) {
+        
+        attr2_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 Attr2 = 24;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAttr2() {
+        
+        attr2_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long attr3_ ;
+      /**
+       * <code>int64 Attr3 = 25;</code>
+       * @return The attr3.
+       */
+      public long getAttr3() {
+        return attr3_;
+      }
+      /**
+       * <code>int64 Attr3 = 25;</code>
+       * @param value The attr3 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAttr3(long value) {
+        
+        attr3_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 Attr3 = 25;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAttr3() {
+        
+        attr3_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long applyTime_ ;
+      /**
+       * <code>int64 ApplyTime = 26;</code>
+       * @return The applyTime.
+       */
+      public long getApplyTime() {
+        return applyTime_;
+      }
+      /**
+       * <code>int64 ApplyTime = 26;</code>
+       * @param value The applyTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setApplyTime(long value) {
+        
+        applyTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 ApplyTime = 26;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearApplyTime() {
+        
+        applyTime_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.CustomerMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.CustomerMessage)
+    private static final Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<CustomerMessage>
+        PARSER = new com.google.protobuf.AbstractParser<CustomerMessage>() {
+      @java.lang.Override
+      public CustomerMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new CustomerMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<CustomerMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<CustomerMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_CustomerMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_CustomerMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031WCustomerPushNotice.proto\022\020Im.Scrm.Ww." +
+      "Proto\032\020WTransport.proto\"\231\001\n\031CustomerPush" +
+      "NoticeMessage\022\014\n\004WxId\030\001 \001(\003\0223\n\010Contacts\030" +
+      "\002 \003(\0132!.Im.Scrm.Ww.Proto.CustomerMessage" +
+      "\022\014\n\004Size\030\003 \001(\005\022\r\n\005Count\030\004 \001(\005\022\014\n\004Page\030\005 " +
+      "\001(\005\022\016\n\006TaskId\030\006 \001(\003\"\362\003\n\017CustomerMessage\022" +
+      "\020\n\010RemoteId\030\001 \001(\003\022\014\n\004Name\030\002 \001(\t\022\r\n\005Alias" +
+      "\030\003 \001(\t\022\016\n\006Avatar\030\004 \001(\t\022\016\n\006Mobile\030\005 \001(\t\022\017" +
+      "\n\007UnionId\030\006 \001(\t\022,\n\006Gender\030\007 \001(\0162\034.Im.Scr" +
+      "m.Ww.Proto.EnumGender\022\016\n\006CorpId\030\010 \001(\003\022\017\n" +
+      "\007AddTime\030\t \001(\005\022\016\n\006Source\030\n \001(\005\022\020\n\010LabelI" +
+      "ds\030\013 \003(\003\022\016\n\006Suffix\030\014 \001(\t\022\016\n\006OpenId\030\r \001(\t" +
+      "\022\022\n\nSourceUser\030\016 \001(\003\022\024\n\014SourceRoomId\030\017 \001" +
+      "(\003\022\024\n\014SourceFriend\030\020 \001(\t\022\024\n\014ApplyContent" +
+      "\030\021 \001(\t\022\016\n\006Remark\030\022 \001(\t\022\025\n\rCompanyRemark\030" +
+      "\023 \001(\t\022\023\n\013PhoneRemark\030\024 \003(\t\022\014\n\004Desc\030\025 \001(\t" +
+      "\022\017\n\007DescUrl\030\026 \001(\t\022\014\n\004Attr\030\027 \001(\003\022\r\n\005Attr2" +
+      "\030\030 \001(\003\022\r\n\005Attr3\030\031 \001(\003\022\021\n\tApplyTime\030\032 \001(\003" +
+      "b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CustomerPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Contacts", "Size", "Count", "Page", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_CustomerMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_CustomerMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_CustomerMessage_descriptor,
+        new java.lang.String[] { "RemoteId", "Name", "Alias", "Avatar", "Mobile", "UnionId", "Gender", "CorpId", "AddTime", "Source", "LabelIds", "Suffix", "OpenId", "SourceUser", "SourceRoomId", "SourceFriend", "ApplyContent", "Remark", "CompanyRemark", "PhoneRemark", "Desc", "DescUrl", "Attr", "Attr2", "Attr3", "ApplyTime", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 890 - 0
src/main/java/Im/Scrm/Ww/Proto/WDaKaTask.java

@@ -0,0 +1,890 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDaKaTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDaKaTask {
+  private WDaKaTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DaKaTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DaKaTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 1 上班打卡 2 下班打卡 (未使用)
+     * </pre>
+     *
+     * <code>int32 Type = 2;</code>
+     * @return The type.
+     */
+    int getType();
+
+    /**
+     * <pre>
+     * 强制打卡(更新打卡)
+     * </pre>
+     *
+     * <code>bool Force = 3;</code>
+     * @return The force.
+     */
+    boolean getForce();
+
+    /**
+     * <pre>
+     * 保留字段,未使用 (检查时间,不允许早退等)
+     * </pre>
+     *
+     * <code>int32 Flag = 4;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DaKaTaskMessage}
+   */
+  public  static final class DaKaTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DaKaTaskMessage)
+      DaKaTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DaKaTaskMessage.newBuilder() to construct.
+    private DaKaTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DaKaTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DaKaTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DaKaTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            case 24: {
+
+              force_ = input.readBool();
+              break;
+            }
+            case 32: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDaKaTask.internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDaKaTask.internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.class, Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 2;
+    private int type_;
+    /**
+     * <pre>
+     * 1 上班打卡 2 下班打卡 (未使用)
+     * </pre>
+     *
+     * <code>int32 Type = 2;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    public static final int FORCE_FIELD_NUMBER = 3;
+    private boolean force_;
+    /**
+     * <pre>
+     * 强制打卡(更新打卡)
+     * </pre>
+     *
+     * <code>bool Force = 3;</code>
+     * @return The force.
+     */
+    public boolean getForce() {
+      return force_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 4;
+    private int flag_;
+    /**
+     * <pre>
+     * 保留字段,未使用 (检查时间,不允许早退等)
+     * </pre>
+     *
+     * <code>int32 Flag = 4;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (type_ != 0) {
+        output.writeInt32(2, type_);
+      }
+      if (force_ != false) {
+        output.writeBool(3, force_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(4, flag_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, type_);
+      }
+      if (force_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(3, force_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, flag_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage other = (Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getType()
+          != other.getType()) return false;
+      if (getForce()
+          != other.getForce()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (37 * hash) + FORCE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getForce());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DaKaTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DaKaTaskMessage)
+        Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDaKaTask.internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDaKaTask.internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.class, Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        type_ = 0;
+
+        force_ = false;
+
+        flag_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDaKaTask.internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage build() {
+        Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage result = new Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.type_ = type_;
+        result.force_ = force_;
+        result.flag_ = flag_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        if (other.getForce() != false) {
+          setForce(other.getForce());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int type_ ;
+      /**
+       * <pre>
+       * 1 上班打卡 2 下班打卡 (未使用)
+       * </pre>
+       *
+       * <code>int32 Type = 2;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <pre>
+       * 1 上班打卡 2 下班打卡 (未使用)
+       * </pre>
+       *
+       * <code>int32 Type = 2;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 1 上班打卡 2 下班打卡 (未使用)
+       * </pre>
+       *
+       * <code>int32 Type = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private boolean force_ ;
+      /**
+       * <pre>
+       * 强制打卡(更新打卡)
+       * </pre>
+       *
+       * <code>bool Force = 3;</code>
+       * @return The force.
+       */
+      public boolean getForce() {
+        return force_;
+      }
+      /**
+       * <pre>
+       * 强制打卡(更新打卡)
+       * </pre>
+       *
+       * <code>bool Force = 3;</code>
+       * @param value The force to set.
+       * @return This builder for chaining.
+       */
+      public Builder setForce(boolean value) {
+        
+        force_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 强制打卡(更新打卡)
+       * </pre>
+       *
+       * <code>bool Force = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearForce() {
+        
+        force_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <pre>
+       * 保留字段,未使用 (检查时间,不允许早退等)
+       * </pre>
+       *
+       * <code>int32 Flag = 4;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <pre>
+       * 保留字段,未使用 (检查时间,不允许早退等)
+       * </pre>
+       *
+       * <code>int32 Flag = 4;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 保留字段,未使用 (检查时间,不允许早退等)
+       * </pre>
+       *
+       * <code>int32 Flag = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DaKaTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DaKaTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DaKaTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DaKaTaskMessage>() {
+      @java.lang.Override
+      public DaKaTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DaKaTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DaKaTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DaKaTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDaKaTask.DaKaTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\017WDaKaTask.proto\022\020Im.Scrm.Ww.Proto\"Z\n\017D" +
+      "aKaTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\014\n\004Type\030\002 \001" +
+      "(\005\022\r\n\005Force\030\003 \001(\010\022\014\n\004Flag\030\004 \001(\005\022\016\n\006TaskI" +
+      "d\030\005 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DaKaTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Type", "Force", "Flag", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 716 - 0
src/main/java/Im/Scrm/Ww/Proto/WDelCustomerTask.java

@@ -0,0 +1,716 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDelCustomerTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDelCustomerTask {
+  private WDelCustomerTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DelCustomerTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DelCustomerTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 商家所属企业Wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 联系人id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DelCustomerTaskMessage}
+   */
+  public  static final class DelCustomerTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DelCustomerTaskMessage)
+      DelCustomerTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DelCustomerTaskMessage.newBuilder() to construct.
+    private DelCustomerTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DelCustomerTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DelCustomerTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DelCustomerTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDelCustomerTask.internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDelCustomerTask.internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.class, Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 商家所属企业Wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 联系人id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage other = (Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DelCustomerTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DelCustomerTaskMessage)
+        Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDelCustomerTask.internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDelCustomerTask.internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.class, Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDelCustomerTask.internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage build() {
+        Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage result = new Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 商家所属企业Wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 商家所属企业Wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 商家所属企业Wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DelCustomerTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DelCustomerTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DelCustomerTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DelCustomerTaskMessage>() {
+      @java.lang.Override
+      public DelCustomerTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DelCustomerTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DelCustomerTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DelCustomerTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDelCustomerTask.DelCustomerTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\026WDelCustomerTask.proto\022\020Im.Scrm.Ww.Pro" +
+      "to\032\020WTransport.proto\"H\n\026DelCustomerTaskM" +
+      "essage\022\014\n\004WxId\030\001 \001(\003\022\020\n\010RemoteId\030\002 \001(\003\022\016" +
+      "\n\006TaskId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DelCustomerTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", "TaskId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1192 - 0
src/main/java/Im/Scrm/Ww/Proto/WDelSnsCommentTask.java

@@ -0,0 +1,1192 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDelSnsCommentTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDelSnsCommentTask {
+  private WDelSnsCommentTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DelSnsCommentTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <pre>
+     * 评论id
+     * </pre>
+     *
+     * <code>int64 CommentId = 4;</code>
+     * @return The commentId.
+     */
+    long getCommentId();
+
+    /**
+     * <pre>
+     * 评论postid
+     * </pre>
+     *
+     * <code>string CmPostId = 5;</code>
+     * @return The cmPostId.
+     */
+    java.lang.String getCmPostId();
+    /**
+     * <pre>
+     * 评论postid
+     * </pre>
+     *
+     * <code>string CmPostId = 5;</code>
+     * @return The bytes for cmPostId.
+     */
+    com.google.protobuf.ByteString
+        getCmPostIdBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage}
+   */
+  public  static final class DelSnsCommentTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage)
+      DelSnsCommentTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DelSnsCommentTaskMessage.newBuilder() to construct.
+    private DelSnsCommentTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DelSnsCommentTaskMessage() {
+      postId_ = "";
+      cmPostId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DelSnsCommentTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DelSnsCommentTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 32: {
+
+              commentId_ = input.readInt64();
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              cmPostId_ = s;
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDelSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDelSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.class, Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 2;
+    private long snsId_;
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 3;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int COMMENTID_FIELD_NUMBER = 4;
+    private long commentId_;
+    /**
+     * <pre>
+     * 评论id
+     * </pre>
+     *
+     * <code>int64 CommentId = 4;</code>
+     * @return The commentId.
+     */
+    public long getCommentId() {
+      return commentId_;
+    }
+
+    public static final int CMPOSTID_FIELD_NUMBER = 5;
+    private volatile java.lang.Object cmPostId_;
+    /**
+     * <pre>
+     * 评论postid
+     * </pre>
+     *
+     * <code>string CmPostId = 5;</code>
+     * @return The cmPostId.
+     */
+    public java.lang.String getCmPostId() {
+      java.lang.Object ref = cmPostId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        cmPostId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 评论postid
+     * </pre>
+     *
+     * <code>string CmPostId = 5;</code>
+     * @return The bytes for cmPostId.
+     */
+    public com.google.protobuf.ByteString
+        getCmPostIdBytes() {
+      java.lang.Object ref = cmPostId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        cmPostId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, postId_);
+      }
+      if (commentId_ != 0L) {
+        output.writeInt64(4, commentId_);
+      }
+      if (!getCmPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, cmPostId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, postId_);
+      }
+      if (commentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, commentId_);
+      }
+      if (!getCmPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, cmPostId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage other = (Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (getCommentId()
+          != other.getCommentId()) return false;
+      if (!getCmPostId()
+          .equals(other.getCmPostId())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + COMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCommentId());
+      hash = (37 * hash) + CMPOSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getCmPostId().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage)
+        Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDelSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDelSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.class, Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        snsId_ = 0L;
+
+        postId_ = "";
+
+        commentId_ = 0L;
+
+        cmPostId_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDelSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage build() {
+        Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage result = new Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.snsId_ = snsId_;
+        result.postId_ = postId_;
+        result.commentId_ = commentId_;
+        result.cmPostId_ = cmPostId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (other.getCommentId() != 0L) {
+          setCommentId(other.getCommentId());
+        }
+        if (!other.getCmPostId().isEmpty()) {
+          cmPostId_ = other.cmPostId_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long commentId_ ;
+      /**
+       * <pre>
+       * 评论id
+       * </pre>
+       *
+       * <code>int64 CommentId = 4;</code>
+       * @return The commentId.
+       */
+      public long getCommentId() {
+        return commentId_;
+      }
+      /**
+       * <pre>
+       * 评论id
+       * </pre>
+       *
+       * <code>int64 CommentId = 4;</code>
+       * @param value The commentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentId(long value) {
+        
+        commentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论id
+       * </pre>
+       *
+       * <code>int64 CommentId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCommentId() {
+        
+        commentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object cmPostId_ = "";
+      /**
+       * <pre>
+       * 评论postid
+       * </pre>
+       *
+       * <code>string CmPostId = 5;</code>
+       * @return The cmPostId.
+       */
+      public java.lang.String getCmPostId() {
+        java.lang.Object ref = cmPostId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          cmPostId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论postid
+       * </pre>
+       *
+       * <code>string CmPostId = 5;</code>
+       * @return The bytes for cmPostId.
+       */
+      public com.google.protobuf.ByteString
+          getCmPostIdBytes() {
+        java.lang.Object ref = cmPostId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          cmPostId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论postid
+       * </pre>
+       *
+       * <code>string CmPostId = 5;</code>
+       * @param value The cmPostId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCmPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        cmPostId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论postid
+       * </pre>
+       *
+       * <code>string CmPostId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCmPostId() {
+        
+        cmPostId_ = getDefaultInstance().getCmPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论postid
+       * </pre>
+       *
+       * <code>string CmPostId = 5;</code>
+       * @param value The bytes for cmPostId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCmPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        cmPostId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DelSnsCommentTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DelSnsCommentTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DelSnsCommentTaskMessage>() {
+      @java.lang.Override
+      public DelSnsCommentTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DelSnsCommentTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DelSnsCommentTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DelSnsCommentTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDelSnsCommentTask.DelSnsCommentTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\030WDelSnsCommentTask.proto\022\020Im.Scrm.Ww.P" +
+      "roto\"|\n\030DelSnsCommentTaskMessage\022\014\n\004WxId" +
+      "\030\001 \001(\003\022\r\n\005SnsId\030\002 \001(\003\022\016\n\006PostId\030\003 \001(\t\022\021\n" +
+      "\tCommentId\030\004 \001(\003\022\020\n\010CmPostId\030\005 \001(\t\022\016\n\006Ta" +
+      "skId\030\006 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DelSnsCommentTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "SnsId", "PostId", "CommentId", "CmPostId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 918 - 0
src/main/java/Im/Scrm/Ww/Proto/WDelSnsTask.java

@@ -0,0 +1,918 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDelSnsTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDelSnsTask {
+  private WDelSnsTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DelSnsTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DelSnsTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DelSnsTaskMessage}
+   */
+  public  static final class DelSnsTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DelSnsTaskMessage)
+      DelSnsTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DelSnsTaskMessage.newBuilder() to construct.
+    private DelSnsTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DelSnsTaskMessage() {
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DelSnsTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DelSnsTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDelSnsTask.internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDelSnsTask.internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.class, Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 2;
+    private long snsId_;
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 3;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, postId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, postId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage other = (Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DelSnsTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DelSnsTaskMessage)
+        Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDelSnsTask.internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDelSnsTask.internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.class, Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        snsId_ = 0L;
+
+        postId_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDelSnsTask.internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage build() {
+        Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage result = new Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.snsId_ = snsId_;
+        result.postId_ = postId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DelSnsTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DelSnsTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DelSnsTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DelSnsTaskMessage>() {
+      @java.lang.Override
+      public DelSnsTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DelSnsTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DelSnsTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DelSnsTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDelSnsTask.DelSnsTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\021WDelSnsTask.proto\022\020Im.Scrm.Ww.Proto\"P\n" +
+      "\021DelSnsTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\r\n\005SnsI" +
+      "d\030\002 \001(\003\022\016\n\006PostId\030\003 \001(\t\022\016\n\006TaskId\030\004 \001(\003b" +
+      "\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DelSnsTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "SnsId", "PostId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 2002 - 0
src/main/java/Im/Scrm/Ww/Proto/WDepartmentPushNotice.java

@@ -0,0 +1,2002 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDepartmentPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDepartmentPushNotice {
+  private WDepartmentPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DepartmentPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage> 
+        getDepartsList();
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage getDeparts(int index);
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    int getDepartsCount();
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder> 
+        getDepartsOrBuilderList();
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder getDepartsOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage}
+   */
+  public  static final class DepartmentPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage)
+      DepartmentPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DepartmentPushNoticeMessage.newBuilder() to construct.
+    private DepartmentPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DepartmentPushNoticeMessage() {
+      departs_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DepartmentPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DepartmentPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                departs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              departs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          departs_ = java.util.Collections.unmodifiableList(departs_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.class, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int DEPARTS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage> departs_;
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage> getDepartsList() {
+      return departs_;
+    }
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder> 
+        getDepartsOrBuilderList() {
+      return departs_;
+    }
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    public int getDepartsCount() {
+      return departs_.size();
+    }
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage getDeparts(int index) {
+      return departs_.get(index);
+    }
+    /**
+     * <pre>
+     * 部门信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder getDepartsOrBuilder(
+        int index) {
+      return departs_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < departs_.size(); i++) {
+        output.writeMessage(2, departs_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < departs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, departs_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage other = (Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getDepartsList()
+          .equals(other.getDepartsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getDepartsCount() > 0) {
+        hash = (37 * hash) + DEPARTS_FIELD_NUMBER;
+        hash = (53 * hash) + getDepartsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.class, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getDepartsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (departsBuilder_ == null) {
+          departs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          departsBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage result = new Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (departsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            departs_ = java.util.Collections.unmodifiableList(departs_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.departs_ = departs_;
+        } else {
+          result.departs_ = departsBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (departsBuilder_ == null) {
+          if (!other.departs_.isEmpty()) {
+            if (departs_.isEmpty()) {
+              departs_ = other.departs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureDepartsIsMutable();
+              departs_.addAll(other.departs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.departs_.isEmpty()) {
+            if (departsBuilder_.isEmpty()) {
+              departsBuilder_.dispose();
+              departsBuilder_ = null;
+              departs_ = other.departs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              departsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getDepartsFieldBuilder() : null;
+            } else {
+              departsBuilder_.addAllMessages(other.departs_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage> departs_ =
+        java.util.Collections.emptyList();
+      private void ensureDepartsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          departs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage>(departs_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder> departsBuilder_;
+
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage> getDepartsList() {
+        if (departsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(departs_);
+        } else {
+          return departsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public int getDepartsCount() {
+        if (departsBuilder_ == null) {
+          return departs_.size();
+        } else {
+          return departsBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage getDeparts(int index) {
+        if (departsBuilder_ == null) {
+          return departs_.get(index);
+        } else {
+          return departsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder setDeparts(
+          int index, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage value) {
+        if (departsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureDepartsIsMutable();
+          departs_.set(index, value);
+          onChanged();
+        } else {
+          departsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder setDeparts(
+          int index, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder builderForValue) {
+        if (departsBuilder_ == null) {
+          ensureDepartsIsMutable();
+          departs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          departsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder addDeparts(Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage value) {
+        if (departsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureDepartsIsMutable();
+          departs_.add(value);
+          onChanged();
+        } else {
+          departsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder addDeparts(
+          int index, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage value) {
+        if (departsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureDepartsIsMutable();
+          departs_.add(index, value);
+          onChanged();
+        } else {
+          departsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder addDeparts(
+          Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder builderForValue) {
+        if (departsBuilder_ == null) {
+          ensureDepartsIsMutable();
+          departs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          departsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder addDeparts(
+          int index, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder builderForValue) {
+        if (departsBuilder_ == null) {
+          ensureDepartsIsMutable();
+          departs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          departsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder addAllDeparts(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage> values) {
+        if (departsBuilder_ == null) {
+          ensureDepartsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, departs_);
+          onChanged();
+        } else {
+          departsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder clearDeparts() {
+        if (departsBuilder_ == null) {
+          departs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          departsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Builder removeDeparts(int index) {
+        if (departsBuilder_ == null) {
+          ensureDepartsIsMutable();
+          departs_.remove(index);
+          onChanged();
+        } else {
+          departsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder getDepartsBuilder(
+          int index) {
+        return getDepartsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder getDepartsOrBuilder(
+          int index) {
+        if (departsBuilder_ == null) {
+          return departs_.get(index);  } else {
+          return departsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder> 
+           getDepartsOrBuilderList() {
+        if (departsBuilder_ != null) {
+          return departsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(departs_);
+        }
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder addDepartsBuilder() {
+        return getDepartsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder addDepartsBuilder(
+          int index) {
+        return getDepartsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 部门信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.DepartmentMessage Departs = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder> 
+           getDepartsBuilderList() {
+        return getDepartsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder> 
+          getDepartsFieldBuilder() {
+        if (departsBuilder_ == null) {
+          departsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder>(
+                  departs_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          departs_ = null;
+        }
+        return departsBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DepartmentPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DepartmentPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DepartmentPushNoticeMessage>() {
+      @java.lang.Override
+      public DepartmentPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DepartmentPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DepartmentPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DepartmentPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface DepartmentMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DepartmentMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * 上级部门id
+     * </pre>
+     *
+     * <code>int64 ParentId = 2;</code>
+     * @return The parentId.
+     */
+    long getParentId();
+
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <pre>
+     * 群聊id
+     * </pre>
+     *
+     * <code>int64 GroupId = 4;</code>
+     * @return The groupId.
+     */
+    long getGroupId();
+
+    /**
+     * <code>int32 UserCnt = 5;</code>
+     * @return The userCnt.
+     */
+    int getUserCnt();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DepartmentMessage}
+   */
+  public  static final class DepartmentMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DepartmentMessage)
+      DepartmentMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DepartmentMessage.newBuilder() to construct.
+    private DepartmentMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DepartmentMessage() {
+      name_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DepartmentMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DepartmentMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              parentId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 32: {
+
+              groupId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+
+              userCnt_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.class, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder.class);
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 1;
+    private long remoteId_;
+    /**
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int PARENTID_FIELD_NUMBER = 2;
+    private long parentId_;
+    /**
+     * <pre>
+     * 上级部门id
+     * </pre>
+     *
+     * <code>int64 ParentId = 2;</code>
+     * @return The parentId.
+     */
+    public long getParentId() {
+      return parentId_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int GROUPID_FIELD_NUMBER = 4;
+    private long groupId_;
+    /**
+     * <pre>
+     * 群聊id
+     * </pre>
+     *
+     * <code>int64 GroupId = 4;</code>
+     * @return The groupId.
+     */
+    public long getGroupId() {
+      return groupId_;
+    }
+
+    public static final int USERCNT_FIELD_NUMBER = 5;
+    private int userCnt_;
+    /**
+     * <code>int32 UserCnt = 5;</code>
+     * @return The userCnt.
+     */
+    public int getUserCnt() {
+      return userCnt_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (remoteId_ != 0L) {
+        output.writeInt64(1, remoteId_);
+      }
+      if (parentId_ != 0L) {
+        output.writeInt64(2, parentId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (groupId_ != 0L) {
+        output.writeInt64(4, groupId_);
+      }
+      if (userCnt_ != 0) {
+        output.writeInt32(5, userCnt_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, remoteId_);
+      }
+      if (parentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, parentId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (groupId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, groupId_);
+      }
+      if (userCnt_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, userCnt_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage other = (Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage) obj;
+
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (getParentId()
+          != other.getParentId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (getGroupId()
+          != other.getGroupId()) return false;
+      if (getUserCnt()
+          != other.getUserCnt()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + PARENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getParentId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + GROUPID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getGroupId());
+      hash = (37 * hash) + USERCNT_FIELD_NUMBER;
+      hash = (53 * hash) + getUserCnt();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DepartmentMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DepartmentMessage)
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.class, Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        remoteId_ = 0L;
+
+        parentId_ = 0L;
+
+        name_ = "";
+
+        groupId_ = 0L;
+
+        userCnt_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage build() {
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage result = new Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage(this);
+        result.remoteId_ = remoteId_;
+        result.parentId_ = parentId_;
+        result.name_ = name_;
+        result.groupId_ = groupId_;
+        result.userCnt_ = userCnt_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage.getDefaultInstance()) return this;
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (other.getParentId() != 0L) {
+          setParentId(other.getParentId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (other.getGroupId() != 0L) {
+          setGroupId(other.getGroupId());
+        }
+        if (other.getUserCnt() != 0) {
+          setUserCnt(other.getUserCnt());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <code>int64 RemoteId = 1;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <code>int64 RemoteId = 1;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 RemoteId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long parentId_ ;
+      /**
+       * <pre>
+       * 上级部门id
+       * </pre>
+       *
+       * <code>int64 ParentId = 2;</code>
+       * @return The parentId.
+       */
+      public long getParentId() {
+        return parentId_;
+      }
+      /**
+       * <pre>
+       * 上级部门id
+       * </pre>
+       *
+       * <code>int64 ParentId = 2;</code>
+       * @param value The parentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setParentId(long value) {
+        
+        parentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 上级部门id
+       * </pre>
+       *
+       * <code>int64 ParentId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearParentId() {
+        
+        parentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long groupId_ ;
+      /**
+       * <pre>
+       * 群聊id
+       * </pre>
+       *
+       * <code>int64 GroupId = 4;</code>
+       * @return The groupId.
+       */
+      public long getGroupId() {
+        return groupId_;
+      }
+      /**
+       * <pre>
+       * 群聊id
+       * </pre>
+       *
+       * <code>int64 GroupId = 4;</code>
+       * @param value The groupId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setGroupId(long value) {
+        
+        groupId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊id
+       * </pre>
+       *
+       * <code>int64 GroupId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearGroupId() {
+        
+        groupId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int userCnt_ ;
+      /**
+       * <code>int32 UserCnt = 5;</code>
+       * @return The userCnt.
+       */
+      public int getUserCnt() {
+        return userCnt_;
+      }
+      /**
+       * <code>int32 UserCnt = 5;</code>
+       * @param value The userCnt to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUserCnt(int value) {
+        
+        userCnt_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 UserCnt = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUserCnt() {
+        
+        userCnt_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DepartmentMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DepartmentMessage)
+    private static final Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DepartmentMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DepartmentMessage>() {
+      @java.lang.Override
+      public DepartmentMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DepartmentMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DepartmentMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DepartmentMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDepartmentPushNotice.DepartmentMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\033WDepartmentPushNotice.proto\022\020Im.Scrm.W" +
+      "w.Proto\"q\n\033DepartmentPushNoticeMessage\022\014" +
+      "\n\004WxId\030\001 \001(\003\0224\n\007Departs\030\002 \003(\0132#.Im.Scrm." +
+      "Ww.Proto.DepartmentMessage\022\016\n\006TaskId\030\003 \001" +
+      "(\003\"g\n\021DepartmentMessage\022\020\n\010RemoteId\030\001 \001(" +
+      "\003\022\020\n\010ParentId\030\002 \001(\003\022\014\n\004Name\030\003 \001(\t\022\017\n\007Gro" +
+      "upId\030\004 \001(\003\022\017\n\007UserCnt\030\005 \001(\005b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DepartmentPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Departs", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DepartmentMessage_descriptor,
+        new java.lang.String[] { "RemoteId", "ParentId", "Name", "GroupId", "UserCnt", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 953 - 0
src/main/java/Im/Scrm/Ww/Proto/WDeviceAuthReq.java

@@ -0,0 +1,953 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDeviceAuthReq.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDeviceAuthReq {
+  private WDeviceAuthReq() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DeviceAuthReqMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DeviceAuthReqMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *认证方式
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+     * @return The enum numeric value on the wire for authType.
+     */
+    int getAuthTypeValue();
+    /**
+     * <pre>
+     *认证方式
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+     * @return The authType.
+     */
+    Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType getAuthType();
+
+    /**
+     * <pre>
+     *凭证信息(不同认证方式传入不同的凭证信息)
+     * </pre>
+     *
+     * <code>string Credential = 2;</code>
+     * @return The credential.
+     */
+    java.lang.String getCredential();
+    /**
+     * <pre>
+     *凭证信息(不同认证方式传入不同的凭证信息)
+     * </pre>
+     *
+     * <code>string Credential = 2;</code>
+     * @return The bytes for credential.
+     */
+    com.google.protobuf.ByteString
+        getCredentialBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAuthReqMessage}
+   */
+  public  static final class DeviceAuthReqMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DeviceAuthReqMessage)
+      DeviceAuthReqMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DeviceAuthReqMessage.newBuilder() to construct.
+    private DeviceAuthReqMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DeviceAuthReqMessage() {
+      authType_ = 0;
+      credential_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DeviceAuthReqMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DeviceAuthReqMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              int rawValue = input.readEnum();
+
+              authType_ = rawValue;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              credential_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDeviceAuthReq.internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDeviceAuthReq.internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.class, Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.Builder.class);
+    }
+
+    /**
+     * <pre>
+     *认证方式枚举
+     * </pre>
+     *
+     * Protobuf enum {@code Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType}
+     */
+    public enum EnumAuthType
+        implements com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <pre>
+       *默认方式,默认使用
+       * </pre>
+       *
+       * <code>Default = 0;</code>
+       */
+      Default(0),
+      /**
+       * <pre>
+       *设备码(用于手机客户端,此方式Credential应传入手机IMEI)
+       * </pre>
+       *
+       * <code>DeviceCode = 1;</code>
+       */
+      DeviceCode(1),
+      /**
+       * <pre>
+       *用户名密码方式(此方式Credential应传入base64(user:pwd))
+       * </pre>
+       *
+       * <code>Username = 2;</code>
+       */
+      Username(2),
+      /**
+       * <pre>
+       *内部服务间通讯方式(此方式Credential可为空,服务器根据ip白名单来认证)
+       * </pre>
+       *
+       * <code>InternalCode = 3;</code>
+       */
+      InternalCode(3),
+      UNRECOGNIZED(-1),
+      ;
+
+      /**
+       * <pre>
+       *默认方式,默认使用
+       * </pre>
+       *
+       * <code>Default = 0;</code>
+       */
+      public static final int Default_VALUE = 0;
+      /**
+       * <pre>
+       *设备码(用于手机客户端,此方式Credential应传入手机IMEI)
+       * </pre>
+       *
+       * <code>DeviceCode = 1;</code>
+       */
+      public static final int DeviceCode_VALUE = 1;
+      /**
+       * <pre>
+       *用户名密码方式(此方式Credential应传入base64(user:pwd))
+       * </pre>
+       *
+       * <code>Username = 2;</code>
+       */
+      public static final int Username_VALUE = 2;
+      /**
+       * <pre>
+       *内部服务间通讯方式(此方式Credential可为空,服务器根据ip白名单来认证)
+       * </pre>
+       *
+       * <code>InternalCode = 3;</code>
+       */
+      public static final int InternalCode_VALUE = 3;
+
+
+      public final int getNumber() {
+        if (this == UNRECOGNIZED) {
+          throw new java.lang.IllegalArgumentException(
+              "Can't get the number of an unknown enum value.");
+        }
+        return value;
+      }
+
+      /**
+       * @param value The numeric wire value of the corresponding enum entry.
+       * @return The enum associated with the given numeric wire value.
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static EnumAuthType valueOf(int value) {
+        return forNumber(value);
+      }
+
+      /**
+       * @param value The numeric wire value of the corresponding enum entry.
+       * @return The enum associated with the given numeric wire value.
+       */
+      public static EnumAuthType forNumber(int value) {
+        switch (value) {
+          case 0: return Default;
+          case 1: return DeviceCode;
+          case 2: return Username;
+          case 3: return InternalCode;
+          default: return null;
+        }
+      }
+
+      public static com.google.protobuf.Internal.EnumLiteMap<EnumAuthType>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static final com.google.protobuf.Internal.EnumLiteMap<
+          EnumAuthType> internalValueMap =
+            new com.google.protobuf.Internal.EnumLiteMap<EnumAuthType>() {
+              public EnumAuthType findValueByNumber(int number) {
+                return EnumAuthType.forNumber(number);
+              }
+            };
+
+      public final com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(ordinal());
+      }
+      public final com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.getDescriptor().getEnumTypes().get(0);
+      }
+
+      private static final EnumAuthType[] VALUES = values();
+
+      public static EnumAuthType valueOf(
+          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+        if (desc.getType() != getDescriptor()) {
+          throw new java.lang.IllegalArgumentException(
+            "EnumValueDescriptor is not for this type.");
+        }
+        if (desc.getIndex() == -1) {
+          return UNRECOGNIZED;
+        }
+        return VALUES[desc.getIndex()];
+      }
+
+      private final int value;
+
+      private EnumAuthType(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType)
+    }
+
+    public static final int AUTHTYPE_FIELD_NUMBER = 1;
+    private int authType_;
+    /**
+     * <pre>
+     *认证方式
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+     * @return The enum numeric value on the wire for authType.
+     */
+    public int getAuthTypeValue() {
+      return authType_;
+    }
+    /**
+     * <pre>
+     *认证方式
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+     * @return The authType.
+     */
+    public Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType getAuthType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType result = Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType.valueOf(authType_);
+      return result == null ? Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType.UNRECOGNIZED : result;
+    }
+
+    public static final int CREDENTIAL_FIELD_NUMBER = 2;
+    private volatile java.lang.Object credential_;
+    /**
+     * <pre>
+     *凭证信息(不同认证方式传入不同的凭证信息)
+     * </pre>
+     *
+     * <code>string Credential = 2;</code>
+     * @return The credential.
+     */
+    public java.lang.String getCredential() {
+      java.lang.Object ref = credential_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        credential_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *凭证信息(不同认证方式传入不同的凭证信息)
+     * </pre>
+     *
+     * <code>string Credential = 2;</code>
+     * @return The bytes for credential.
+     */
+    public com.google.protobuf.ByteString
+        getCredentialBytes() {
+      java.lang.Object ref = credential_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        credential_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (authType_ != Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType.Default.getNumber()) {
+        output.writeEnum(1, authType_);
+      }
+      if (!getCredentialBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, credential_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (authType_ != Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType.Default.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, authType_);
+      }
+      if (!getCredentialBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, credential_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage other = (Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage) obj;
+
+      if (authType_ != other.authType_) return false;
+      if (!getCredential()
+          .equals(other.getCredential())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + AUTHTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + authType_;
+      hash = (37 * hash) + CREDENTIAL_FIELD_NUMBER;
+      hash = (53 * hash) + getCredential().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAuthReqMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DeviceAuthReqMessage)
+        Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthReq.internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthReq.internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.class, Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        authType_ = 0;
+
+        credential_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthReq.internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage build() {
+        Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage result = new Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage(this);
+        result.authType_ = authType_;
+        result.credential_ = credential_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.getDefaultInstance()) return this;
+        if (other.authType_ != 0) {
+          setAuthTypeValue(other.getAuthTypeValue());
+        }
+        if (!other.getCredential().isEmpty()) {
+          credential_ = other.credential_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int authType_ = 0;
+      /**
+       * <pre>
+       *认证方式
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+       * @return The enum numeric value on the wire for authType.
+       */
+      public int getAuthTypeValue() {
+        return authType_;
+      }
+      /**
+       * <pre>
+       *认证方式
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+       * @param value The enum numeric value on the wire for authType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAuthTypeValue(int value) {
+        authType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *认证方式
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+       * @return The authType.
+       */
+      public Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType getAuthType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType result = Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType.valueOf(authType_);
+        return result == null ? Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       *认证方式
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+       * @param value The authType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAuthType(Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage.EnumAuthType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        authType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *认证方式
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthReqMessage.EnumAuthType AuthType = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAuthType() {
+        
+        authType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object credential_ = "";
+      /**
+       * <pre>
+       *凭证信息(不同认证方式传入不同的凭证信息)
+       * </pre>
+       *
+       * <code>string Credential = 2;</code>
+       * @return The credential.
+       */
+      public java.lang.String getCredential() {
+        java.lang.Object ref = credential_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          credential_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *凭证信息(不同认证方式传入不同的凭证信息)
+       * </pre>
+       *
+       * <code>string Credential = 2;</code>
+       * @return The bytes for credential.
+       */
+      public com.google.protobuf.ByteString
+          getCredentialBytes() {
+        java.lang.Object ref = credential_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          credential_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *凭证信息(不同认证方式传入不同的凭证信息)
+       * </pre>
+       *
+       * <code>string Credential = 2;</code>
+       * @param value The credential to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCredential(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        credential_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *凭证信息(不同认证方式传入不同的凭证信息)
+       * </pre>
+       *
+       * <code>string Credential = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCredential() {
+        
+        credential_ = getDefaultInstance().getCredential();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *凭证信息(不同认证方式传入不同的凭证信息)
+       * </pre>
+       *
+       * <code>string Credential = 2;</code>
+       * @param value The bytes for credential to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCredentialBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        credential_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DeviceAuthReqMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DeviceAuthReqMessage)
+    private static final Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DeviceAuthReqMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DeviceAuthReqMessage>() {
+      @java.lang.Override
+      public DeviceAuthReqMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DeviceAuthReqMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DeviceAuthReqMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DeviceAuthReqMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDeviceAuthReq.DeviceAuthReqMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\024WDeviceAuthReq.proto\022\020Im.Scrm.Ww.Proto" +
+      "\"\276\001\n\024DeviceAuthReqMessage\022E\n\010AuthType\030\001 " +
+      "\001(\01623.Im.Scrm.Ww.Proto.DeviceAuthReqMess" +
+      "age.EnumAuthType\022\022\n\nCredential\030\002 \001(\t\"K\n\014" +
+      "EnumAuthType\022\013\n\007Default\020\000\022\016\n\nDeviceCode\020" +
+      "\001\022\014\n\010Username\020\002\022\020\n\014InternalCode\020\003b\006proto" +
+      "3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DeviceAuthReqMessage_descriptor,
+        new java.lang.String[] { "AuthType", "Credential", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 2018 - 0
src/main/java/Im/Scrm/Ww/Proto/WDeviceAuthRsp.java

@@ -0,0 +1,2018 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDeviceAuthRsp.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDeviceAuthRsp {
+  private WDeviceAuthRsp() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DeviceAuthRspMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DeviceAuthRspMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *授权成功后颁发给客户端的accesstoken
+     * </pre>
+     *
+     * <code>string AccessToken = 1;</code>
+     * @return The accessToken.
+     */
+    java.lang.String getAccessToken();
+    /**
+     * <pre>
+     *授权成功后颁发给客户端的accesstoken
+     * </pre>
+     *
+     * <code>string AccessToken = 1;</code>
+     * @return The bytes for accessToken.
+     */
+    com.google.protobuf.ByteString
+        getAccessTokenBytes();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+     * @return Whether the extra field is set.
+     */
+    boolean hasExtra();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+     * @return The extra.
+     */
+    Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage getExtra();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder getExtraOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAuthRspMessage}
+   */
+  public  static final class DeviceAuthRspMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DeviceAuthRspMessage)
+      DeviceAuthRspMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DeviceAuthRspMessage.newBuilder() to construct.
+    private DeviceAuthRspMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DeviceAuthRspMessage() {
+      accessToken_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DeviceAuthRspMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DeviceAuthRspMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              accessToken_ = s;
+              break;
+            }
+            case 18: {
+              Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder subBuilder = null;
+              if (extra_ != null) {
+                subBuilder = extra_.toBuilder();
+              }
+              extra_ = input.readMessage(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(extra_);
+                extra_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.class, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.Builder.class);
+    }
+
+    public interface ExtraMessageOrBuilder extends
+        // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage)
+        com.google.protobuf.MessageOrBuilder {
+
+      /**
+       * <code>int64 SupplierId = 1;</code>
+       * @return The supplierId.
+       */
+      long getSupplierId();
+
+      /**
+       * <code>int64 UnionId = 2;</code>
+       * @return The unionId.
+       */
+      long getUnionId();
+
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+       * @return The enum numeric value on the wire for accountType.
+       */
+      int getAccountTypeValue();
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+       * @return The accountType.
+       */
+      Im.Scrm.Ww.Proto.WTransport.EnumAccountType getAccountType();
+
+      /**
+       * <code>string SupplierName = 4;</code>
+       * @return The supplierName.
+       */
+      java.lang.String getSupplierName();
+      /**
+       * <code>string SupplierName = 4;</code>
+       * @return The bytes for supplierName.
+       */
+      com.google.protobuf.ByteString
+          getSupplierNameBytes();
+
+      /**
+       * <code>string NickName = 5;</code>
+       * @return The nickName.
+       */
+      java.lang.String getNickName();
+      /**
+       * <code>string NickName = 5;</code>
+       * @return The bytes for nickName.
+       */
+      com.google.protobuf.ByteString
+          getNickNameBytes();
+
+      /**
+       * <pre>
+       * 访问www使用
+       * </pre>
+       *
+       * <code>string Token = 6;</code>
+       * @return The token.
+       */
+      java.lang.String getToken();
+      /**
+       * <pre>
+       * 访问www使用
+       * </pre>
+       *
+       * <code>string Token = 6;</code>
+       * @return The bytes for token.
+       */
+      com.google.protobuf.ByteString
+          getTokenBytes();
+    }
+    /**
+     * <pre>
+     * 扩展信息
+     * </pre>
+     *
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage}
+     */
+    public  static final class ExtraMessage extends
+        com.google.protobuf.GeneratedMessageV3 implements
+        // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage)
+        ExtraMessageOrBuilder {
+    private static final long serialVersionUID = 0L;
+      // Use ExtraMessage.newBuilder() to construct.
+      private ExtraMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+        super(builder);
+      }
+      private ExtraMessage() {
+        accountType_ = 0;
+        supplierName_ = "";
+        nickName_ = "";
+        token_ = "";
+      }
+
+      @java.lang.Override
+      @SuppressWarnings({"unused"})
+      protected java.lang.Object newInstance(
+          UnusedPrivateParameter unused) {
+        return new ExtraMessage();
+      }
+
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private ExtraMessage(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder();
+        try {
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 8: {
+
+                supplierId_ = input.readInt64();
+                break;
+              }
+              case 16: {
+
+                unionId_ = input.readInt64();
+                break;
+              }
+              case 24: {
+                int rawValue = input.readEnum();
+
+                accountType_ = rawValue;
+                break;
+              }
+              case 34: {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                supplierName_ = s;
+                break;
+              }
+              case 42: {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                nickName_ = s;
+                break;
+              }
+              case 50: {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                token_ = s;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.class, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder.class);
+      }
+
+      public static final int SUPPLIERID_FIELD_NUMBER = 1;
+      private long supplierId_;
+      /**
+       * <code>int64 SupplierId = 1;</code>
+       * @return The supplierId.
+       */
+      public long getSupplierId() {
+        return supplierId_;
+      }
+
+      public static final int UNIONID_FIELD_NUMBER = 2;
+      private long unionId_;
+      /**
+       * <code>int64 UnionId = 2;</code>
+       * @return The unionId.
+       */
+      public long getUnionId() {
+        return unionId_;
+      }
+
+      public static final int ACCOUNTTYPE_FIELD_NUMBER = 3;
+      private int accountType_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+       * @return The enum numeric value on the wire for accountType.
+       */
+      public int getAccountTypeValue() {
+        return accountType_;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+       * @return The accountType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumAccountType getAccountType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumAccountType result = Im.Scrm.Ww.Proto.WTransport.EnumAccountType.valueOf(accountType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumAccountType.UNRECOGNIZED : result;
+      }
+
+      public static final int SUPPLIERNAME_FIELD_NUMBER = 4;
+      private volatile java.lang.Object supplierName_;
+      /**
+       * <code>string SupplierName = 4;</code>
+       * @return The supplierName.
+       */
+      public java.lang.String getSupplierName() {
+        java.lang.Object ref = supplierName_;
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          supplierName_ = s;
+          return s;
+        }
+      }
+      /**
+       * <code>string SupplierName = 4;</code>
+       * @return The bytes for supplierName.
+       */
+      public com.google.protobuf.ByteString
+          getSupplierNameBytes() {
+        java.lang.Object ref = supplierName_;
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          supplierName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+
+      public static final int NICKNAME_FIELD_NUMBER = 5;
+      private volatile java.lang.Object nickName_;
+      /**
+       * <code>string NickName = 5;</code>
+       * @return The nickName.
+       */
+      public java.lang.String getNickName() {
+        java.lang.Object ref = nickName_;
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          nickName_ = s;
+          return s;
+        }
+      }
+      /**
+       * <code>string NickName = 5;</code>
+       * @return The bytes for nickName.
+       */
+      public com.google.protobuf.ByteString
+          getNickNameBytes() {
+        java.lang.Object ref = nickName_;
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          nickName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+
+      public static final int TOKEN_FIELD_NUMBER = 6;
+      private volatile java.lang.Object token_;
+      /**
+       * <pre>
+       * 访问www使用
+       * </pre>
+       *
+       * <code>string Token = 6;</code>
+       * @return The token.
+       */
+      public java.lang.String getToken() {
+        java.lang.Object ref = token_;
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          token_ = s;
+          return s;
+        }
+      }
+      /**
+       * <pre>
+       * 访问www使用
+       * </pre>
+       *
+       * <code>string Token = 6;</code>
+       * @return The bytes for token.
+       */
+      public com.google.protobuf.ByteString
+          getTokenBytes() {
+        java.lang.Object ref = token_;
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          token_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+
+      private byte memoizedIsInitialized = -1;
+      @java.lang.Override
+      public final boolean isInitialized() {
+        byte isInitialized = memoizedIsInitialized;
+        if (isInitialized == 1) return true;
+        if (isInitialized == 0) return false;
+
+        memoizedIsInitialized = 1;
+        return true;
+      }
+
+      @java.lang.Override
+      public void writeTo(com.google.protobuf.CodedOutputStream output)
+                          throws java.io.IOException {
+        if (supplierId_ != 0L) {
+          output.writeInt64(1, supplierId_);
+        }
+        if (unionId_ != 0L) {
+          output.writeInt64(2, unionId_);
+        }
+        if (accountType_ != Im.Scrm.Ww.Proto.WTransport.EnumAccountType.UnknownAccountType.getNumber()) {
+          output.writeEnum(3, accountType_);
+        }
+        if (!getSupplierNameBytes().isEmpty()) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, supplierName_);
+        }
+        if (!getNickNameBytes().isEmpty()) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 5, nickName_);
+        }
+        if (!getTokenBytes().isEmpty()) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 6, token_);
+        }
+        unknownFields.writeTo(output);
+      }
+
+      @java.lang.Override
+      public int getSerializedSize() {
+        int size = memoizedSize;
+        if (size != -1) return size;
+
+        size = 0;
+        if (supplierId_ != 0L) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeInt64Size(1, supplierId_);
+        }
+        if (unionId_ != 0L) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeInt64Size(2, unionId_);
+        }
+        if (accountType_ != Im.Scrm.Ww.Proto.WTransport.EnumAccountType.UnknownAccountType.getNumber()) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeEnumSize(3, accountType_);
+        }
+        if (!getSupplierNameBytes().isEmpty()) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, supplierName_);
+        }
+        if (!getNickNameBytes().isEmpty()) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, nickName_);
+        }
+        if (!getTokenBytes().isEmpty()) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, token_);
+        }
+        size += unknownFields.getSerializedSize();
+        memoizedSize = size;
+        return size;
+      }
+
+      @java.lang.Override
+      public boolean equals(final java.lang.Object obj) {
+        if (obj == this) {
+         return true;
+        }
+        if (!(obj instanceof Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage)) {
+          return super.equals(obj);
+        }
+        Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage other = (Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage) obj;
+
+        if (getSupplierId()
+            != other.getSupplierId()) return false;
+        if (getUnionId()
+            != other.getUnionId()) return false;
+        if (accountType_ != other.accountType_) return false;
+        if (!getSupplierName()
+            .equals(other.getSupplierName())) return false;
+        if (!getNickName()
+            .equals(other.getNickName())) return false;
+        if (!getToken()
+            .equals(other.getToken())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
+        return true;
+      }
+
+      @java.lang.Override
+      public int hashCode() {
+        if (memoizedHashCode != 0) {
+          return memoizedHashCode;
+        }
+        int hash = 41;
+        hash = (19 * hash) + getDescriptor().hashCode();
+        hash = (37 * hash) + SUPPLIERID_FIELD_NUMBER;
+        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+            getSupplierId());
+        hash = (37 * hash) + UNIONID_FIELD_NUMBER;
+        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+            getUnionId());
+        hash = (37 * hash) + ACCOUNTTYPE_FIELD_NUMBER;
+        hash = (53 * hash) + accountType_;
+        hash = (37 * hash) + SUPPLIERNAME_FIELD_NUMBER;
+        hash = (53 * hash) + getSupplierName().hashCode();
+        hash = (37 * hash) + NICKNAME_FIELD_NUMBER;
+        hash = (53 * hash) + getNickName().hashCode();
+        hash = (37 * hash) + TOKEN_FIELD_NUMBER;
+        hash = (53 * hash) + getToken().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
+        memoizedHashCode = hash;
+        return hash;
+      }
+
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          java.nio.ByteBuffer data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          java.nio.ByteBuffer data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          com.google.protobuf.ByteString data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          com.google.protobuf.ByteString data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(byte[] data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          byte[] data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(java.io.InputStream input)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          java.io.InputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseDelimitedFrom(java.io.InputStream input)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseDelimitedWithIOException(PARSER, input);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseDelimitedFrom(
+          java.io.InputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          com.google.protobuf.CodedInputStream input)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input);
+      }
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parseFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input, extensionRegistry);
+      }
+
+      @java.lang.Override
+      public Builder newBuilderForType() { return newBuilder(); }
+      public static Builder newBuilder() {
+        return DEFAULT_INSTANCE.toBuilder();
+      }
+      public static Builder newBuilder(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage prototype) {
+        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+      }
+      @java.lang.Override
+      public Builder toBuilder() {
+        return this == DEFAULT_INSTANCE
+            ? new Builder() : new Builder().mergeFrom(this);
+      }
+
+      @java.lang.Override
+      protected Builder newBuilderForType(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        Builder builder = new Builder(parent);
+        return builder;
+      }
+      /**
+       * <pre>
+       * 扩展信息
+       * </pre>
+       *
+       * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage}
+       */
+      public static final class Builder extends
+          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+          // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage)
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder {
+        public static final com.google.protobuf.Descriptors.Descriptor
+            getDescriptor() {
+          return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_descriptor;
+        }
+
+        @java.lang.Override
+        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+            internalGetFieldAccessorTable() {
+          return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_fieldAccessorTable
+              .ensureFieldAccessorsInitialized(
+                  Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.class, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder.class);
+        }
+
+        // Construct using Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.newBuilder()
+        private Builder() {
+          maybeForceBuilderInitialization();
+        }
+
+        private Builder(
+            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+          super(parent);
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
+        }
+        @java.lang.Override
+        public Builder clear() {
+          super.clear();
+          supplierId_ = 0L;
+
+          unionId_ = 0L;
+
+          accountType_ = 0;
+
+          supplierName_ = "";
+
+          nickName_ = "";
+
+          token_ = "";
+
+          return this;
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.Descriptors.Descriptor
+            getDescriptorForType() {
+          return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_descriptor;
+        }
+
+        @java.lang.Override
+        public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage getDefaultInstanceForType() {
+          return Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.getDefaultInstance();
+        }
+
+        @java.lang.Override
+        public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage build() {
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage result = buildPartial();
+          if (!result.isInitialized()) {
+            throw newUninitializedMessageException(result);
+          }
+          return result;
+        }
+
+        @java.lang.Override
+        public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage buildPartial() {
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage result = new Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage(this);
+          result.supplierId_ = supplierId_;
+          result.unionId_ = unionId_;
+          result.accountType_ = accountType_;
+          result.supplierName_ = supplierName_;
+          result.nickName_ = nickName_;
+          result.token_ = token_;
+          onBuilt();
+          return result;
+        }
+
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
+        @java.lang.Override
+        public Builder mergeFrom(com.google.protobuf.Message other) {
+          if (other instanceof Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage) {
+            return mergeFrom((Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage)other);
+          } else {
+            super.mergeFrom(other);
+            return this;
+          }
+        }
+
+        public Builder mergeFrom(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage other) {
+          if (other == Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.getDefaultInstance()) return this;
+          if (other.getSupplierId() != 0L) {
+            setSupplierId(other.getSupplierId());
+          }
+          if (other.getUnionId() != 0L) {
+            setUnionId(other.getUnionId());
+          }
+          if (other.accountType_ != 0) {
+            setAccountTypeValue(other.getAccountTypeValue());
+          }
+          if (!other.getSupplierName().isEmpty()) {
+            supplierName_ = other.supplierName_;
+            onChanged();
+          }
+          if (!other.getNickName().isEmpty()) {
+            nickName_ = other.nickName_;
+            onChanged();
+          }
+          if (!other.getToken().isEmpty()) {
+            token_ = other.token_;
+            onChanged();
+          }
+          this.mergeUnknownFields(other.unknownFields);
+          onChanged();
+          return this;
+        }
+
+        @java.lang.Override
+        public final boolean isInitialized() {
+          return true;
+        }
+
+        @java.lang.Override
+        public Builder mergeFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage parsedMessage = null;
+          try {
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage) e.getUnfinishedMessage();
+            throw e.unwrapIOException();
+          } finally {
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
+          return this;
+        }
+
+        private long supplierId_ ;
+        /**
+         * <code>int64 SupplierId = 1;</code>
+         * @return The supplierId.
+         */
+        public long getSupplierId() {
+          return supplierId_;
+        }
+        /**
+         * <code>int64 SupplierId = 1;</code>
+         * @param value The supplierId to set.
+         * @return This builder for chaining.
+         */
+        public Builder setSupplierId(long value) {
+          
+          supplierId_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>int64 SupplierId = 1;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearSupplierId() {
+          
+          supplierId_ = 0L;
+          onChanged();
+          return this;
+        }
+
+        private long unionId_ ;
+        /**
+         * <code>int64 UnionId = 2;</code>
+         * @return The unionId.
+         */
+        public long getUnionId() {
+          return unionId_;
+        }
+        /**
+         * <code>int64 UnionId = 2;</code>
+         * @param value The unionId to set.
+         * @return This builder for chaining.
+         */
+        public Builder setUnionId(long value) {
+          
+          unionId_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>int64 UnionId = 2;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearUnionId() {
+          
+          unionId_ = 0L;
+          onChanged();
+          return this;
+        }
+
+        private int accountType_ = 0;
+        /**
+         * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+         * @return The enum numeric value on the wire for accountType.
+         */
+        public int getAccountTypeValue() {
+          return accountType_;
+        }
+        /**
+         * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+         * @param value The enum numeric value on the wire for accountType to set.
+         * @return This builder for chaining.
+         */
+        public Builder setAccountTypeValue(int value) {
+          accountType_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+         * @return The accountType.
+         */
+        public Im.Scrm.Ww.Proto.WTransport.EnumAccountType getAccountType() {
+          @SuppressWarnings("deprecation")
+          Im.Scrm.Ww.Proto.WTransport.EnumAccountType result = Im.Scrm.Ww.Proto.WTransport.EnumAccountType.valueOf(accountType_);
+          return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumAccountType.UNRECOGNIZED : result;
+        }
+        /**
+         * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+         * @param value The accountType to set.
+         * @return This builder for chaining.
+         */
+        public Builder setAccountType(Im.Scrm.Ww.Proto.WTransport.EnumAccountType value) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          
+          accountType_ = value.getNumber();
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>.Im.Scrm.Ww.Proto.EnumAccountType AccountType = 3;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearAccountType() {
+          
+          accountType_ = 0;
+          onChanged();
+          return this;
+        }
+
+        private java.lang.Object supplierName_ = "";
+        /**
+         * <code>string SupplierName = 4;</code>
+         * @return The supplierName.
+         */
+        public java.lang.String getSupplierName() {
+          java.lang.Object ref = supplierName_;
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs =
+                (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            supplierName_ = s;
+            return s;
+          } else {
+            return (java.lang.String) ref;
+          }
+        }
+        /**
+         * <code>string SupplierName = 4;</code>
+         * @return The bytes for supplierName.
+         */
+        public com.google.protobuf.ByteString
+            getSupplierNameBytes() {
+          java.lang.Object ref = supplierName_;
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b = 
+                com.google.protobuf.ByteString.copyFromUtf8(
+                    (java.lang.String) ref);
+            supplierName_ = b;
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
+          }
+        }
+        /**
+         * <code>string SupplierName = 4;</code>
+         * @param value The supplierName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setSupplierName(
+            java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  
+          supplierName_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string SupplierName = 4;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearSupplierName() {
+          
+          supplierName_ = getDefaultInstance().getSupplierName();
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string SupplierName = 4;</code>
+         * @param value The bytes for supplierName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setSupplierNameBytes(
+            com.google.protobuf.ByteString value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+          
+          supplierName_ = value;
+          onChanged();
+          return this;
+        }
+
+        private java.lang.Object nickName_ = "";
+        /**
+         * <code>string NickName = 5;</code>
+         * @return The nickName.
+         */
+        public java.lang.String getNickName() {
+          java.lang.Object ref = nickName_;
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs =
+                (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            nickName_ = s;
+            return s;
+          } else {
+            return (java.lang.String) ref;
+          }
+        }
+        /**
+         * <code>string NickName = 5;</code>
+         * @return The bytes for nickName.
+         */
+        public com.google.protobuf.ByteString
+            getNickNameBytes() {
+          java.lang.Object ref = nickName_;
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b = 
+                com.google.protobuf.ByteString.copyFromUtf8(
+                    (java.lang.String) ref);
+            nickName_ = b;
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
+          }
+        }
+        /**
+         * <code>string NickName = 5;</code>
+         * @param value The nickName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setNickName(
+            java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  
+          nickName_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string NickName = 5;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearNickName() {
+          
+          nickName_ = getDefaultInstance().getNickName();
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string NickName = 5;</code>
+         * @param value The bytes for nickName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setNickNameBytes(
+            com.google.protobuf.ByteString value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+          
+          nickName_ = value;
+          onChanged();
+          return this;
+        }
+
+        private java.lang.Object token_ = "";
+        /**
+         * <pre>
+         * 访问www使用
+         * </pre>
+         *
+         * <code>string Token = 6;</code>
+         * @return The token.
+         */
+        public java.lang.String getToken() {
+          java.lang.Object ref = token_;
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs =
+                (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            token_ = s;
+            return s;
+          } else {
+            return (java.lang.String) ref;
+          }
+        }
+        /**
+         * <pre>
+         * 访问www使用
+         * </pre>
+         *
+         * <code>string Token = 6;</code>
+         * @return The bytes for token.
+         */
+        public com.google.protobuf.ByteString
+            getTokenBytes() {
+          java.lang.Object ref = token_;
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b = 
+                com.google.protobuf.ByteString.copyFromUtf8(
+                    (java.lang.String) ref);
+            token_ = b;
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
+          }
+        }
+        /**
+         * <pre>
+         * 访问www使用
+         * </pre>
+         *
+         * <code>string Token = 6;</code>
+         * @param value The token to set.
+         * @return This builder for chaining.
+         */
+        public Builder setToken(
+            java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  
+          token_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <pre>
+         * 访问www使用
+         * </pre>
+         *
+         * <code>string Token = 6;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearToken() {
+          
+          token_ = getDefaultInstance().getToken();
+          onChanged();
+          return this;
+        }
+        /**
+         * <pre>
+         * 访问www使用
+         * </pre>
+         *
+         * <code>string Token = 6;</code>
+         * @param value The bytes for token to set.
+         * @return This builder for chaining.
+         */
+        public Builder setTokenBytes(
+            com.google.protobuf.ByteString value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+          
+          token_ = value;
+          onChanged();
+          return this;
+        }
+        @java.lang.Override
+        public final Builder setUnknownFields(
+            final com.google.protobuf.UnknownFieldSet unknownFields) {
+          return super.setUnknownFields(unknownFields);
+        }
+
+        @java.lang.Override
+        public final Builder mergeUnknownFields(
+            final com.google.protobuf.UnknownFieldSet unknownFields) {
+          return super.mergeUnknownFields(unknownFields);
+        }
+
+
+        // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage)
+      }
+
+      // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage)
+      private static final Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage DEFAULT_INSTANCE;
+      static {
+        DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage();
+      }
+
+      public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage getDefaultInstance() {
+        return DEFAULT_INSTANCE;
+      }
+
+      private static final com.google.protobuf.Parser<ExtraMessage>
+          PARSER = new com.google.protobuf.AbstractParser<ExtraMessage>() {
+        @java.lang.Override
+        public ExtraMessage parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new ExtraMessage(input, extensionRegistry);
+        }
+      };
+
+      public static com.google.protobuf.Parser<ExtraMessage> parser() {
+        return PARSER;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Parser<ExtraMessage> getParserForType() {
+        return PARSER;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage getDefaultInstanceForType() {
+        return DEFAULT_INSTANCE;
+      }
+
+    }
+
+    public static final int ACCESSTOKEN_FIELD_NUMBER = 1;
+    private volatile java.lang.Object accessToken_;
+    /**
+     * <pre>
+     *授权成功后颁发给客户端的accesstoken
+     * </pre>
+     *
+     * <code>string AccessToken = 1;</code>
+     * @return The accessToken.
+     */
+    public java.lang.String getAccessToken() {
+      java.lang.Object ref = accessToken_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        accessToken_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *授权成功后颁发给客户端的accesstoken
+     * </pre>
+     *
+     * <code>string AccessToken = 1;</code>
+     * @return The bytes for accessToken.
+     */
+    public com.google.protobuf.ByteString
+        getAccessTokenBytes() {
+      java.lang.Object ref = accessToken_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        accessToken_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int EXTRA_FIELD_NUMBER = 2;
+    private Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage extra_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+     * @return Whether the extra field is set.
+     */
+    public boolean hasExtra() {
+      return extra_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+     * @return The extra.
+     */
+    public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage getExtra() {
+      return extra_ == null ? Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.getDefaultInstance() : extra_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder getExtraOrBuilder() {
+      return getExtra();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getAccessTokenBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, accessToken_);
+      }
+      if (extra_ != null) {
+        output.writeMessage(2, getExtra());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getAccessTokenBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, accessToken_);
+      }
+      if (extra_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getExtra());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage other = (Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage) obj;
+
+      if (!getAccessToken()
+          .equals(other.getAccessToken())) return false;
+      if (hasExtra() != other.hasExtra()) return false;
+      if (hasExtra()) {
+        if (!getExtra()
+            .equals(other.getExtra())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ACCESSTOKEN_FIELD_NUMBER;
+      hash = (53 * hash) + getAccessToken().hashCode();
+      if (hasExtra()) {
+        hash = (37 * hash) + EXTRA_FIELD_NUMBER;
+        hash = (53 * hash) + getExtra().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAuthRspMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DeviceAuthRspMessage)
+        Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.class, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        accessToken_ = "";
+
+        if (extraBuilder_ == null) {
+          extra_ = null;
+        } else {
+          extra_ = null;
+          extraBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthRsp.internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage build() {
+        Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage result = new Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage(this);
+        result.accessToken_ = accessToken_;
+        if (extraBuilder_ == null) {
+          result.extra_ = extra_;
+        } else {
+          result.extra_ = extraBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.getDefaultInstance()) return this;
+        if (!other.getAccessToken().isEmpty()) {
+          accessToken_ = other.accessToken_;
+          onChanged();
+        }
+        if (other.hasExtra()) {
+          mergeExtra(other.getExtra());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object accessToken_ = "";
+      /**
+       * <pre>
+       *授权成功后颁发给客户端的accesstoken
+       * </pre>
+       *
+       * <code>string AccessToken = 1;</code>
+       * @return The accessToken.
+       */
+      public java.lang.String getAccessToken() {
+        java.lang.Object ref = accessToken_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          accessToken_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *授权成功后颁发给客户端的accesstoken
+       * </pre>
+       *
+       * <code>string AccessToken = 1;</code>
+       * @return The bytes for accessToken.
+       */
+      public com.google.protobuf.ByteString
+          getAccessTokenBytes() {
+        java.lang.Object ref = accessToken_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          accessToken_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *授权成功后颁发给客户端的accesstoken
+       * </pre>
+       *
+       * <code>string AccessToken = 1;</code>
+       * @param value The accessToken to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAccessToken(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        accessToken_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *授权成功后颁发给客户端的accesstoken
+       * </pre>
+       *
+       * <code>string AccessToken = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAccessToken() {
+        
+        accessToken_ = getDefaultInstance().getAccessToken();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *授权成功后颁发给客户端的accesstoken
+       * </pre>
+       *
+       * <code>string AccessToken = 1;</code>
+       * @param value The bytes for accessToken to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAccessTokenBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        accessToken_ = value;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage extra_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder> extraBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       * @return Whether the extra field is set.
+       */
+      public boolean hasExtra() {
+        return extraBuilder_ != null || extra_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       * @return The extra.
+       */
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage getExtra() {
+        if (extraBuilder_ == null) {
+          return extra_ == null ? Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.getDefaultInstance() : extra_;
+        } else {
+          return extraBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      public Builder setExtra(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage value) {
+        if (extraBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          extra_ = value;
+          onChanged();
+        } else {
+          extraBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      public Builder setExtra(
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder builderForValue) {
+        if (extraBuilder_ == null) {
+          extra_ = builderForValue.build();
+          onChanged();
+        } else {
+          extraBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      public Builder mergeExtra(Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage value) {
+        if (extraBuilder_ == null) {
+          if (extra_ != null) {
+            extra_ =
+              Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.newBuilder(extra_).mergeFrom(value).buildPartial();
+          } else {
+            extra_ = value;
+          }
+          onChanged();
+        } else {
+          extraBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      public Builder clearExtra() {
+        if (extraBuilder_ == null) {
+          extra_ = null;
+          onChanged();
+        } else {
+          extra_ = null;
+          extraBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder getExtraBuilder() {
+        
+        onChanged();
+        return getExtraFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder getExtraOrBuilder() {
+        if (extraBuilder_ != null) {
+          return extraBuilder_.getMessageOrBuilder();
+        } else {
+          return extra_ == null ?
+              Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.getDefaultInstance() : extra_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.DeviceAuthRspMessage.ExtraMessage Extra = 2;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder> 
+          getExtraFieldBuilder() {
+        if (extraBuilder_ == null) {
+          extraBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessage.Builder, Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage.ExtraMessageOrBuilder>(
+                  getExtra(),
+                  getParentForChildren(),
+                  isClean());
+          extra_ = null;
+        }
+        return extraBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DeviceAuthRspMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DeviceAuthRspMessage)
+    private static final Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DeviceAuthRspMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DeviceAuthRspMessage>() {
+      @java.lang.Override
+      public DeviceAuthRspMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DeviceAuthRspMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DeviceAuthRspMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DeviceAuthRspMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDeviceAuthRsp.DeviceAuthRspMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\024WDeviceAuthRsp.proto\022\020Im.Scrm.Ww.Proto" +
+      "\032\020WTransport.proto\"\224\002\n\024DeviceAuthRspMess" +
+      "age\022\023\n\013AccessToken\030\001 \001(\t\022B\n\005Extra\030\002 \001(\0132" +
+      "3.Im.Scrm.Ww.Proto.DeviceAuthRspMessage." +
+      "ExtraMessage\032\242\001\n\014ExtraMessage\022\022\n\nSupplie" +
+      "rId\030\001 \001(\003\022\017\n\007UnionId\030\002 \001(\003\0226\n\013AccountTyp" +
+      "e\030\003 \001(\0162!.Im.Scrm.Ww.Proto.EnumAccountTy" +
+      "pe\022\024\n\014SupplierName\030\004 \001(\t\022\020\n\010NickName\030\005 \001" +
+      "(\t\022\r\n\005Token\030\006 \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor,
+        new java.lang.String[] { "AccessToken", "Extra", });
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_descriptor =
+      internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_descriptor.getNestedTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DeviceAuthRspMessage_ExtraMessage_descriptor,
+        new java.lang.String[] { "SupplierId", "UnionId", "AccountType", "SupplierName", "NickName", "Token", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 951 - 0
src/main/java/Im/Scrm/Ww/Proto/WDownloadFileByMsgIdTask.java

@@ -0,0 +1,951 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDownloadFileByMsgIdTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDownloadFileByMsgIdTask {
+  private WDownloadFileByMsgIdTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DownloadFileByMsgIdTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>int64 MsgId = 2;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 3;</code>
+     * @return The msgRemoteId.
+     */
+    long getMsgRemoteId();
+
+    /**
+     * <pre>
+     * 下载文件的类型 0 原始文件(原图,视频,音频,文件)
+     * </pre>
+     *
+     * <code>int32 FileType = 4;</code>
+     * @return The fileType.
+     */
+    int getFileType();
+
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 重新上传文件
+     * </pre>
+     *
+     * <code>bool ReSend = 6;</code>
+     * @return The reSend.
+     */
+    boolean getReSend();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage}
+   */
+  public  static final class DownloadFileByMsgIdTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage)
+      DownloadFileByMsgIdTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DownloadFileByMsgIdTaskMessage.newBuilder() to construct.
+    private DownloadFileByMsgIdTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DownloadFileByMsgIdTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DownloadFileByMsgIdTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DownloadFileByMsgIdTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              msgRemoteId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              fileType_ = input.readInt32();
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              reSend_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.class, Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 2;
+    private long msgId_;
+    /**
+     * <code>int64 MsgId = 2;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int MSGREMOTEID_FIELD_NUMBER = 3;
+    private long msgRemoteId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 3;</code>
+     * @return The msgRemoteId.
+     */
+    public long getMsgRemoteId() {
+      return msgRemoteId_;
+    }
+
+    public static final int FILETYPE_FIELD_NUMBER = 4;
+    private int fileType_;
+    /**
+     * <pre>
+     * 下载文件的类型 0 原始文件(原图,视频,音频,文件)
+     * </pre>
+     *
+     * <code>int32 FileType = 4;</code>
+     * @return The fileType.
+     */
+    public int getFileType() {
+      return fileType_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int RESEND_FIELD_NUMBER = 6;
+    private boolean reSend_;
+    /**
+     * <pre>
+     * 重新上传文件
+     * </pre>
+     *
+     * <code>bool ReSend = 6;</code>
+     * @return The reSend.
+     */
+    public boolean getReSend() {
+      return reSend_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(2, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        output.writeInt64(3, msgRemoteId_);
+      }
+      if (fileType_ != 0) {
+        output.writeInt32(4, fileType_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      if (reSend_ != false) {
+        output.writeBool(6, reSend_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, msgRemoteId_);
+      }
+      if (fileType_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, fileType_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      if (reSend_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(6, reSend_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage other = (Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getMsgRemoteId()
+          != other.getMsgRemoteId()) return false;
+      if (getFileType()
+          != other.getFileType()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getReSend()
+          != other.getReSend()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + MSGREMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgRemoteId());
+      hash = (37 * hash) + FILETYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getFileType();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + RESEND_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getReSend());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage)
+        Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.class, Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        msgId_ = 0L;
+
+        msgRemoteId_ = 0L;
+
+        fileType_ = 0;
+
+        taskId_ = 0L;
+
+        reSend_ = false;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage build() {
+        Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage result = new Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.msgId_ = msgId_;
+        result.msgRemoteId_ = msgRemoteId_;
+        result.fileType_ = fileType_;
+        result.taskId_ = taskId_;
+        result.reSend_ = reSend_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getMsgRemoteId() != 0L) {
+          setMsgRemoteId(other.getMsgRemoteId());
+        }
+        if (other.getFileType() != 0) {
+          setFileType(other.getFileType());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getReSend() != false) {
+          setReSend(other.getReSend());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <code>int64 MsgId = 2;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <code>int64 MsgId = 2;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 MsgId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgRemoteId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 3;</code>
+       * @return The msgRemoteId.
+       */
+      public long getMsgRemoteId() {
+        return msgRemoteId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 3;</code>
+       * @param value The msgRemoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgRemoteId(long value) {
+        
+        msgRemoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgRemoteId() {
+        
+        msgRemoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int fileType_ ;
+      /**
+       * <pre>
+       * 下载文件的类型 0 原始文件(原图,视频,音频,文件)
+       * </pre>
+       *
+       * <code>int32 FileType = 4;</code>
+       * @return The fileType.
+       */
+      public int getFileType() {
+        return fileType_;
+      }
+      /**
+       * <pre>
+       * 下载文件的类型 0 原始文件(原图,视频,音频,文件)
+       * </pre>
+       *
+       * <code>int32 FileType = 4;</code>
+       * @param value The fileType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFileType(int value) {
+        
+        fileType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 下载文件的类型 0 原始文件(原图,视频,音频,文件)
+       * </pre>
+       *
+       * <code>int32 FileType = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFileType() {
+        
+        fileType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean reSend_ ;
+      /**
+       * <pre>
+       * 重新上传文件
+       * </pre>
+       *
+       * <code>bool ReSend = 6;</code>
+       * @return The reSend.
+       */
+      public boolean getReSend() {
+        return reSend_;
+      }
+      /**
+       * <pre>
+       * 重新上传文件
+       * </pre>
+       *
+       * <code>bool ReSend = 6;</code>
+       * @param value The reSend to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReSend(boolean value) {
+        
+        reSend_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 重新上传文件
+       * </pre>
+       *
+       * <code>bool ReSend = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReSend() {
+        
+        reSend_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DownloadFileByMsgIdTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DownloadFileByMsgIdTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DownloadFileByMsgIdTaskMessage>() {
+      @java.lang.Override
+      public DownloadFileByMsgIdTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DownloadFileByMsgIdTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DownloadFileByMsgIdTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DownloadFileByMsgIdTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDownloadFileByMsgIdTask.DownloadFileByMsgIdTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\036WDownloadFileByMsgIdTask.proto\022\020Im.Scr" +
+      "m.Ww.Proto\"\204\001\n\036DownloadFileByMsgIdTaskMe" +
+      "ssage\022\014\n\004WxId\030\001 \001(\003\022\r\n\005MsgId\030\002 \001(\003\022\023\n\013Ms" +
+      "gRemoteId\030\003 \001(\003\022\020\n\010FileType\030\004 \001(\005\022\016\n\006Tas" +
+      "kId\030\005 \001(\003\022\016\n\006ReSend\030\006 \001(\010b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DownloadFileByMsgIdTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "MsgId", "MsgRemoteId", "FileType", "TaskId", "ReSend", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1614 - 0
src/main/java/Im/Scrm/Ww/Proto/WDownloadFileByUrlTask.java

@@ -0,0 +1,1614 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDownloadFileByUrlTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDownloadFileByUrlTask {
+  private WDownloadFileByUrlTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DownloadFileByUrlTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * url或FileId
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The url.
+     */
+    java.lang.String getUrl();
+    /**
+     * <pre>
+     * url或FileId
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The bytes for url.
+     */
+    com.google.protobuf.ByteString
+        getUrlBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string AesKey = 3;</code>
+     * @return The aesKey.
+     */
+    java.lang.String getAesKey();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string AesKey = 3;</code>
+     * @return The bytes for aesKey.
+     */
+    com.google.protobuf.ByteString
+        getAesKeyBytes();
+
+    /**
+     * <pre>
+     * 微信CDN AuthKey
+     * </pre>
+     *
+     * <code>string AuthKey = 4;</code>
+     * @return The authKey.
+     */
+    java.lang.String getAuthKey();
+    /**
+     * <pre>
+     * 微信CDN AuthKey
+     * </pre>
+     *
+     * <code>string AuthKey = 4;</code>
+     * @return The bytes for authKey.
+     */
+    com.google.protobuf.ByteString
+        getAuthKeyBytes();
+
+    /**
+     * <pre>
+     * 文件名(一般文件消息才有)
+     * </pre>
+     *
+     * <code>string FileName = 5;</code>
+     * @return The fileName.
+     */
+    java.lang.String getFileName();
+    /**
+     * <pre>
+     * 文件名(一般文件消息才有)
+     * </pre>
+     *
+     * <code>string FileName = 5;</code>
+     * @return The bytes for fileName.
+     */
+    com.google.protobuf.ByteString
+        getFileNameBytes();
+
+    /**
+     * <pre>
+     * 消息类型
+     * </pre>
+     *
+     * <code>int32 MsgType = 6;</code>
+     * @return The msgType.
+     */
+    int getMsgType();
+
+    /**
+     * <pre>
+     * 下载文件的类型 0 原始文件(原图,视频,音频,文件) 1 大图, 2 缩率图(预览图)
+     * </pre>
+     *
+     * <code>int32 FileType = 7;</code>
+     * @return The fileType.
+     */
+    int getFileType();
+
+    /**
+     * <code>int64 TaskId = 8;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 重新上传文件
+     * </pre>
+     *
+     * <code>bool ReSend = 9;</code>
+     * @return The reSend.
+     */
+    boolean getReSend();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage}
+   */
+  public  static final class DownloadFileByUrlTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage)
+      DownloadFileByUrlTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DownloadFileByUrlTaskMessage.newBuilder() to construct.
+    private DownloadFileByUrlTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DownloadFileByUrlTaskMessage() {
+      url_ = "";
+      aesKey_ = "";
+      authKey_ = "";
+      fileName_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DownloadFileByUrlTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DownloadFileByUrlTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              url_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              aesKey_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              authKey_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              fileName_ = s;
+              break;
+            }
+            case 48: {
+
+              msgType_ = input.readInt32();
+              break;
+            }
+            case 56: {
+
+              fileType_ = input.readInt32();
+              break;
+            }
+            case 64: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              reSend_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.class, Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int URL_FIELD_NUMBER = 2;
+    private volatile java.lang.Object url_;
+    /**
+     * <pre>
+     * url或FileId
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The url.
+     */
+    public java.lang.String getUrl() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        url_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * url或FileId
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The bytes for url.
+     */
+    public com.google.protobuf.ByteString
+        getUrlBytes() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        url_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AESKEY_FIELD_NUMBER = 3;
+    private volatile java.lang.Object aesKey_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string AesKey = 3;</code>
+     * @return The aesKey.
+     */
+    public java.lang.String getAesKey() {
+      java.lang.Object ref = aesKey_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        aesKey_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string AesKey = 3;</code>
+     * @return The bytes for aesKey.
+     */
+    public com.google.protobuf.ByteString
+        getAesKeyBytes() {
+      java.lang.Object ref = aesKey_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        aesKey_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AUTHKEY_FIELD_NUMBER = 4;
+    private volatile java.lang.Object authKey_;
+    /**
+     * <pre>
+     * 微信CDN AuthKey
+     * </pre>
+     *
+     * <code>string AuthKey = 4;</code>
+     * @return The authKey.
+     */
+    public java.lang.String getAuthKey() {
+      java.lang.Object ref = authKey_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        authKey_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 微信CDN AuthKey
+     * </pre>
+     *
+     * <code>string AuthKey = 4;</code>
+     * @return The bytes for authKey.
+     */
+    public com.google.protobuf.ByteString
+        getAuthKeyBytes() {
+      java.lang.Object ref = authKey_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        authKey_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int FILENAME_FIELD_NUMBER = 5;
+    private volatile java.lang.Object fileName_;
+    /**
+     * <pre>
+     * 文件名(一般文件消息才有)
+     * </pre>
+     *
+     * <code>string FileName = 5;</code>
+     * @return The fileName.
+     */
+    public java.lang.String getFileName() {
+      java.lang.Object ref = fileName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        fileName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 文件名(一般文件消息才有)
+     * </pre>
+     *
+     * <code>string FileName = 5;</code>
+     * @return The bytes for fileName.
+     */
+    public com.google.protobuf.ByteString
+        getFileNameBytes() {
+      java.lang.Object ref = fileName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        fileName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MSGTYPE_FIELD_NUMBER = 6;
+    private int msgType_;
+    /**
+     * <pre>
+     * 消息类型
+     * </pre>
+     *
+     * <code>int32 MsgType = 6;</code>
+     * @return The msgType.
+     */
+    public int getMsgType() {
+      return msgType_;
+    }
+
+    public static final int FILETYPE_FIELD_NUMBER = 7;
+    private int fileType_;
+    /**
+     * <pre>
+     * 下载文件的类型 0 原始文件(原图,视频,音频,文件) 1 大图, 2 缩率图(预览图)
+     * </pre>
+     *
+     * <code>int32 FileType = 7;</code>
+     * @return The fileType.
+     */
+    public int getFileType() {
+      return fileType_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 8;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 8;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int RESEND_FIELD_NUMBER = 9;
+    private boolean reSend_;
+    /**
+     * <pre>
+     * 重新上传文件
+     * </pre>
+     *
+     * <code>bool ReSend = 9;</code>
+     * @return The reSend.
+     */
+    public boolean getReSend() {
+      return reSend_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_);
+      }
+      if (!getAesKeyBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, aesKey_);
+      }
+      if (!getAuthKeyBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, authKey_);
+      }
+      if (!getFileNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, fileName_);
+      }
+      if (msgType_ != 0) {
+        output.writeInt32(6, msgType_);
+      }
+      if (fileType_ != 0) {
+        output.writeInt32(7, fileType_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(8, taskId_);
+      }
+      if (reSend_ != false) {
+        output.writeBool(9, reSend_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_);
+      }
+      if (!getAesKeyBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, aesKey_);
+      }
+      if (!getAuthKeyBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, authKey_);
+      }
+      if (!getFileNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, fileName_);
+      }
+      if (msgType_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(6, msgType_);
+      }
+      if (fileType_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(7, fileType_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, taskId_);
+      }
+      if (reSend_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(9, reSend_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage other = (Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getUrl()
+          .equals(other.getUrl())) return false;
+      if (!getAesKey()
+          .equals(other.getAesKey())) return false;
+      if (!getAuthKey()
+          .equals(other.getAuthKey())) return false;
+      if (!getFileName()
+          .equals(other.getFileName())) return false;
+      if (getMsgType()
+          != other.getMsgType()) return false;
+      if (getFileType()
+          != other.getFileType()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getReSend()
+          != other.getReSend()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + URL_FIELD_NUMBER;
+      hash = (53 * hash) + getUrl().hashCode();
+      hash = (37 * hash) + AESKEY_FIELD_NUMBER;
+      hash = (53 * hash) + getAesKey().hashCode();
+      hash = (37 * hash) + AUTHKEY_FIELD_NUMBER;
+      hash = (53 * hash) + getAuthKey().hashCode();
+      hash = (37 * hash) + FILENAME_FIELD_NUMBER;
+      hash = (53 * hash) + getFileName().hashCode();
+      hash = (37 * hash) + MSGTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getMsgType();
+      hash = (37 * hash) + FILETYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getFileType();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + RESEND_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getReSend());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage)
+        Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.class, Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        url_ = "";
+
+        aesKey_ = "";
+
+        authKey_ = "";
+
+        fileName_ = "";
+
+        msgType_ = 0;
+
+        fileType_ = 0;
+
+        taskId_ = 0L;
+
+        reSend_ = false;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage build() {
+        Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage result = new Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.url_ = url_;
+        result.aesKey_ = aesKey_;
+        result.authKey_ = authKey_;
+        result.fileName_ = fileName_;
+        result.msgType_ = msgType_;
+        result.fileType_ = fileType_;
+        result.taskId_ = taskId_;
+        result.reSend_ = reSend_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getUrl().isEmpty()) {
+          url_ = other.url_;
+          onChanged();
+        }
+        if (!other.getAesKey().isEmpty()) {
+          aesKey_ = other.aesKey_;
+          onChanged();
+        }
+        if (!other.getAuthKey().isEmpty()) {
+          authKey_ = other.authKey_;
+          onChanged();
+        }
+        if (!other.getFileName().isEmpty()) {
+          fileName_ = other.fileName_;
+          onChanged();
+        }
+        if (other.getMsgType() != 0) {
+          setMsgType(other.getMsgType());
+        }
+        if (other.getFileType() != 0) {
+          setFileType(other.getFileType());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getReSend() != false) {
+          setReSend(other.getReSend());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object url_ = "";
+      /**
+       * <pre>
+       * url或FileId
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @return The url.
+       */
+      public java.lang.String getUrl() {
+        java.lang.Object ref = url_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          url_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * url或FileId
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @return The bytes for url.
+       */
+      public com.google.protobuf.ByteString
+          getUrlBytes() {
+        java.lang.Object ref = url_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          url_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * url或FileId
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @param value The url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        url_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * url或FileId
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUrl() {
+        
+        url_ = getDefaultInstance().getUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * url或FileId
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @param value The bytes for url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        url_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object aesKey_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string AesKey = 3;</code>
+       * @return The aesKey.
+       */
+      public java.lang.String getAesKey() {
+        java.lang.Object ref = aesKey_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          aesKey_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string AesKey = 3;</code>
+       * @return The bytes for aesKey.
+       */
+      public com.google.protobuf.ByteString
+          getAesKeyBytes() {
+        java.lang.Object ref = aesKey_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          aesKey_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string AesKey = 3;</code>
+       * @param value The aesKey to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAesKey(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        aesKey_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string AesKey = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAesKey() {
+        
+        aesKey_ = getDefaultInstance().getAesKey();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string AesKey = 3;</code>
+       * @param value The bytes for aesKey to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAesKeyBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        aesKey_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object authKey_ = "";
+      /**
+       * <pre>
+       * 微信CDN AuthKey
+       * </pre>
+       *
+       * <code>string AuthKey = 4;</code>
+       * @return The authKey.
+       */
+      public java.lang.String getAuthKey() {
+        java.lang.Object ref = authKey_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          authKey_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 微信CDN AuthKey
+       * </pre>
+       *
+       * <code>string AuthKey = 4;</code>
+       * @return The bytes for authKey.
+       */
+      public com.google.protobuf.ByteString
+          getAuthKeyBytes() {
+        java.lang.Object ref = authKey_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          authKey_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 微信CDN AuthKey
+       * </pre>
+       *
+       * <code>string AuthKey = 4;</code>
+       * @param value The authKey to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAuthKey(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        authKey_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信CDN AuthKey
+       * </pre>
+       *
+       * <code>string AuthKey = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAuthKey() {
+        
+        authKey_ = getDefaultInstance().getAuthKey();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信CDN AuthKey
+       * </pre>
+       *
+       * <code>string AuthKey = 4;</code>
+       * @param value The bytes for authKey to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAuthKeyBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        authKey_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object fileName_ = "";
+      /**
+       * <pre>
+       * 文件名(一般文件消息才有)
+       * </pre>
+       *
+       * <code>string FileName = 5;</code>
+       * @return The fileName.
+       */
+      public java.lang.String getFileName() {
+        java.lang.Object ref = fileName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          fileName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 文件名(一般文件消息才有)
+       * </pre>
+       *
+       * <code>string FileName = 5;</code>
+       * @return The bytes for fileName.
+       */
+      public com.google.protobuf.ByteString
+          getFileNameBytes() {
+        java.lang.Object ref = fileName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          fileName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 文件名(一般文件消息才有)
+       * </pre>
+       *
+       * <code>string FileName = 5;</code>
+       * @param value The fileName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFileName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        fileName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 文件名(一般文件消息才有)
+       * </pre>
+       *
+       * <code>string FileName = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFileName() {
+        
+        fileName_ = getDefaultInstance().getFileName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 文件名(一般文件消息才有)
+       * </pre>
+       *
+       * <code>string FileName = 5;</code>
+       * @param value The bytes for fileName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFileNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        fileName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int msgType_ ;
+      /**
+       * <pre>
+       * 消息类型
+       * </pre>
+       *
+       * <code>int32 MsgType = 6;</code>
+       * @return The msgType.
+       */
+      public int getMsgType() {
+        return msgType_;
+      }
+      /**
+       * <pre>
+       * 消息类型
+       * </pre>
+       *
+       * <code>int32 MsgType = 6;</code>
+       * @param value The msgType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgType(int value) {
+        
+        msgType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息类型
+       * </pre>
+       *
+       * <code>int32 MsgType = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgType() {
+        
+        msgType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int fileType_ ;
+      /**
+       * <pre>
+       * 下载文件的类型 0 原始文件(原图,视频,音频,文件) 1 大图, 2 缩率图(预览图)
+       * </pre>
+       *
+       * <code>int32 FileType = 7;</code>
+       * @return The fileType.
+       */
+      public int getFileType() {
+        return fileType_;
+      }
+      /**
+       * <pre>
+       * 下载文件的类型 0 原始文件(原图,视频,音频,文件) 1 大图, 2 缩率图(预览图)
+       * </pre>
+       *
+       * <code>int32 FileType = 7;</code>
+       * @param value The fileType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFileType(int value) {
+        
+        fileType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 下载文件的类型 0 原始文件(原图,视频,音频,文件) 1 大图, 2 缩率图(预览图)
+       * </pre>
+       *
+       * <code>int32 FileType = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFileType() {
+        
+        fileType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 8;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 8;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean reSend_ ;
+      /**
+       * <pre>
+       * 重新上传文件
+       * </pre>
+       *
+       * <code>bool ReSend = 9;</code>
+       * @return The reSend.
+       */
+      public boolean getReSend() {
+        return reSend_;
+      }
+      /**
+       * <pre>
+       * 重新上传文件
+       * </pre>
+       *
+       * <code>bool ReSend = 9;</code>
+       * @param value The reSend to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReSend(boolean value) {
+        
+        reSend_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 重新上传文件
+       * </pre>
+       *
+       * <code>bool ReSend = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReSend() {
+        
+        reSend_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DownloadFileByUrlTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DownloadFileByUrlTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DownloadFileByUrlTaskMessage>() {
+      @java.lang.Override
+      public DownloadFileByUrlTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DownloadFileByUrlTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DownloadFileByUrlTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DownloadFileByUrlTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDownloadFileByUrlTask.DownloadFileByUrlTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WDownloadFileByUrlTask.proto\022\020Im.Scrm." +
+      "Ww.Proto\"\257\001\n\034DownloadFileByUrlTaskMessag" +
+      "e\022\014\n\004WxId\030\001 \001(\003\022\013\n\003Url\030\002 \001(\t\022\016\n\006AesKey\030\003" +
+      " \001(\t\022\017\n\007AuthKey\030\004 \001(\t\022\020\n\010FileName\030\005 \001(\t\022" +
+      "\017\n\007MsgType\030\006 \001(\005\022\020\n\010FileType\030\007 \001(\005\022\016\n\006Ta" +
+      "skId\030\010 \001(\003\022\016\n\006ReSend\030\t \001(\010b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DownloadFileByUrlTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Url", "AesKey", "AuthKey", "FileName", "MsgType", "FileType", "TaskId", "ReSend", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1458 - 0
src/main/java/Im/Scrm/Ww/Proto/WDownloadFileResultNotice.java

@@ -0,0 +1,1458 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WDownloadFileResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WDownloadFileResultNotice {
+  private WDownloadFileResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DownloadFileResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <pre>
+     * 原始URL
+     * </pre>
+     *
+     * <code>string OrgUrl = 4;</code>
+     * @return The orgUrl.
+     */
+    java.lang.String getOrgUrl();
+    /**
+     * <pre>
+     * 原始URL
+     * </pre>
+     *
+     * <code>string OrgUrl = 4;</code>
+     * @return The bytes for orgUrl.
+     */
+    com.google.protobuf.ByteString
+        getOrgUrlBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The url.
+     */
+    java.lang.String getUrl();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The bytes for url.
+     */
+    com.google.protobuf.ByteString
+        getUrlBytes();
+
+    /**
+     * <pre>
+     * 文件类型;1 大图  4 语音 5 视频 6 文件
+     * </pre>
+     *
+     * <code>int32 FileType = 6;</code>
+     * @return The fileType.
+     */
+    int getFileType();
+
+    /**
+     * <pre>
+     * 业务的id,通用的。
+     * </pre>
+     *
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgId = 8;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage}
+   */
+  public  static final class DownloadFileResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage)
+      DownloadFileResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DownloadFileResultNoticeMessage.newBuilder() to construct.
+    private DownloadFileResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DownloadFileResultNoticeMessage() {
+      errMsg_ = "";
+      orgUrl_ = "";
+      url_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DownloadFileResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DownloadFileResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              orgUrl_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              url_ = s;
+              break;
+            }
+            case 48: {
+
+              fileType_ = input.readInt32();
+              break;
+            }
+            case 56: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 64: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WDownloadFileResultNotice.internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WDownloadFileResultNotice.internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.class, Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ORGURL_FIELD_NUMBER = 4;
+    private volatile java.lang.Object orgUrl_;
+    /**
+     * <pre>
+     * 原始URL
+     * </pre>
+     *
+     * <code>string OrgUrl = 4;</code>
+     * @return The orgUrl.
+     */
+    public java.lang.String getOrgUrl() {
+      java.lang.Object ref = orgUrl_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        orgUrl_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 原始URL
+     * </pre>
+     *
+     * <code>string OrgUrl = 4;</code>
+     * @return The bytes for orgUrl.
+     */
+    public com.google.protobuf.ByteString
+        getOrgUrlBytes() {
+      java.lang.Object ref = orgUrl_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        orgUrl_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int URL_FIELD_NUMBER = 5;
+    private volatile java.lang.Object url_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The url.
+     */
+    public java.lang.String getUrl() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        url_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The bytes for url.
+     */
+    public com.google.protobuf.ByteString
+        getUrlBytes() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        url_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int FILETYPE_FIELD_NUMBER = 6;
+    private int fileType_;
+    /**
+     * <pre>
+     * 文件类型;1 大图  4 语音 5 视频 6 文件
+     * </pre>
+     *
+     * <code>int32 FileType = 6;</code>
+     * @return The fileType.
+     */
+    public int getFileType() {
+      return fileType_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 7;
+    private long taskId_;
+    /**
+     * <pre>
+     * 业务的id,通用的。
+     * </pre>
+     *
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 8;
+    private long msgId_;
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgId = 8;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (!getOrgUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, orgUrl_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, url_);
+      }
+      if (fileType_ != 0) {
+        output.writeInt32(6, fileType_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(7, taskId_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(8, msgId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (!getOrgUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, orgUrl_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, url_);
+      }
+      if (fileType_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(6, fileType_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, taskId_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, msgId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage other = (Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getOrgUrl()
+          .equals(other.getOrgUrl())) return false;
+      if (!getUrl()
+          .equals(other.getUrl())) return false;
+      if (getFileType()
+          != other.getFileType()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + ORGURL_FIELD_NUMBER;
+      hash = (53 * hash) + getOrgUrl().hashCode();
+      hash = (37 * hash) + URL_FIELD_NUMBER;
+      hash = (53 * hash) + getUrl().hashCode();
+      hash = (37 * hash) + FILETYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getFileType();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WDownloadFileResultNotice.internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WDownloadFileResultNotice.internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.class, Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        orgUrl_ = "";
+
+        url_ = "";
+
+        fileType_ = 0;
+
+        taskId_ = 0L;
+
+        msgId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WDownloadFileResultNotice.internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage result = new Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        result.orgUrl_ = orgUrl_;
+        result.url_ = url_;
+        result.fileType_ = fileType_;
+        result.taskId_ = taskId_;
+        result.msgId_ = msgId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (!other.getOrgUrl().isEmpty()) {
+          orgUrl_ = other.orgUrl_;
+          onChanged();
+        }
+        if (!other.getUrl().isEmpty()) {
+          url_ = other.url_;
+          onChanged();
+        }
+        if (other.getFileType() != 0) {
+          setFileType(other.getFileType());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object orgUrl_ = "";
+      /**
+       * <pre>
+       * 原始URL
+       * </pre>
+       *
+       * <code>string OrgUrl = 4;</code>
+       * @return The orgUrl.
+       */
+      public java.lang.String getOrgUrl() {
+        java.lang.Object ref = orgUrl_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          orgUrl_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 原始URL
+       * </pre>
+       *
+       * <code>string OrgUrl = 4;</code>
+       * @return The bytes for orgUrl.
+       */
+      public com.google.protobuf.ByteString
+          getOrgUrlBytes() {
+        java.lang.Object ref = orgUrl_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          orgUrl_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 原始URL
+       * </pre>
+       *
+       * <code>string OrgUrl = 4;</code>
+       * @param value The orgUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        orgUrl_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 原始URL
+       * </pre>
+       *
+       * <code>string OrgUrl = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOrgUrl() {
+        
+        orgUrl_ = getDefaultInstance().getOrgUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 原始URL
+       * </pre>
+       *
+       * <code>string OrgUrl = 4;</code>
+       * @param value The bytes for orgUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOrgUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        orgUrl_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object url_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @return The url.
+       */
+      public java.lang.String getUrl() {
+        java.lang.Object ref = url_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          url_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @return The bytes for url.
+       */
+      public com.google.protobuf.ByteString
+          getUrlBytes() {
+        java.lang.Object ref = url_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          url_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @param value The url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        url_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUrl() {
+        
+        url_ = getDefaultInstance().getUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @param value The bytes for url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        url_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int fileType_ ;
+      /**
+       * <pre>
+       * 文件类型;1 大图  4 语音 5 视频 6 文件
+       * </pre>
+       *
+       * <code>int32 FileType = 6;</code>
+       * @return The fileType.
+       */
+      public int getFileType() {
+        return fileType_;
+      }
+      /**
+       * <pre>
+       * 文件类型;1 大图  4 语音 5 视频 6 文件
+       * </pre>
+       *
+       * <code>int32 FileType = 6;</code>
+       * @param value The fileType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFileType(int value) {
+        
+        fileType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 文件类型;1 大图  4 语音 5 视频 6 文件
+       * </pre>
+       *
+       * <code>int32 FileType = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFileType() {
+        
+        fileType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 7;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 7;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgId = 8;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgId = 8;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DownloadFileResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DownloadFileResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DownloadFileResultNoticeMessage>() {
+      @java.lang.Override
+      public DownloadFileResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DownloadFileResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DownloadFileResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DownloadFileResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WDownloadFileResultNotice.DownloadFileResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\037WDownloadFileResultNotice.proto\022\020Im.Sc" +
+      "rm.Ww.Proto\032\020WTransport.proto\"\236\001\n\037Downlo" +
+      "adFileResultNoticeMessage\022\014\n\004WxId\030\001 \001(\003\022" +
+      "\017\n\007Success\030\002 \001(\010\022\016\n\006ErrMsg\030\003 \001(\t\022\016\n\006OrgU" +
+      "rl\030\004 \001(\t\022\013\n\003Url\030\005 \001(\t\022\020\n\010FileType\030\006 \001(\005\022" +
+      "\016\n\006TaskId\030\007 \001(\003\022\r\n\005MsgId\030\010 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DownloadFileResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "OrgUrl", "Url", "FileType", "TaskId", "MsgId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 794 - 0
src/main/java/Im/Scrm/Ww/Proto/WErrorNotice.java

@@ -0,0 +1,794 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WErrorNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WErrorNotice {
+  private WErrorNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ErrorMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ErrorMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *错误码(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+     * @return The enum numeric value on the wire for errorCode.
+     */
+    int getErrorCodeValue();
+    /**
+     * <pre>
+     *错误码(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+     * @return The errorCode.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getErrorCode();
+
+    /**
+     * <pre>
+     *错误信息(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>string ErrorMsg = 2;</code>
+     * @return The errorMsg.
+     */
+    java.lang.String getErrorMsg();
+    /**
+     * <pre>
+     *错误信息(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>string ErrorMsg = 2;</code>
+     * @return The bytes for errorMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrorMsgBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ErrorMessage}
+   */
+  public  static final class ErrorMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ErrorMessage)
+      ErrorMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ErrorMessage.newBuilder() to construct.
+    private ErrorMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ErrorMessage() {
+      errorCode_ = 0;
+      errorMsg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ErrorMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ErrorMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              int rawValue = input.readEnum();
+
+              errorCode_ = rawValue;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errorMsg_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WErrorNotice.internal_static_Im_Scrm_Ww_Proto_ErrorMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WErrorNotice.internal_static_Im_Scrm_Ww_Proto_ErrorMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.class, Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.Builder.class);
+    }
+
+    public static final int ERRORCODE_FIELD_NUMBER = 1;
+    private int errorCode_;
+    /**
+     * <pre>
+     *错误码(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+     * @return The enum numeric value on the wire for errorCode.
+     */
+    public int getErrorCodeValue() {
+      return errorCode_;
+    }
+    /**
+     * <pre>
+     *错误码(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+     * @return The errorCode.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getErrorCode() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumErrorCode result = Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.valueOf(errorCode_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.UNRECOGNIZED : result;
+    }
+
+    public static final int ERRORMSG_FIELD_NUMBER = 2;
+    private volatile java.lang.Object errorMsg_;
+    /**
+     * <pre>
+     *错误信息(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>string ErrorMsg = 2;</code>
+     * @return The errorMsg.
+     */
+    public java.lang.String getErrorMsg() {
+      java.lang.Object ref = errorMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errorMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *错误信息(只在响应类消息时需要赋值)
+     * </pre>
+     *
+     * <code>string ErrorMsg = 2;</code>
+     * @return The bytes for errorMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrorMsgBytes() {
+      java.lang.Object ref = errorMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errorMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (errorCode_ != Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.Success.getNumber()) {
+        output.writeEnum(1, errorCode_);
+      }
+      if (!getErrorMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, errorMsg_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (errorCode_ != Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.Success.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, errorCode_);
+      }
+      if (!getErrorMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, errorMsg_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage other = (Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage) obj;
+
+      if (errorCode_ != other.errorCode_) return false;
+      if (!getErrorMsg()
+          .equals(other.getErrorMsg())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ERRORCODE_FIELD_NUMBER;
+      hash = (53 * hash) + errorCode_;
+      hash = (37 * hash) + ERRORMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrorMsg().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ErrorMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ErrorMessage)
+        Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WErrorNotice.internal_static_Im_Scrm_Ww_Proto_ErrorMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WErrorNotice.internal_static_Im_Scrm_Ww_Proto_ErrorMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.class, Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        errorCode_ = 0;
+
+        errorMsg_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WErrorNotice.internal_static_Im_Scrm_Ww_Proto_ErrorMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage build() {
+        Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage result = new Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage(this);
+        result.errorCode_ = errorCode_;
+        result.errorMsg_ = errorMsg_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage.getDefaultInstance()) return this;
+        if (other.errorCode_ != 0) {
+          setErrorCodeValue(other.getErrorCodeValue());
+        }
+        if (!other.getErrorMsg().isEmpty()) {
+          errorMsg_ = other.errorMsg_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int errorCode_ = 0;
+      /**
+       * <pre>
+       *错误码(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+       * @return The enum numeric value on the wire for errorCode.
+       */
+      public int getErrorCodeValue() {
+        return errorCode_;
+      }
+      /**
+       * <pre>
+       *错误码(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+       * @param value The enum numeric value on the wire for errorCode to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrorCodeValue(int value) {
+        errorCode_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *错误码(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+       * @return The errorCode.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getErrorCode() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumErrorCode result = Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.valueOf(errorCode_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       *错误码(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+       * @param value The errorCode to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrorCode(Im.Scrm.Ww.Proto.WTransport.EnumErrorCode value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        errorCode_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *错误码(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode ErrorCode = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrorCode() {
+        
+        errorCode_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errorMsg_ = "";
+      /**
+       * <pre>
+       *错误信息(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>string ErrorMsg = 2;</code>
+       * @return The errorMsg.
+       */
+      public java.lang.String getErrorMsg() {
+        java.lang.Object ref = errorMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errorMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *错误信息(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>string ErrorMsg = 2;</code>
+       * @return The bytes for errorMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrorMsgBytes() {
+        java.lang.Object ref = errorMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errorMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *错误信息(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>string ErrorMsg = 2;</code>
+       * @param value The errorMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrorMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errorMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *错误信息(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>string ErrorMsg = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrorMsg() {
+        
+        errorMsg_ = getDefaultInstance().getErrorMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *错误信息(只在响应类消息时需要赋值)
+       * </pre>
+       *
+       * <code>string ErrorMsg = 2;</code>
+       * @param value The bytes for errorMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrorMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errorMsg_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ErrorMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ErrorMessage)
+    private static final Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ErrorMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ErrorMessage>() {
+      @java.lang.Override
+      public ErrorMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ErrorMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ErrorMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ErrorMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WErrorNotice.ErrorMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ErrorMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ErrorMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\022WErrorNotice.proto\022\020Im.Scrm.Ww.Proto\032\020" +
+      "WTransport.proto\"T\n\014ErrorMessage\0222\n\tErro" +
+      "rCode\030\001 \001(\0162\037.Im.Scrm.Ww.Proto.EnumError" +
+      "Code\022\020\n\010ErrorMsg\030\002 \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ErrorMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ErrorMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ErrorMessage_descriptor,
+        new java.lang.String[] { "ErrorCode", "ErrorMsg", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 912 - 0
src/main/java/Im/Scrm/Ww/Proto/WForwardMsgTask.java

@@ -0,0 +1,912 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WForwardMsgTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WForwardMsgTask {
+  private WForwardMsgTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ForwardMsgTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ForwardMsgTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>int64 MsgId = 2;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>int64 ConvId = 3;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 会话LocalId
+     * </pre>
+     *
+     * <code>int64 LocalId = 5;</code>
+     * @return The localId.
+     */
+    long getLocalId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ForwardMsgTaskMessage}
+   */
+  public  static final class ForwardMsgTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ForwardMsgTaskMessage)
+      ForwardMsgTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ForwardMsgTaskMessage.newBuilder() to construct.
+    private ForwardMsgTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ForwardMsgTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ForwardMsgTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ForwardMsgTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+
+              localId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WForwardMsgTask.internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WForwardMsgTask.internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.class, Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 2;
+    private long msgId_;
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>int64 MsgId = 2;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 3;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>int64 ConvId = 3;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int LOCALID_FIELD_NUMBER = 5;
+    private long localId_;
+    /**
+     * <pre>
+     * 会话LocalId
+     * </pre>
+     *
+     * <code>int64 LocalId = 5;</code>
+     * @return The localId.
+     */
+    public long getLocalId() {
+      return localId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(2, msgId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(3, convId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      if (localId_ != 0L) {
+        output.writeInt64(5, localId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, msgId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, convId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      if (localId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, localId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage other = (Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getLocalId()
+          != other.getLocalId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + LOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getLocalId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ForwardMsgTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ForwardMsgTaskMessage)
+        Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WForwardMsgTask.internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WForwardMsgTask.internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.class, Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        msgId_ = 0L;
+
+        convId_ = 0L;
+
+        taskId_ = 0L;
+
+        localId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WForwardMsgTask.internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage build() {
+        Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage result = new Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.msgId_ = msgId_;
+        result.convId_ = convId_;
+        result.taskId_ = taskId_;
+        result.localId_ = localId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getLocalId() != 0L) {
+          setLocalId(other.getLocalId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>int64 MsgId = 2;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>int64 MsgId = 2;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>int64 MsgId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>int64 ConvId = 3;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>int64 ConvId = 3;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>int64 ConvId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long localId_ ;
+      /**
+       * <pre>
+       * 会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 5;</code>
+       * @return The localId.
+       */
+      public long getLocalId() {
+        return localId_;
+      }
+      /**
+       * <pre>
+       * 会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 5;</code>
+       * @param value The localId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLocalId(long value) {
+        
+        localId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLocalId() {
+        
+        localId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ForwardMsgTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ForwardMsgTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ForwardMsgTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ForwardMsgTaskMessage>() {
+      @java.lang.Override
+      public ForwardMsgTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ForwardMsgTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ForwardMsgTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ForwardMsgTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WForwardMsgTask.ForwardMsgTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\025WForwardMsgTask.proto\022\020Im.Scrm.Ww.Prot" +
+      "o\"e\n\025ForwardMsgTaskMessage\022\014\n\004WxId\030\001 \001(\003" +
+      "\022\r\n\005MsgId\030\002 \001(\003\022\016\n\006ConvId\030\003 \001(\003\022\016\n\006TaskI" +
+      "d\030\004 \001(\003\022\017\n\007LocalId\030\005 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ForwardMsgTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "MsgId", "ConvId", "TaskId", "LocalId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1381 - 0
src/main/java/Im/Scrm/Ww/Proto/WForwardMultiTask.java

@@ -0,0 +1,1381 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WForwardMultiTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WForwardMultiTask {
+  private WForwardMultiTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ForwardMultiTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ForwardMultiTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>repeated int64 MsgIds = 2;</code>
+     * @return A list containing the msgIds.
+     */
+    java.util.List<java.lang.Long> getMsgIdsList();
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>repeated int64 MsgIds = 2;</code>
+     * @return The count of msgIds.
+     */
+    int getMsgIdsCount();
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>repeated int64 MsgIds = 2;</code>
+     * @param index The index of the element to return.
+     * @return The msgIds at the given index.
+     */
+    long getMsgIds(int index);
+
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>repeated int64 ConvIds = 3;</code>
+     * @return A list containing the convIds.
+     */
+    java.util.List<java.lang.Long> getConvIdsList();
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>repeated int64 ConvIds = 3;</code>
+     * @return The count of convIds.
+     */
+    int getConvIdsCount();
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>repeated int64 ConvIds = 3;</code>
+     * @param index The index of the element to return.
+     * @return The convIds at the given index.
+     */
+    long getConvIds(int index);
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 会话Id
+     * </pre>
+     *
+     * <code>repeated int64 LocalIds = 5;</code>
+     * @return A list containing the localIds.
+     */
+    java.util.List<java.lang.Long> getLocalIdsList();
+    /**
+     * <pre>
+     * 会话Id
+     * </pre>
+     *
+     * <code>repeated int64 LocalIds = 5;</code>
+     * @return The count of localIds.
+     */
+    int getLocalIdsCount();
+    /**
+     * <pre>
+     * 会话Id
+     * </pre>
+     *
+     * <code>repeated int64 LocalIds = 5;</code>
+     * @param index The index of the element to return.
+     * @return The localIds at the given index.
+     */
+    long getLocalIds(int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ForwardMultiTaskMessage}
+   */
+  public  static final class ForwardMultiTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ForwardMultiTaskMessage)
+      ForwardMultiTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ForwardMultiTaskMessage.newBuilder() to construct.
+    private ForwardMultiTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ForwardMultiTaskMessage() {
+      msgIds_ = emptyLongList();
+      convIds_ = emptyLongList();
+      localIds_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ForwardMultiTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ForwardMultiTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                msgIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              msgIds_.addLong(input.readInt64());
+              break;
+            }
+            case 18: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                msgIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                msgIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 24: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                convIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              convIds_.addLong(input.readInt64());
+              break;
+            }
+            case 26: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+                convIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                convIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                localIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              localIds_.addLong(input.readInt64());
+              break;
+            }
+            case 42: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
+                localIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                localIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          msgIds_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          convIds_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          localIds_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WForwardMultiTask.internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WForwardMultiTask.internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.class, Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int MSGIDS_FIELD_NUMBER = 2;
+    private com.google.protobuf.Internal.LongList msgIds_;
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>repeated int64 MsgIds = 2;</code>
+     * @return A list containing the msgIds.
+     */
+    public java.util.List<java.lang.Long>
+        getMsgIdsList() {
+      return msgIds_;
+    }
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>repeated int64 MsgIds = 2;</code>
+     * @return The count of msgIds.
+     */
+    public int getMsgIdsCount() {
+      return msgIds_.size();
+    }
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>repeated int64 MsgIds = 2;</code>
+     * @param index The index of the element to return.
+     * @return The msgIds at the given index.
+     */
+    public long getMsgIds(int index) {
+      return msgIds_.getLong(index);
+    }
+    private int msgIdsMemoizedSerializedSize = -1;
+
+    public static final int CONVIDS_FIELD_NUMBER = 3;
+    private com.google.protobuf.Internal.LongList convIds_;
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>repeated int64 ConvIds = 3;</code>
+     * @return A list containing the convIds.
+     */
+    public java.util.List<java.lang.Long>
+        getConvIdsList() {
+      return convIds_;
+    }
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>repeated int64 ConvIds = 3;</code>
+     * @return The count of convIds.
+     */
+    public int getConvIdsCount() {
+      return convIds_.size();
+    }
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>repeated int64 ConvIds = 3;</code>
+     * @param index The index of the element to return.
+     * @return The convIds at the given index.
+     */
+    public long getConvIds(int index) {
+      return convIds_.getLong(index);
+    }
+    private int convIdsMemoizedSerializedSize = -1;
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int LOCALIDS_FIELD_NUMBER = 5;
+    private com.google.protobuf.Internal.LongList localIds_;
+    /**
+     * <pre>
+     * 会话Id
+     * </pre>
+     *
+     * <code>repeated int64 LocalIds = 5;</code>
+     * @return A list containing the localIds.
+     */
+    public java.util.List<java.lang.Long>
+        getLocalIdsList() {
+      return localIds_;
+    }
+    /**
+     * <pre>
+     * 会话Id
+     * </pre>
+     *
+     * <code>repeated int64 LocalIds = 5;</code>
+     * @return The count of localIds.
+     */
+    public int getLocalIdsCount() {
+      return localIds_.size();
+    }
+    /**
+     * <pre>
+     * 会话Id
+     * </pre>
+     *
+     * <code>repeated int64 LocalIds = 5;</code>
+     * @param index The index of the element to return.
+     * @return The localIds at the given index.
+     */
+    public long getLocalIds(int index) {
+      return localIds_.getLong(index);
+    }
+    private int localIdsMemoizedSerializedSize = -1;
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (getMsgIdsList().size() > 0) {
+        output.writeUInt32NoTag(18);
+        output.writeUInt32NoTag(msgIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < msgIds_.size(); i++) {
+        output.writeInt64NoTag(msgIds_.getLong(i));
+      }
+      if (getConvIdsList().size() > 0) {
+        output.writeUInt32NoTag(26);
+        output.writeUInt32NoTag(convIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < convIds_.size(); i++) {
+        output.writeInt64NoTag(convIds_.getLong(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      if (getLocalIdsList().size() > 0) {
+        output.writeUInt32NoTag(42);
+        output.writeUInt32NoTag(localIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < localIds_.size(); i++) {
+        output.writeInt64NoTag(localIds_.getLong(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < msgIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(msgIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getMsgIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        msgIdsMemoizedSerializedSize = dataSize;
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < convIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(convIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getConvIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        convIdsMemoizedSerializedSize = dataSize;
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < localIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(localIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getLocalIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        localIdsMemoizedSerializedSize = dataSize;
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage other = (Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getMsgIdsList()
+          .equals(other.getMsgIdsList())) return false;
+      if (!getConvIdsList()
+          .equals(other.getConvIdsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!getLocalIdsList()
+          .equals(other.getLocalIdsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getMsgIdsCount() > 0) {
+        hash = (37 * hash) + MSGIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getMsgIdsList().hashCode();
+      }
+      if (getConvIdsCount() > 0) {
+        hash = (37 * hash) + CONVIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getConvIdsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      if (getLocalIdsCount() > 0) {
+        hash = (37 * hash) + LOCALIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getLocalIdsList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ForwardMultiTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ForwardMultiTaskMessage)
+        Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WForwardMultiTask.internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WForwardMultiTask.internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.class, Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        msgIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        convIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        taskId_ = 0L;
+
+        localIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000004);
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WForwardMultiTask.internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage build() {
+        Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage result = new Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          msgIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.msgIds_ = msgIds_;
+        if (((bitField0_ & 0x00000002) != 0)) {
+          convIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.convIds_ = convIds_;
+        result.taskId_ = taskId_;
+        if (((bitField0_ & 0x00000004) != 0)) {
+          localIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        }
+        result.localIds_ = localIds_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.msgIds_.isEmpty()) {
+          if (msgIds_.isEmpty()) {
+            msgIds_ = other.msgIds_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureMsgIdsIsMutable();
+            msgIds_.addAll(other.msgIds_);
+          }
+          onChanged();
+        }
+        if (!other.convIds_.isEmpty()) {
+          if (convIds_.isEmpty()) {
+            convIds_ = other.convIds_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureConvIdsIsMutable();
+            convIds_.addAll(other.convIds_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (!other.localIds_.isEmpty()) {
+          if (localIds_.isEmpty()) {
+            localIds_ = other.localIds_;
+            bitField0_ = (bitField0_ & ~0x00000004);
+          } else {
+            ensureLocalIdsIsMutable();
+            localIds_.addAll(other.localIds_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList msgIds_ = emptyLongList();
+      private void ensureMsgIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          msgIds_ = mutableCopy(msgIds_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @return A list containing the msgIds.
+       */
+      public java.util.List<java.lang.Long>
+          getMsgIdsList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(msgIds_) : msgIds_;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @return The count of msgIds.
+       */
+      public int getMsgIdsCount() {
+        return msgIds_.size();
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @param index The index of the element to return.
+       * @return The msgIds at the given index.
+       */
+      public long getMsgIds(int index) {
+        return msgIds_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @param index The index to set the value at.
+       * @param value The msgIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgIds(
+          int index, long value) {
+        ensureMsgIdsIsMutable();
+        msgIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @param value The msgIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addMsgIds(long value) {
+        ensureMsgIdsIsMutable();
+        msgIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @param values The msgIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllMsgIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureMsgIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, msgIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>repeated int64 MsgIds = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgIds() {
+        msgIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList convIds_ = emptyLongList();
+      private void ensureConvIdsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          convIds_ = mutableCopy(convIds_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @return A list containing the convIds.
+       */
+      public java.util.List<java.lang.Long>
+          getConvIdsList() {
+        return ((bitField0_ & 0x00000002) != 0) ?
+                 java.util.Collections.unmodifiableList(convIds_) : convIds_;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @return The count of convIds.
+       */
+      public int getConvIdsCount() {
+        return convIds_.size();
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @param index The index of the element to return.
+       * @return The convIds at the given index.
+       */
+      public long getConvIds(int index) {
+        return convIds_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @param index The index to set the value at.
+       * @param value The convIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvIds(
+          int index, long value) {
+        ensureConvIdsIsMutable();
+        convIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @param value The convIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addConvIds(long value) {
+        ensureConvIdsIsMutable();
+        convIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @param values The convIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllConvIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureConvIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, convIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>repeated int64 ConvIds = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvIds() {
+        convIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList localIds_ = emptyLongList();
+      private void ensureLocalIdsIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          localIds_ = mutableCopy(localIds_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @return A list containing the localIds.
+       */
+      public java.util.List<java.lang.Long>
+          getLocalIdsList() {
+        return ((bitField0_ & 0x00000004) != 0) ?
+                 java.util.Collections.unmodifiableList(localIds_) : localIds_;
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @return The count of localIds.
+       */
+      public int getLocalIdsCount() {
+        return localIds_.size();
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @param index The index of the element to return.
+       * @return The localIds at the given index.
+       */
+      public long getLocalIds(int index) {
+        return localIds_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @param index The index to set the value at.
+       * @param value The localIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLocalIds(
+          int index, long value) {
+        ensureLocalIdsIsMutable();
+        localIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @param value The localIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLocalIds(long value) {
+        ensureLocalIdsIsMutable();
+        localIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @param values The localIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllLocalIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureLocalIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, localIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话Id
+       * </pre>
+       *
+       * <code>repeated int64 LocalIds = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLocalIds() {
+        localIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000004);
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ForwardMultiTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ForwardMultiTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ForwardMultiTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ForwardMultiTaskMessage>() {
+      @java.lang.Override
+      public ForwardMultiTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ForwardMultiTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ForwardMultiTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ForwardMultiTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WForwardMultiTask.ForwardMultiTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WForwardMultiTask.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\"j\n\027ForwardMultiTaskMessage\022\014\n\004WxId\030\001" +
+      " \001(\003\022\016\n\006MsgIds\030\002 \003(\003\022\017\n\007ConvIds\030\003 \003(\003\022\016\n" +
+      "\006TaskId\030\004 \001(\003\022\020\n\010LocalIds\030\005 \003(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ForwardMultiTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "MsgIds", "ConvIds", "TaskId", "LocalIds", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1948 - 0
src/main/java/Im/Scrm/Ww/Proto/WFriendTalkNotice.java

@@ -0,0 +1,1948 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WFriendTalkNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WFriendTalkNotice {
+  private WFriendTalkNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface FriendTalkNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.FriendTalkNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * 消息发送者Id
+     * </pre>
+     *
+     * <code>int64 SenderId = 3;</code>
+     * @return The senderId.
+     */
+    long getSenderId();
+
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    int getContentTypeValue();
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The contentType.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType();
+
+    /**
+     * <pre>
+     * 内容 二进制流
+     * </pre>
+     *
+     * <code>bytes Content = 5;</code>
+     * @return The content.
+     */
+    com.google.protobuf.ByteString getContent();
+
+    /**
+     * <pre>
+     *服务端的主键id
+     * </pre>
+     *
+     * <code>int64 MsgId = 6;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 7;</code>
+     * @return The msgRemoteId.
+     */
+    long getMsgRemoteId();
+
+    /**
+     * <pre>
+     * 消息时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 8;</code>
+     * @return The createTime.
+     */
+    long getCreateTime();
+
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 9;</code>
+     * @return The senderName.
+     */
+    java.lang.String getSenderName();
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 9;</code>
+     * @return The bytes for senderName.
+     */
+    com.google.protobuf.ByteString
+        getSenderNameBytes();
+
+    /**
+     * <pre>
+     * 引用消息的id
+     * </pre>
+     *
+     * <code>int64 RefId = 10;</code>
+     * @return The refId.
+     */
+    long getRefId();
+
+    /**
+     * <code>int32 Flag = 11;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <code>bool IsRevoke = 12;</code>
+     * @return The isRevoke.
+     */
+    boolean getIsRevoke();
+
+    /**
+     * <code>bool AtMe = 13;</code>
+     * @return The atMe.
+     */
+    boolean getAtMe();
+
+    /**
+     * <code>int64 TaskId = 14;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <code>int32 ConvType = 15;</code>
+     * @return The convType.
+     */
+    int getConvType();
+
+    /**
+     * <pre>
+     * 会话的LocalId
+     * </pre>
+     *
+     * <code>int64 ConvLocalId = 16;</code>
+     * @return The convLocalId.
+     */
+    long getConvLocalId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.FriendTalkNoticeMessage}
+   */
+  public  static final class FriendTalkNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.FriendTalkNoticeMessage)
+      FriendTalkNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use FriendTalkNoticeMessage.newBuilder() to construct.
+    private FriendTalkNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private FriendTalkNoticeMessage() {
+      contentType_ = 0;
+      content_ = com.google.protobuf.ByteString.EMPTY;
+      senderName_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new FriendTalkNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private FriendTalkNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              senderId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+              int rawValue = input.readEnum();
+
+              contentType_ = rawValue;
+              break;
+            }
+            case 42: {
+
+              content_ = input.readBytes();
+              break;
+            }
+            case 48: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              msgRemoteId_ = input.readInt64();
+              break;
+            }
+            case 64: {
+
+              createTime_ = input.readInt64();
+              break;
+            }
+            case 74: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              senderName_ = s;
+              break;
+            }
+            case 80: {
+
+              refId_ = input.readInt64();
+              break;
+            }
+            case 88: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 96: {
+
+              isRevoke_ = input.readBool();
+              break;
+            }
+            case 104: {
+
+              atMe_ = input.readBool();
+              break;
+            }
+            case 112: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 120: {
+
+              convType_ = input.readInt32();
+              break;
+            }
+            case 128: {
+
+              convLocalId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WFriendTalkNotice.internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WFriendTalkNotice.internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.class, Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int SENDERID_FIELD_NUMBER = 3;
+    private long senderId_;
+    /**
+     * <pre>
+     * 消息发送者Id
+     * </pre>
+     *
+     * <code>int64 SenderId = 3;</code>
+     * @return The senderId.
+     */
+    public long getSenderId() {
+      return senderId_;
+    }
+
+    public static final int CONTENTTYPE_FIELD_NUMBER = 4;
+    private int contentType_;
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    public int getContentTypeValue() {
+      return contentType_;
+    }
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The contentType.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 5;
+    private com.google.protobuf.ByteString content_;
+    /**
+     * <pre>
+     * 内容 二进制流
+     * </pre>
+     *
+     * <code>bytes Content = 5;</code>
+     * @return The content.
+     */
+    public com.google.protobuf.ByteString getContent() {
+      return content_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 6;
+    private long msgId_;
+    /**
+     * <pre>
+     *服务端的主键id
+     * </pre>
+     *
+     * <code>int64 MsgId = 6;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int MSGREMOTEID_FIELD_NUMBER = 7;
+    private long msgRemoteId_;
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 7;</code>
+     * @return The msgRemoteId.
+     */
+    public long getMsgRemoteId() {
+      return msgRemoteId_;
+    }
+
+    public static final int CREATETIME_FIELD_NUMBER = 8;
+    private long createTime_;
+    /**
+     * <pre>
+     * 消息时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 8;</code>
+     * @return The createTime.
+     */
+    public long getCreateTime() {
+      return createTime_;
+    }
+
+    public static final int SENDERNAME_FIELD_NUMBER = 9;
+    private volatile java.lang.Object senderName_;
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 9;</code>
+     * @return The senderName.
+     */
+    public java.lang.String getSenderName() {
+      java.lang.Object ref = senderName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        senderName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 9;</code>
+     * @return The bytes for senderName.
+     */
+    public com.google.protobuf.ByteString
+        getSenderNameBytes() {
+      java.lang.Object ref = senderName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        senderName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int REFID_FIELD_NUMBER = 10;
+    private long refId_;
+    /**
+     * <pre>
+     * 引用消息的id
+     * </pre>
+     *
+     * <code>int64 RefId = 10;</code>
+     * @return The refId.
+     */
+    public long getRefId() {
+      return refId_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 11;
+    private int flag_;
+    /**
+     * <code>int32 Flag = 11;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int ISREVOKE_FIELD_NUMBER = 12;
+    private boolean isRevoke_;
+    /**
+     * <code>bool IsRevoke = 12;</code>
+     * @return The isRevoke.
+     */
+    public boolean getIsRevoke() {
+      return isRevoke_;
+    }
+
+    public static final int ATME_FIELD_NUMBER = 13;
+    private boolean atMe_;
+    /**
+     * <code>bool AtMe = 13;</code>
+     * @return The atMe.
+     */
+    public boolean getAtMe() {
+      return atMe_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 14;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 14;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int CONVTYPE_FIELD_NUMBER = 15;
+    private int convType_;
+    /**
+     * <code>int32 ConvType = 15;</code>
+     * @return The convType.
+     */
+    public int getConvType() {
+      return convType_;
+    }
+
+    public static final int CONVLOCALID_FIELD_NUMBER = 16;
+    private long convLocalId_;
+    /**
+     * <pre>
+     * 会话的LocalId
+     * </pre>
+     *
+     * <code>int64 ConvLocalId = 16;</code>
+     * @return The convLocalId.
+     */
+    public long getConvLocalId() {
+      return convLocalId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (senderId_ != 0L) {
+        output.writeInt64(3, senderId_);
+      }
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        output.writeEnum(4, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        output.writeBytes(5, content_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(6, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        output.writeInt64(7, msgRemoteId_);
+      }
+      if (createTime_ != 0L) {
+        output.writeInt64(8, createTime_);
+      }
+      if (!getSenderNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, senderName_);
+      }
+      if (refId_ != 0L) {
+        output.writeInt64(10, refId_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(11, flag_);
+      }
+      if (isRevoke_ != false) {
+        output.writeBool(12, isRevoke_);
+      }
+      if (atMe_ != false) {
+        output.writeBool(13, atMe_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(14, taskId_);
+      }
+      if (convType_ != 0) {
+        output.writeInt32(15, convType_);
+      }
+      if (convLocalId_ != 0L) {
+        output.writeInt64(16, convLocalId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (senderId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, senderId_);
+      }
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(4, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(5, content_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, msgRemoteId_);
+      }
+      if (createTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, createTime_);
+      }
+      if (!getSenderNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, senderName_);
+      }
+      if (refId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(10, refId_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(11, flag_);
+      }
+      if (isRevoke_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(12, isRevoke_);
+      }
+      if (atMe_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(13, atMe_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(14, taskId_);
+      }
+      if (convType_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(15, convType_);
+      }
+      if (convLocalId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(16, convLocalId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage other = (Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getSenderId()
+          != other.getSenderId()) return false;
+      if (contentType_ != other.contentType_) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getMsgRemoteId()
+          != other.getMsgRemoteId()) return false;
+      if (getCreateTime()
+          != other.getCreateTime()) return false;
+      if (!getSenderName()
+          .equals(other.getSenderName())) return false;
+      if (getRefId()
+          != other.getRefId()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getIsRevoke()
+          != other.getIsRevoke()) return false;
+      if (getAtMe()
+          != other.getAtMe()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getConvType()
+          != other.getConvType()) return false;
+      if (getConvLocalId()
+          != other.getConvLocalId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + SENDERID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSenderId());
+      hash = (37 * hash) + CONTENTTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + contentType_;
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + MSGREMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgRemoteId());
+      hash = (37 * hash) + CREATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCreateTime());
+      hash = (37 * hash) + SENDERNAME_FIELD_NUMBER;
+      hash = (53 * hash) + getSenderName().hashCode();
+      hash = (37 * hash) + REFID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefId());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + ISREVOKE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsRevoke());
+      hash = (37 * hash) + ATME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getAtMe());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + CONVTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getConvType();
+      hash = (37 * hash) + CONVLOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvLocalId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.FriendTalkNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.FriendTalkNoticeMessage)
+        Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WFriendTalkNotice.internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WFriendTalkNotice.internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.class, Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        senderId_ = 0L;
+
+        contentType_ = 0;
+
+        content_ = com.google.protobuf.ByteString.EMPTY;
+
+        msgId_ = 0L;
+
+        msgRemoteId_ = 0L;
+
+        createTime_ = 0L;
+
+        senderName_ = "";
+
+        refId_ = 0L;
+
+        flag_ = 0;
+
+        isRevoke_ = false;
+
+        atMe_ = false;
+
+        taskId_ = 0L;
+
+        convType_ = 0;
+
+        convLocalId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WFriendTalkNotice.internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage result = new Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.senderId_ = senderId_;
+        result.contentType_ = contentType_;
+        result.content_ = content_;
+        result.msgId_ = msgId_;
+        result.msgRemoteId_ = msgRemoteId_;
+        result.createTime_ = createTime_;
+        result.senderName_ = senderName_;
+        result.refId_ = refId_;
+        result.flag_ = flag_;
+        result.isRevoke_ = isRevoke_;
+        result.atMe_ = atMe_;
+        result.taskId_ = taskId_;
+        result.convType_ = convType_;
+        result.convLocalId_ = convLocalId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getSenderId() != 0L) {
+          setSenderId(other.getSenderId());
+        }
+        if (other.contentType_ != 0) {
+          setContentTypeValue(other.getContentTypeValue());
+        }
+        if (other.getContent() != com.google.protobuf.ByteString.EMPTY) {
+          setContent(other.getContent());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getMsgRemoteId() != 0L) {
+          setMsgRemoteId(other.getMsgRemoteId());
+        }
+        if (other.getCreateTime() != 0L) {
+          setCreateTime(other.getCreateTime());
+        }
+        if (!other.getSenderName().isEmpty()) {
+          senderName_ = other.senderName_;
+          onChanged();
+        }
+        if (other.getRefId() != 0L) {
+          setRefId(other.getRefId());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getIsRevoke() != false) {
+          setIsRevoke(other.getIsRevoke());
+        }
+        if (other.getAtMe() != false) {
+          setAtMe(other.getAtMe());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getConvType() != 0) {
+          setConvType(other.getConvType());
+        }
+        if (other.getConvLocalId() != 0L) {
+          setConvLocalId(other.getConvLocalId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long senderId_ ;
+      /**
+       * <pre>
+       * 消息发送者Id
+       * </pre>
+       *
+       * <code>int64 SenderId = 3;</code>
+       * @return The senderId.
+       */
+      public long getSenderId() {
+        return senderId_;
+      }
+      /**
+       * <pre>
+       * 消息发送者Id
+       * </pre>
+       *
+       * <code>int64 SenderId = 3;</code>
+       * @param value The senderId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSenderId(long value) {
+        
+        senderId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送者Id
+       * </pre>
+       *
+       * <code>int64 SenderId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSenderId() {
+        
+        senderId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int contentType_ = 0;
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @return The enum numeric value on the wire for contentType.
+       */
+      public int getContentTypeValue() {
+        return contentType_;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @param value The enum numeric value on the wire for contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentTypeValue(int value) {
+        contentType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @return The contentType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @param value The contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentType(Im.Scrm.Ww.Proto.WTransport.EnumContentType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        contentType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContentType() {
+        
+        contentType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY;
+      /**
+       * <pre>
+       * 内容 二进制流
+       * </pre>
+       *
+       * <code>bytes Content = 5;</code>
+       * @return The content.
+       */
+      public com.google.protobuf.ByteString getContent() {
+        return content_;
+      }
+      /**
+       * <pre>
+       * 内容 二进制流
+       * </pre>
+       *
+       * <code>bytes Content = 5;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 内容 二进制流
+       * </pre>
+       *
+       * <code>bytes Content = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 6;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 6;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgRemoteId_ ;
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 7;</code>
+       * @return The msgRemoteId.
+       */
+      public long getMsgRemoteId() {
+        return msgRemoteId_;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 7;</code>
+       * @param value The msgRemoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgRemoteId(long value) {
+        
+        msgRemoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgRemoteId() {
+        
+        msgRemoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long createTime_ ;
+      /**
+       * <pre>
+       * 消息时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 8;</code>
+       * @return The createTime.
+       */
+      public long getCreateTime() {
+        return createTime_;
+      }
+      /**
+       * <pre>
+       * 消息时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 8;</code>
+       * @param value The createTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCreateTime(long value) {
+        
+        createTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCreateTime() {
+        
+        createTime_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object senderName_ = "";
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 9;</code>
+       * @return The senderName.
+       */
+      public java.lang.String getSenderName() {
+        java.lang.Object ref = senderName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          senderName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 9;</code>
+       * @return The bytes for senderName.
+       */
+      public com.google.protobuf.ByteString
+          getSenderNameBytes() {
+        java.lang.Object ref = senderName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          senderName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 9;</code>
+       * @param value The senderName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSenderName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        senderName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSenderName() {
+        
+        senderName_ = getDefaultInstance().getSenderName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 9;</code>
+       * @param value The bytes for senderName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSenderNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        senderName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long refId_ ;
+      /**
+       * <pre>
+       * 引用消息的id
+       * </pre>
+       *
+       * <code>int64 RefId = 10;</code>
+       * @return The refId.
+       */
+      public long getRefId() {
+        return refId_;
+      }
+      /**
+       * <pre>
+       * 引用消息的id
+       * </pre>
+       *
+       * <code>int64 RefId = 10;</code>
+       * @param value The refId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefId(long value) {
+        
+        refId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 引用消息的id
+       * </pre>
+       *
+       * <code>int64 RefId = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefId() {
+        
+        refId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <code>int32 Flag = 11;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <code>int32 Flag = 11;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Flag = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private boolean isRevoke_ ;
+      /**
+       * <code>bool IsRevoke = 12;</code>
+       * @return The isRevoke.
+       */
+      public boolean getIsRevoke() {
+        return isRevoke_;
+      }
+      /**
+       * <code>bool IsRevoke = 12;</code>
+       * @param value The isRevoke to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsRevoke(boolean value) {
+        
+        isRevoke_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool IsRevoke = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsRevoke() {
+        
+        isRevoke_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean atMe_ ;
+      /**
+       * <code>bool AtMe = 13;</code>
+       * @return The atMe.
+       */
+      public boolean getAtMe() {
+        return atMe_;
+      }
+      /**
+       * <code>bool AtMe = 13;</code>
+       * @param value The atMe to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAtMe(boolean value) {
+        
+        atMe_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool AtMe = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAtMe() {
+        
+        atMe_ = false;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 14;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 14;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 14;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int convType_ ;
+      /**
+       * <code>int32 ConvType = 15;</code>
+       * @return The convType.
+       */
+      public int getConvType() {
+        return convType_;
+      }
+      /**
+       * <code>int32 ConvType = 15;</code>
+       * @param value The convType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvType(int value) {
+        
+        convType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 ConvType = 15;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvType() {
+        
+        convType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long convLocalId_ ;
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 16;</code>
+       * @return The convLocalId.
+       */
+      public long getConvLocalId() {
+        return convLocalId_;
+      }
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 16;</code>
+       * @param value The convLocalId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvLocalId(long value) {
+        
+        convLocalId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 16;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvLocalId() {
+        
+        convLocalId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.FriendTalkNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.FriendTalkNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<FriendTalkNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<FriendTalkNoticeMessage>() {
+      @java.lang.Override
+      public FriendTalkNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new FriendTalkNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<FriendTalkNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<FriendTalkNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WFriendTalkNotice.FriendTalkNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WFriendTalkNotice.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\032\020WTransport.proto\"\322\002\n\027FriendTalkNoti" +
+      "ceMessage\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022" +
+      "\020\n\010SenderId\030\003 \001(\003\0226\n\013ContentType\030\004 \001(\0162!" +
+      ".Im.Scrm.Ww.Proto.EnumContentType\022\017\n\007Con" +
+      "tent\030\005 \001(\014\022\r\n\005MsgId\030\006 \001(\003\022\023\n\013MsgRemoteId" +
+      "\030\007 \001(\003\022\022\n\nCreateTime\030\010 \001(\003\022\022\n\nSenderName" +
+      "\030\t \001(\t\022\r\n\005RefId\030\n \001(\003\022\014\n\004Flag\030\013 \001(\005\022\020\n\010I" +
+      "sRevoke\030\014 \001(\010\022\014\n\004AtMe\030\r \001(\010\022\016\n\006TaskId\030\016 " +
+      "\001(\003\022\020\n\010ConvType\030\017 \001(\005\022\023\n\013ConvLocalId\030\020 \001" +
+      "(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_FriendTalkNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "SenderId", "ContentType", "Content", "MsgId", "MsgRemoteId", "CreateTime", "SenderName", "RefId", "Flag", "IsRevoke", "AtMe", "TaskId", "ConvType", "ConvLocalId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 714 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetContactInfoTask.java

@@ -0,0 +1,714 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetContactInfoTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetContactInfoTask {
+  private WGetContactInfoTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetContactInfoTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetContactInfoTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 联系人id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetContactInfoTaskMessage}
+   */
+  public  static final class GetContactInfoTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetContactInfoTaskMessage)
+      GetContactInfoTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetContactInfoTaskMessage.newBuilder() to construct.
+    private GetContactInfoTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetContactInfoTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetContactInfoTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetContactInfoTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetContactInfoTask.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetContactInfoTask.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.class, Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 联系人id
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage other = (Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetContactInfoTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetContactInfoTaskMessage)
+        Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTask.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTask.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.class, Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTask.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage build() {
+        Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage result = new Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联系人id
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetContactInfoTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetContactInfoTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetContactInfoTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetContactInfoTaskMessage>() {
+      @java.lang.Override
+      public GetContactInfoTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetContactInfoTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetContactInfoTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetContactInfoTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetContactInfoTask.GetContactInfoTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031WGetContactInfoTask.proto\022\020Im.Scrm.Ww." +
+      "Proto\"K\n\031GetContactInfoTaskMessage\022\014\n\004Wx" +
+      "Id\030\001 \001(\003\022\020\n\010RemoteId\030\002 \001(\003\022\016\n\006TaskId\030\003 \001" +
+      "(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1118 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetContactInfoTaskResultNotice.java

@@ -0,0 +1,1118 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetContactInfoTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetContactInfoTaskResultNotice {
+  private WGetContactInfoTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetContactInfoTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+     * @return Whether the info field is set.
+     */
+    boolean hasInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+     * @return The info.
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getInfoOrBuilder();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage}
+   */
+  public  static final class GetContactInfoTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage)
+      GetContactInfoTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetContactInfoTaskResultNoticeMessage.newBuilder() to construct.
+    private GetContactInfoTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetContactInfoTaskResultNoticeMessage() {
+      errMsg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetContactInfoTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetContactInfoTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 34: {
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder subBuilder = null;
+              if (info_ != null) {
+                subBuilder = info_.toBuilder();
+              }
+              info_ = input.readMessage(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(info_);
+                info_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int INFO_FIELD_NUMBER = 4;
+    private Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage info_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+     * @return Whether the info field is set.
+     */
+    public boolean hasInfo() {
+      return info_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+     * @return The info.
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getInfo() {
+      return info_ == null ? Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : info_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getInfoOrBuilder() {
+      return getInfo();
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (info_ != null) {
+        output.writeMessage(4, getInfo());
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (info_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, getInfo());
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (hasInfo() != other.hasInfo()) return false;
+      if (hasInfo()) {
+        if (!getInfo()
+            .equals(other.getInfo())) return false;
+      }
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      if (hasInfo()) {
+        hash = (37 * hash) + INFO_FIELD_NUMBER;
+        hash = (53 * hash) + getInfo().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        if (infoBuilder_ == null) {
+          info_ = null;
+        } else {
+          info_ = null;
+          infoBuilder_ = null;
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        if (infoBuilder_ == null) {
+          result.info_ = info_;
+        } else {
+          result.info_ = infoBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.hasInfo()) {
+          mergeInfo(other.getInfo());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage info_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> infoBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       * @return Whether the info field is set.
+       */
+      public boolean hasInfo() {
+        return infoBuilder_ != null || info_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       * @return The info.
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getInfo() {
+        if (infoBuilder_ == null) {
+          return info_ == null ? Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : info_;
+        } else {
+          return infoBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      public Builder setInfo(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (infoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          info_ = value;
+          onChanged();
+        } else {
+          infoBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      public Builder setInfo(
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (infoBuilder_ == null) {
+          info_ = builderForValue.build();
+          onChanged();
+        } else {
+          infoBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      public Builder mergeInfo(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (infoBuilder_ == null) {
+          if (info_ != null) {
+            info_ =
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.newBuilder(info_).mergeFrom(value).buildPartial();
+          } else {
+            info_ = value;
+          }
+          onChanged();
+        } else {
+          infoBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      public Builder clearInfo() {
+        if (infoBuilder_ == null) {
+          info_ = null;
+          onChanged();
+        } else {
+          info_ = null;
+          infoBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder getInfoBuilder() {
+        
+        onChanged();
+        return getInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getInfoOrBuilder() {
+        if (infoBuilder_ != null) {
+          return infoBuilder_.getMessageOrBuilder();
+        } else {
+          return info_ == null ?
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : info_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Info = 4;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+          getInfoFieldBuilder() {
+        if (infoBuilder_ == null) {
+          infoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder>(
+                  getInfo(),
+                  getParentForChildren(),
+                  isClean());
+          info_ = null;
+        }
+        return infoBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetContactInfoTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetContactInfoTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetContactInfoTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public GetContactInfoTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetContactInfoTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetContactInfoTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetContactInfoTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetContactInfoTaskResultNotice.GetContactInfoTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n%WGetContactInfoTaskResultNotice.proto\022" +
+      "\020Im.Scrm.Ww.Proto\032\031WCustomerPushNotice.p" +
+      "roto\"\227\001\n%GetContactInfoTaskResultNoticeM" +
+      "essage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010\022\016\n" +
+      "\006ErrMsg\030\003 \001(\t\022/\n\004Info\030\004 \001(\0132!.Im.Scrm.Ww" +
+      ".Proto.CustomerMessage\022\016\n\006TaskId\030\005 \001(\003b\006" +
+      "proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetContactInfoTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "Info", "TaskId", });
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 714 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetConversationInfoTask.java

@@ -0,0 +1,714 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetConversationInfoTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetConversationInfoTask {
+  private WGetConversationInfoTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetConversationInfoTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 所属wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage}
+   */
+  public  static final class GetConversationInfoTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage)
+      GetConversationInfoTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetConversationInfoTaskMessage.newBuilder() to construct.
+    private GetConversationInfoTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetConversationInfoTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetConversationInfoTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetConversationInfoTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetConversationInfoTask.internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetConversationInfoTask.internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.class, Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 所属wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage other = (Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage)
+        Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetConversationInfoTask.internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetConversationInfoTask.internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.class, Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetConversationInfoTask.internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage build() {
+        Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage result = new Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetConversationInfoTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetConversationInfoTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetConversationInfoTaskMessage>() {
+      @java.lang.Override
+      public GetConversationInfoTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetConversationInfoTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetConversationInfoTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetConversationInfoTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetConversationInfoTask.GetConversationInfoTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\036WGetConversationInfoTask.proto\022\020Im.Scr" +
+      "m.Ww.Proto\"N\n\036GetConversationInfoTaskMes" +
+      "sage\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022\016\n\006Ta" +
+      "skId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetConversationInfoTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1057 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetExtUserIdTask.java

@@ -0,0 +1,1057 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetExtUserIdTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetExtUserIdTask {
+  private WGetExtUserIdTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetExtUserIdTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *公司id
+     * </pre>
+     *
+     * <code>string CorpId = 2;</code>
+     * @return The corpId.
+     */
+    java.lang.String getCorpId();
+    /**
+     * <pre>
+     *公司id
+     * </pre>
+     *
+     * <code>string CorpId = 2;</code>
+     * @return The bytes for corpId.
+     */
+    com.google.protobuf.ByteString
+        getCorpIdBytes();
+
+    /**
+     * <pre>
+     * 客户id
+     * </pre>
+     *
+     * <code>repeated int64 RemoteId = 3;</code>
+     * @return A list containing the remoteId.
+     */
+    java.util.List<java.lang.Long> getRemoteIdList();
+    /**
+     * <pre>
+     * 客户id
+     * </pre>
+     *
+     * <code>repeated int64 RemoteId = 3;</code>
+     * @return The count of remoteId.
+     */
+    int getRemoteIdCount();
+    /**
+     * <pre>
+     * 客户id
+     * </pre>
+     *
+     * <code>repeated int64 RemoteId = 3;</code>
+     * @param index The index of the element to return.
+     * @return The remoteId at the given index.
+     */
+    long getRemoteId(int index);
+
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage}
+   */
+  public  static final class GetExtUserIdTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage)
+      GetExtUserIdTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetExtUserIdTaskMessage.newBuilder() to construct.
+    private GetExtUserIdTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetExtUserIdTaskMessage() {
+      corpId_ = "";
+      remoteId_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetExtUserIdTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetExtUserIdTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              corpId_ = s;
+              break;
+            }
+            case 24: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                remoteId_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              remoteId_.addLong(input.readInt64());
+              break;
+            }
+            case 26: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                remoteId_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                remoteId_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          remoteId_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetExtUserIdTask.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetExtUserIdTask.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.class, Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CORPID_FIELD_NUMBER = 2;
+    private volatile java.lang.Object corpId_;
+    /**
+     * <pre>
+     *公司id
+     * </pre>
+     *
+     * <code>string CorpId = 2;</code>
+     * @return The corpId.
+     */
+    public java.lang.String getCorpId() {
+      java.lang.Object ref = corpId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        corpId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *公司id
+     * </pre>
+     *
+     * <code>string CorpId = 2;</code>
+     * @return The bytes for corpId.
+     */
+    public com.google.protobuf.ByteString
+        getCorpIdBytes() {
+      java.lang.Object ref = corpId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        corpId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 3;
+    private com.google.protobuf.Internal.LongList remoteId_;
+    /**
+     * <pre>
+     * 客户id
+     * </pre>
+     *
+     * <code>repeated int64 RemoteId = 3;</code>
+     * @return A list containing the remoteId.
+     */
+    public java.util.List<java.lang.Long>
+        getRemoteIdList() {
+      return remoteId_;
+    }
+    /**
+     * <pre>
+     * 客户id
+     * </pre>
+     *
+     * <code>repeated int64 RemoteId = 3;</code>
+     * @return The count of remoteId.
+     */
+    public int getRemoteIdCount() {
+      return remoteId_.size();
+    }
+    /**
+     * <pre>
+     * 客户id
+     * </pre>
+     *
+     * <code>repeated int64 RemoteId = 3;</code>
+     * @param index The index of the element to return.
+     * @return The remoteId at the given index.
+     */
+    public long getRemoteId(int index) {
+      return remoteId_.getLong(index);
+    }
+    private int remoteIdMemoizedSerializedSize = -1;
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getCorpIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, corpId_);
+      }
+      if (getRemoteIdList().size() > 0) {
+        output.writeUInt32NoTag(26);
+        output.writeUInt32NoTag(remoteIdMemoizedSerializedSize);
+      }
+      for (int i = 0; i < remoteId_.size(); i++) {
+        output.writeInt64NoTag(remoteId_.getLong(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getCorpIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, corpId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < remoteId_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(remoteId_.getLong(i));
+        }
+        size += dataSize;
+        if (!getRemoteIdList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        remoteIdMemoizedSerializedSize = dataSize;
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage other = (Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getCorpId()
+          .equals(other.getCorpId())) return false;
+      if (!getRemoteIdList()
+          .equals(other.getRemoteIdList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CORPID_FIELD_NUMBER;
+      hash = (53 * hash) + getCorpId().hashCode();
+      if (getRemoteIdCount() > 0) {
+        hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+        hash = (53 * hash) + getRemoteIdList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage)
+        Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTask.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTask.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.class, Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        corpId_ = "";
+
+        remoteId_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTask.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage build() {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage result = new Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.corpId_ = corpId_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          remoteId_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.remoteId_ = remoteId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getCorpId().isEmpty()) {
+          corpId_ = other.corpId_;
+          onChanged();
+        }
+        if (!other.remoteId_.isEmpty()) {
+          if (remoteId_.isEmpty()) {
+            remoteId_ = other.remoteId_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureRemoteIdIsMutable();
+            remoteId_.addAll(other.remoteId_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object corpId_ = "";
+      /**
+       * <pre>
+       *公司id
+       * </pre>
+       *
+       * <code>string CorpId = 2;</code>
+       * @return The corpId.
+       */
+      public java.lang.String getCorpId() {
+        java.lang.Object ref = corpId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          corpId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *公司id
+       * </pre>
+       *
+       * <code>string CorpId = 2;</code>
+       * @return The bytes for corpId.
+       */
+      public com.google.protobuf.ByteString
+          getCorpIdBytes() {
+        java.lang.Object ref = corpId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          corpId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *公司id
+       * </pre>
+       *
+       * <code>string CorpId = 2;</code>
+       * @param value The corpId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCorpId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        corpId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *公司id
+       * </pre>
+       *
+       * <code>string CorpId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCorpId() {
+        
+        corpId_ = getDefaultInstance().getCorpId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *公司id
+       * </pre>
+       *
+       * <code>string CorpId = 2;</code>
+       * @param value The bytes for corpId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCorpIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        corpId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList remoteId_ = emptyLongList();
+      private void ensureRemoteIdIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          remoteId_ = mutableCopy(remoteId_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @return A list containing the remoteId.
+       */
+      public java.util.List<java.lang.Long>
+          getRemoteIdList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(remoteId_) : remoteId_;
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @return The count of remoteId.
+       */
+      public int getRemoteIdCount() {
+        return remoteId_.size();
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @param index The index of the element to return.
+       * @return The remoteId at the given index.
+       */
+      public long getRemoteId(int index) {
+        return remoteId_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @param index The index to set the value at.
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(
+          int index, long value) {
+        ensureRemoteIdIsMutable();
+        remoteId_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @param value The remoteId to add.
+       * @return This builder for chaining.
+       */
+      public Builder addRemoteId(long value) {
+        ensureRemoteIdIsMutable();
+        remoteId_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @param values The remoteId to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllRemoteId(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureRemoteIdIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, remoteId_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户id
+       * </pre>
+       *
+       * <code>repeated int64 RemoteId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        remoteId_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetExtUserIdTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetExtUserIdTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetExtUserIdTaskMessage>() {
+      @java.lang.Override
+      public GetExtUserIdTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetExtUserIdTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetExtUserIdTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetExtUserIdTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetExtUserIdTask.GetExtUserIdTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WGetExtUserIdTask.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\"Y\n\027GetExtUserIdTaskMessage\022\014\n\004WxId\030\001" +
+      " \001(\003\022\016\n\006CorpId\030\002 \001(\t\022\020\n\010RemoteId\030\003 \003(\003\022\016" +
+      "\n\006TaskId\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "CorpId", "RemoteId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1932 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetExtUserIdTaskResult.java

@@ -0,0 +1,1932 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetExtUserIdTaskResult.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetExtUserIdTaskResult {
+  private WGetExtUserIdTaskResult() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ExtUserIdMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ExtUserIdMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>string ExtUid = 2;</code>
+     * @return The extUid.
+     */
+    java.lang.String getExtUid();
+    /**
+     * <code>string ExtUid = 2;</code>
+     * @return The bytes for extUid.
+     */
+    com.google.protobuf.ByteString
+        getExtUidBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ExtUserIdMessage}
+   */
+  public  static final class ExtUserIdMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ExtUserIdMessage)
+      ExtUserIdMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ExtUserIdMessage.newBuilder() to construct.
+    private ExtUserIdMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ExtUserIdMessage() {
+      extUid_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ExtUserIdMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ExtUserIdMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              extUid_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.class, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder.class);
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 1;
+    private long remoteId_;
+    /**
+     * <code>int64 RemoteId = 1;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int EXTUID_FIELD_NUMBER = 2;
+    private volatile java.lang.Object extUid_;
+    /**
+     * <code>string ExtUid = 2;</code>
+     * @return The extUid.
+     */
+    public java.lang.String getExtUid() {
+      java.lang.Object ref = extUid_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        extUid_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string ExtUid = 2;</code>
+     * @return The bytes for extUid.
+     */
+    public com.google.protobuf.ByteString
+        getExtUidBytes() {
+      java.lang.Object ref = extUid_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        extUid_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (remoteId_ != 0L) {
+        output.writeInt64(1, remoteId_);
+      }
+      if (!getExtUidBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, extUid_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, remoteId_);
+      }
+      if (!getExtUidBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, extUid_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage other = (Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage) obj;
+
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getExtUid()
+          .equals(other.getExtUid())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + EXTUID_FIELD_NUMBER;
+      hash = (53 * hash) + getExtUid().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ExtUserIdMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ExtUserIdMessage)
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.class, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        remoteId_ = 0L;
+
+        extUid_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage build() {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage result = new Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage(this);
+        result.remoteId_ = remoteId_;
+        result.extUid_ = extUid_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.getDefaultInstance()) return this;
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getExtUid().isEmpty()) {
+          extUid_ = other.extUid_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <code>int64 RemoteId = 1;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <code>int64 RemoteId = 1;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 RemoteId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object extUid_ = "";
+      /**
+       * <code>string ExtUid = 2;</code>
+       * @return The extUid.
+       */
+      public java.lang.String getExtUid() {
+        java.lang.Object ref = extUid_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          extUid_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string ExtUid = 2;</code>
+       * @return The bytes for extUid.
+       */
+      public com.google.protobuf.ByteString
+          getExtUidBytes() {
+        java.lang.Object ref = extUid_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          extUid_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string ExtUid = 2;</code>
+       * @param value The extUid to set.
+       * @return This builder for chaining.
+       */
+      public Builder setExtUid(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        extUid_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ExtUid = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearExtUid() {
+        
+        extUid_ = getDefaultInstance().getExtUid();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ExtUid = 2;</code>
+       * @param value The bytes for extUid to set.
+       * @return This builder for chaining.
+       */
+      public Builder setExtUidBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        extUid_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ExtUserIdMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ExtUserIdMessage)
+    private static final Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ExtUserIdMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ExtUserIdMessage>() {
+      @java.lang.Override
+      public ExtUserIdMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ExtUserIdMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ExtUserIdMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ExtUserIdMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface GetExtUserIdTaskResultMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage> 
+        getExtUserIdsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage getExtUserIds(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    int getExtUserIdsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder> 
+        getExtUserIdsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder getExtUserIdsOrBuilder(
+        int index);
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage}
+   */
+  public  static final class GetExtUserIdTaskResultMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage)
+      GetExtUserIdTaskResultMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetExtUserIdTaskResultMessage.newBuilder() to construct.
+    private GetExtUserIdTaskResultMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetExtUserIdTaskResultMessage() {
+      errMsg_ = "";
+      extUserIds_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetExtUserIdTaskResultMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetExtUserIdTaskResultMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                extUserIds_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              extUserIds_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          extUserIds_ = java.util.Collections.unmodifiableList(extUserIds_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.class, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int EXTUSERIDS_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage> extUserIds_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage> getExtUserIdsList() {
+      return extUserIds_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder> 
+        getExtUserIdsOrBuilderList() {
+      return extUserIds_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    public int getExtUserIdsCount() {
+      return extUserIds_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage getExtUserIds(int index) {
+      return extUserIds_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder getExtUserIdsOrBuilder(
+        int index) {
+      return extUserIds_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      for (int i = 0; i < extUserIds_.size(); i++) {
+        output.writeMessage(4, extUserIds_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      for (int i = 0; i < extUserIds_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, extUserIds_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage other = (Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getExtUserIdsList()
+          .equals(other.getExtUserIdsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      if (getExtUserIdsCount() > 0) {
+        hash = (37 * hash) + EXTUSERIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getExtUserIdsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage)
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.class, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getExtUserIdsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        if (extUserIdsBuilder_ == null) {
+          extUserIds_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          extUserIdsBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage build() {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage result = new Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        if (extUserIdsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            extUserIds_ = java.util.Collections.unmodifiableList(extUserIds_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.extUserIds_ = extUserIds_;
+        } else {
+          result.extUserIds_ = extUserIdsBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (extUserIdsBuilder_ == null) {
+          if (!other.extUserIds_.isEmpty()) {
+            if (extUserIds_.isEmpty()) {
+              extUserIds_ = other.extUserIds_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureExtUserIdsIsMutable();
+              extUserIds_.addAll(other.extUserIds_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.extUserIds_.isEmpty()) {
+            if (extUserIdsBuilder_.isEmpty()) {
+              extUserIdsBuilder_.dispose();
+              extUserIdsBuilder_ = null;
+              extUserIds_ = other.extUserIds_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              extUserIdsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getExtUserIdsFieldBuilder() : null;
+            } else {
+              extUserIdsBuilder_.addAllMessages(other.extUserIds_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage> extUserIds_ =
+        java.util.Collections.emptyList();
+      private void ensureExtUserIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          extUserIds_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage>(extUserIds_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder> extUserIdsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage> getExtUserIdsList() {
+        if (extUserIdsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(extUserIds_);
+        } else {
+          return extUserIdsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public int getExtUserIdsCount() {
+        if (extUserIdsBuilder_ == null) {
+          return extUserIds_.size();
+        } else {
+          return extUserIdsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage getExtUserIds(int index) {
+        if (extUserIdsBuilder_ == null) {
+          return extUserIds_.get(index);
+        } else {
+          return extUserIdsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder setExtUserIds(
+          int index, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage value) {
+        if (extUserIdsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureExtUserIdsIsMutable();
+          extUserIds_.set(index, value);
+          onChanged();
+        } else {
+          extUserIdsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder setExtUserIds(
+          int index, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder builderForValue) {
+        if (extUserIdsBuilder_ == null) {
+          ensureExtUserIdsIsMutable();
+          extUserIds_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          extUserIdsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder addExtUserIds(Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage value) {
+        if (extUserIdsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureExtUserIdsIsMutable();
+          extUserIds_.add(value);
+          onChanged();
+        } else {
+          extUserIdsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder addExtUserIds(
+          int index, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage value) {
+        if (extUserIdsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureExtUserIdsIsMutable();
+          extUserIds_.add(index, value);
+          onChanged();
+        } else {
+          extUserIdsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder addExtUserIds(
+          Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder builderForValue) {
+        if (extUserIdsBuilder_ == null) {
+          ensureExtUserIdsIsMutable();
+          extUserIds_.add(builderForValue.build());
+          onChanged();
+        } else {
+          extUserIdsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder addExtUserIds(
+          int index, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder builderForValue) {
+        if (extUserIdsBuilder_ == null) {
+          ensureExtUserIdsIsMutable();
+          extUserIds_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          extUserIdsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder addAllExtUserIds(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage> values) {
+        if (extUserIdsBuilder_ == null) {
+          ensureExtUserIdsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, extUserIds_);
+          onChanged();
+        } else {
+          extUserIdsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder clearExtUserIds() {
+        if (extUserIdsBuilder_ == null) {
+          extUserIds_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          extUserIdsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Builder removeExtUserIds(int index) {
+        if (extUserIdsBuilder_ == null) {
+          ensureExtUserIdsIsMutable();
+          extUserIds_.remove(index);
+          onChanged();
+        } else {
+          extUserIdsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder getExtUserIdsBuilder(
+          int index) {
+        return getExtUserIdsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder getExtUserIdsOrBuilder(
+          int index) {
+        if (extUserIdsBuilder_ == null) {
+          return extUserIds_.get(index);  } else {
+          return extUserIdsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder> 
+           getExtUserIdsOrBuilderList() {
+        if (extUserIdsBuilder_ != null) {
+          return extUserIdsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(extUserIds_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder addExtUserIdsBuilder() {
+        return getExtUserIdsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder addExtUserIdsBuilder(
+          int index) {
+        return getExtUserIdsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ExtUserIdMessage ExtUserIds = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder> 
+           getExtUserIdsBuilderList() {
+        return getExtUserIdsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder> 
+          getExtUserIdsFieldBuilder() {
+        if (extUserIdsBuilder_ == null) {
+          extUserIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessage.Builder, Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.ExtUserIdMessageOrBuilder>(
+                  extUserIds_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          extUserIds_ = null;
+        }
+        return extUserIdsBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetExtUserIdTaskResultMessage)
+    private static final Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetExtUserIdTaskResultMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetExtUserIdTaskResultMessage>() {
+      @java.lang.Override
+      public GetExtUserIdTaskResultMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetExtUserIdTaskResultMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetExtUserIdTaskResultMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetExtUserIdTaskResultMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetExtUserIdTaskResult.GetExtUserIdTaskResultMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WGetExtUserIdTaskResult.proto\022\020Im.Scrm" +
+      ".Ww.Proto\"4\n\020ExtUserIdMessage\022\020\n\010RemoteI" +
+      "d\030\001 \001(\003\022\016\n\006ExtUid\030\002 \001(\t\"\226\001\n\035GetExtUserId" +
+      "TaskResultMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Succe" +
+      "ss\030\002 \001(\010\022\016\n\006ErrMsg\030\003 \001(\t\0226\n\nExtUserIds\030\004" +
+      " \003(\0132\".Im.Scrm.Ww.Proto.ExtUserIdMessage" +
+      "\022\016\n\006TaskId\030\005 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ExtUserIdMessage_descriptor,
+        new java.lang.String[] { "RemoteId", "ExtUid", });
+    internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetExtUserIdTaskResultMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "ExtUserIds", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 734 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetGroupMemberTask.java

@@ -0,0 +1,734 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetGroupMemberTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetGroupMemberTask {
+  private WGetGroupMemberTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetGroupMemberTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage}
+   */
+  public  static final class GetGroupMemberTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage)
+      GetGroupMemberTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetGroupMemberTaskMessage.newBuilder() to construct.
+    private GetGroupMemberTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetGroupMemberTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetGroupMemberTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetGroupMemberTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetGroupMemberTask.internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetGroupMemberTask.internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.class, Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话remoteid
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage other = (Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage)
+        Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetGroupMemberTask.internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetGroupMemberTask.internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.class, Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetGroupMemberTask.internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage build() {
+        Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage result = new Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话remoteid
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetGroupMemberTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetGroupMemberTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetGroupMemberTaskMessage>() {
+      @java.lang.Override
+      public GetGroupMemberTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetGroupMemberTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetGroupMemberTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetGroupMemberTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetGroupMemberTask.GetGroupMemberTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\031WGetGroupMemberTask.proto\022\020Im.Scrm.Ww." +
+      "Proto\"I\n\031GetGroupMemberTaskMessage\022\014\n\004Wx" +
+      "Id\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022\016\n\006TaskId\030\003 \001(\003" +
+      "b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetGroupMemberTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 918 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetSnsDataTask.java

@@ -0,0 +1,918 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetSnsDataTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetSnsDataTask {
+  private WGetSnsDataTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetSnsDataTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetSnsDataTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetSnsDataTaskMessage}
+   */
+  public  static final class GetSnsDataTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetSnsDataTaskMessage)
+      GetSnsDataTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetSnsDataTaskMessage.newBuilder() to construct.
+    private GetSnsDataTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetSnsDataTaskMessage() {
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetSnsDataTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetSnsDataTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetSnsDataTask.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetSnsDataTask.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.class, Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 2;
+    private long snsId_;
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 3;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, postId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, postId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage other = (Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetSnsDataTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetSnsDataTaskMessage)
+        Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTask.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTask.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.class, Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        snsId_ = 0L;
+
+        postId_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTask.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage build() {
+        Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage result = new Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.snsId_ = snsId_;
+        result.postId_ = postId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetSnsDataTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetSnsDataTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetSnsDataTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetSnsDataTaskMessage>() {
+      @java.lang.Override
+      public GetSnsDataTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetSnsDataTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetSnsDataTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetSnsDataTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetSnsDataTask.GetSnsDataTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\025WGetSnsDataTask.proto\022\020Im.Scrm.Ww.Prot" +
+      "o\"T\n\025GetSnsDataTaskMessage\022\014\n\004WxId\030\001 \001(\003" +
+      "\022\r\n\005SnsId\030\002 \001(\003\022\016\n\006PostId\030\003 \001(\t\022\016\n\006TaskI" +
+      "d\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "SnsId", "PostId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1118 - 0
src/main/java/Im/Scrm/Ww/Proto/WGetSnsDataTaskResultNotice.java

@@ -0,0 +1,1118 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGetSnsDataTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGetSnsDataTaskResultNotice {
+  private WGetSnsDataTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GetSnsDataTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+     * @return Whether the snsInfo field is set.
+     */
+    boolean hasSnsInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+     * @return The snsInfo.
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage}
+   */
+  public  static final class GetSnsDataTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage)
+      GetSnsDataTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GetSnsDataTaskResultNoticeMessage.newBuilder() to construct.
+    private GetSnsDataTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GetSnsDataTaskResultNoticeMessage() {
+      errMsg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GetSnsDataTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GetSnsDataTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 34: {
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder subBuilder = null;
+              if (snsInfo_ != null) {
+                subBuilder = snsInfo_.toBuilder();
+              }
+              snsInfo_ = input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(snsInfo_);
+                snsInfo_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SNSINFO_FIELD_NUMBER = 4;
+    private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage snsInfo_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+     * @return Whether the snsInfo field is set.
+     */
+    public boolean hasSnsInfo() {
+      return snsInfo_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+     * @return The snsInfo.
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo() {
+      return snsInfo_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder() {
+      return getSnsInfo();
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (snsInfo_ != null) {
+        output.writeMessage(4, getSnsInfo());
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (snsInfo_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, getSnsInfo());
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (hasSnsInfo() != other.hasSnsInfo()) return false;
+      if (hasSnsInfo()) {
+        if (!getSnsInfo()
+            .equals(other.getSnsInfo())) return false;
+      }
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      if (hasSnsInfo()) {
+        hash = (37 * hash) + SNSINFO_FIELD_NUMBER;
+        hash = (53 * hash) + getSnsInfo().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = null;
+        } else {
+          snsInfo_ = null;
+          snsInfoBuilder_ = null;
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        if (snsInfoBuilder_ == null) {
+          result.snsInfo_ = snsInfo_;
+        } else {
+          result.snsInfo_ = snsInfoBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.hasSnsInfo()) {
+          mergeSnsInfo(other.getSnsInfo());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage snsInfo_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> snsInfoBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       * @return Whether the snsInfo field is set.
+       */
+      public boolean hasSnsInfo() {
+        return snsInfoBuilder_ != null || snsInfo_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       * @return The snsInfo.
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo() {
+        if (snsInfoBuilder_ == null) {
+          return snsInfo_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+        } else {
+          return snsInfoBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      public Builder setSnsInfo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          snsInfo_ = value;
+          onChanged();
+        } else {
+          snsInfoBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      public Builder setSnsInfo(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder builderForValue) {
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = builderForValue.build();
+          onChanged();
+        } else {
+          snsInfoBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      public Builder mergeSnsInfo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsInfoBuilder_ == null) {
+          if (snsInfo_ != null) {
+            snsInfo_ =
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.newBuilder(snsInfo_).mergeFrom(value).buildPartial();
+          } else {
+            snsInfo_ = value;
+          }
+          onChanged();
+        } else {
+          snsInfoBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      public Builder clearSnsInfo() {
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = null;
+          onChanged();
+        } else {
+          snsInfo_ = null;
+          snsInfoBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder getSnsInfoBuilder() {
+        
+        onChanged();
+        return getSnsInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder() {
+        if (snsInfoBuilder_ != null) {
+          return snsInfoBuilder_.getMessageOrBuilder();
+        } else {
+          return snsInfo_ == null ?
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 4;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+          getSnsInfoFieldBuilder() {
+        if (snsInfoBuilder_ == null) {
+          snsInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder>(
+                  getSnsInfo(),
+                  getParentForChildren(),
+                  isClean());
+          snsInfo_ = null;
+        }
+        return snsInfoBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GetSnsDataTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GetSnsDataTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GetSnsDataTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public GetSnsDataTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GetSnsDataTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GetSnsDataTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GetSnsDataTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGetSnsDataTaskResultNotice.GetSnsDataTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n!WGetSnsDataTaskResultNotice.proto\022\020Im." +
+      "Scrm.Ww.Proto\032$WPullMySnsListTaskResultN" +
+      "otice.proto\"\225\001\n!GetSnsDataTaskResultNoti" +
+      "ceMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010" +
+      "\022\016\n\006ErrMsg\030\003 \001(\t\0221\n\007SnsInfo\030\004 \001(\0132 .Im.S" +
+      "crm.Ww.Proto.SnsInfoMessage\022\016\n\006TaskId\030\005 " +
+      "\001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GetSnsDataTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "SnsInfo", "TaskId", });
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1279 - 0
src/main/java/Im/Scrm/Ww/Proto/WGroupMemberAddNotice.java

@@ -0,0 +1,1279 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGroupMemberAddNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGroupMemberAddNotice {
+  private WGroupMemberAddNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GroupMemberAddNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 群聊remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The convName.
+     */
+    java.lang.String getConvName();
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The bytes for convName.
+     */
+    com.google.protobuf.ByteString
+        getConvNameBytes();
+
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> 
+        getMembersList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index);
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    int getMembersCount();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage}
+   */
+  public  static final class GroupMemberAddNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage)
+      GroupMemberAddNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GroupMemberAddNoticeMessage.newBuilder() to construct.
+    private GroupMemberAddNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GroupMemberAddNoticeMessage() {
+      convName_ = "";
+      members_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GroupMemberAddNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GroupMemberAddNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              convName_ = s;
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              members_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          members_ = java.util.Collections.unmodifiableList(members_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGroupMemberAddNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGroupMemberAddNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.class, Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 群聊remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int CONVNAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object convName_;
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The convName.
+     */
+    public java.lang.String getConvName() {
+      java.lang.Object ref = convName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        convName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The bytes for convName.
+     */
+    public com.google.protobuf.ByteString
+        getConvNameBytes() {
+      java.lang.Object ref = convName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        convName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MEMBERS_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_;
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public int getMembersCount() {
+      return members_.size();
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+      return members_.get(index);
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index) {
+      return members_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (!getConvNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, convName_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        output.writeMessage(4, members_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (!getConvNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, convName_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, members_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage other = (Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (!getConvName()
+          .equals(other.getConvName())) return false;
+      if (!getMembersList()
+          .equals(other.getMembersList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + CONVNAME_FIELD_NUMBER;
+      hash = (53 * hash) + getConvName().hashCode();
+      if (getMembersCount() > 0) {
+        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
+        hash = (53 * hash) + getMembersList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage)
+        Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGroupMemberAddNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGroupMemberAddNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.class, Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMembersFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        convName_ = "";
+
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          membersBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGroupMemberAddNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage result = new Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.convName_ = convName_;
+        if (membersBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            members_ = java.util.Collections.unmodifiableList(members_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.members_ = members_;
+        } else {
+          result.members_ = membersBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (!other.getConvName().isEmpty()) {
+          convName_ = other.convName_;
+          onChanged();
+        }
+        if (membersBuilder_ == null) {
+          if (!other.members_.isEmpty()) {
+            if (members_.isEmpty()) {
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMembersIsMutable();
+              members_.addAll(other.members_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.members_.isEmpty()) {
+            if (membersBuilder_.isEmpty()) {
+              membersBuilder_.dispose();
+              membersBuilder_ = null;
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              membersBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMembersFieldBuilder() : null;
+            } else {
+              membersBuilder_.addAllMessages(other.members_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object convName_ = "";
+      /**
+       * <code>string ConvName = 3;</code>
+       * @return The convName.
+       */
+      public java.lang.String getConvName() {
+        java.lang.Object ref = convName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          convName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @return The bytes for convName.
+       */
+      public com.google.protobuf.ByteString
+          getConvNameBytes() {
+        java.lang.Object ref = convName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          convName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @param value The convName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        convName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvName() {
+        
+        convName_ = getDefaultInstance().getConvName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @param value The bytes for convName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        convName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_ =
+        java.util.Collections.emptyList();
+      private void ensureMembersIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>(members_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> membersBuilder_;
+
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+        if (membersBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(members_);
+        } else {
+          return membersBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public int getMembersCount() {
+        if (membersBuilder_ == null) {
+          return members_.size();
+        } else {
+          return membersBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);
+        } else {
+          return membersBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.set(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addAllMembers(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> values) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, members_);
+          onChanged();
+        } else {
+          membersBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder clearMembers() {
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          membersBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder removeMembers(int index) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.remove(index);
+          onChanged();
+        } else {
+          membersBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder getMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+          int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);  } else {
+          return membersBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+           getMembersOrBuilderList() {
+        if (membersBuilder_ != null) {
+          return membersBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(members_);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder() {
+        return getMembersFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder> 
+           getMembersBuilderList() {
+        return getMembersFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+          getMembersFieldBuilder() {
+        if (membersBuilder_ == null) {
+          membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder>(
+                  members_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          members_ = null;
+        }
+        return membersBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GroupMemberAddNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GroupMemberAddNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GroupMemberAddNoticeMessage>() {
+      @java.lang.Override
+      public GroupMemberAddNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GroupMemberAddNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GroupMemberAddNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GroupMemberAddNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGroupMemberAddNotice.GroupMemberAddNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\033WGroupMemberAddNotice.proto\022\020Im.Scrm.W" +
+      "w.Proto\032\035WConversationPushNotice.proto\"\203" +
+      "\001\n\033GroupMemberAddNoticeMessage\022\014\n\004WxId\030\001" +
+      " \001(\003\022\016\n\006ConvId\030\002 \001(\003\022\020\n\010ConvName\030\003 \001(\t\0224" +
+      "\n\007Members\030\004 \003(\0132#.Im.Scrm.Ww.Proto.ConvM" +
+      "emberMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GroupMemberAddNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "ConvName", "Members", });
+    Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1279 - 0
src/main/java/Im/Scrm/Ww/Proto/WGroupMemberDelNotice.java

@@ -0,0 +1,1279 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGroupMemberDelNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGroupMemberDelNotice {
+  private WGroupMemberDelNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GroupMemberDelNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 群聊remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The convName.
+     */
+    java.lang.String getConvName();
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The bytes for convName.
+     */
+    com.google.protobuf.ByteString
+        getConvNameBytes();
+
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> 
+        getMembersList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index);
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    int getMembersCount();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage}
+   */
+  public  static final class GroupMemberDelNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage)
+      GroupMemberDelNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GroupMemberDelNoticeMessage.newBuilder() to construct.
+    private GroupMemberDelNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GroupMemberDelNoticeMessage() {
+      convName_ = "";
+      members_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GroupMemberDelNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GroupMemberDelNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              convName_ = s;
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              members_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          members_ = java.util.Collections.unmodifiableList(members_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGroupMemberDelNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGroupMemberDelNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.class, Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 群聊remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int CONVNAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object convName_;
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The convName.
+     */
+    public java.lang.String getConvName() {
+      java.lang.Object ref = convName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        convName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string ConvName = 3;</code>
+     * @return The bytes for convName.
+     */
+    public com.google.protobuf.ByteString
+        getConvNameBytes() {
+      java.lang.Object ref = convName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        convName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MEMBERS_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_;
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public int getMembersCount() {
+      return members_.size();
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+      return members_.get(index);
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index) {
+      return members_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (!getConvNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, convName_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        output.writeMessage(4, members_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (!getConvNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, convName_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, members_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage other = (Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (!getConvName()
+          .equals(other.getConvName())) return false;
+      if (!getMembersList()
+          .equals(other.getMembersList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + CONVNAME_FIELD_NUMBER;
+      hash = (53 * hash) + getConvName().hashCode();
+      if (getMembersCount() > 0) {
+        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
+        hash = (53 * hash) + getMembersList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage)
+        Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGroupMemberDelNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGroupMemberDelNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.class, Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMembersFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        convName_ = "";
+
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          membersBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGroupMemberDelNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage result = new Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.convName_ = convName_;
+        if (membersBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            members_ = java.util.Collections.unmodifiableList(members_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.members_ = members_;
+        } else {
+          result.members_ = membersBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (!other.getConvName().isEmpty()) {
+          convName_ = other.convName_;
+          onChanged();
+        }
+        if (membersBuilder_ == null) {
+          if (!other.members_.isEmpty()) {
+            if (members_.isEmpty()) {
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMembersIsMutable();
+              members_.addAll(other.members_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.members_.isEmpty()) {
+            if (membersBuilder_.isEmpty()) {
+              membersBuilder_.dispose();
+              membersBuilder_ = null;
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              membersBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMembersFieldBuilder() : null;
+            } else {
+              membersBuilder_.addAllMessages(other.members_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object convName_ = "";
+      /**
+       * <code>string ConvName = 3;</code>
+       * @return The convName.
+       */
+      public java.lang.String getConvName() {
+        java.lang.Object ref = convName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          convName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @return The bytes for convName.
+       */
+      public com.google.protobuf.ByteString
+          getConvNameBytes() {
+        java.lang.Object ref = convName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          convName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @param value The convName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        convName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvName() {
+        
+        convName_ = getDefaultInstance().getConvName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ConvName = 3;</code>
+       * @param value The bytes for convName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        convName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_ =
+        java.util.Collections.emptyList();
+      private void ensureMembersIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>(members_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> membersBuilder_;
+
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+        if (membersBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(members_);
+        } else {
+          return membersBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public int getMembersCount() {
+        if (membersBuilder_ == null) {
+          return members_.size();
+        } else {
+          return membersBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);
+        } else {
+          return membersBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.set(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder addAllMembers(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> values) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, members_);
+          onChanged();
+        } else {
+          membersBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder clearMembers() {
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          membersBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Builder removeMembers(int index) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.remove(index);
+          onChanged();
+        } else {
+          membersBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder getMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+          int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);  } else {
+          return membersBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+           getMembersOrBuilderList() {
+        if (membersBuilder_ != null) {
+          return membersBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(members_);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder() {
+        return getMembersFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder> 
+           getMembersBuilderList() {
+        return getMembersFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+          getMembersFieldBuilder() {
+        if (membersBuilder_ == null) {
+          membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder>(
+                  members_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          members_ = null;
+        }
+        return membersBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GroupMemberDelNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GroupMemberDelNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GroupMemberDelNoticeMessage>() {
+      @java.lang.Override
+      public GroupMemberDelNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GroupMemberDelNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GroupMemberDelNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GroupMemberDelNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGroupMemberDelNotice.GroupMemberDelNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\033WGroupMemberDelNotice.proto\022\020Im.Scrm.W" +
+      "w.Proto\032\035WConversationPushNotice.proto\"\203" +
+      "\001\n\033GroupMemberDelNoticeMessage\022\014\n\004WxId\030\001" +
+      " \001(\003\022\016\n\006ConvId\030\002 \001(\003\022\020\n\010ConvName\030\003 \001(\t\0224" +
+      "\n\007Members\030\004 \003(\0132#.Im.Scrm.Ww.Proto.ConvM" +
+      "emberMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GroupMemberDelNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "ConvName", "Members", });
+    Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1200 - 0
src/main/java/Im/Scrm/Ww/Proto/WGroupMemberPushNotice.java

@@ -0,0 +1,1200 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WGroupMemberPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WGroupMemberPushNotice {
+  private WGroupMemberPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface GroupMemberPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 群聊remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> 
+        getMembersList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index);
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    int getMembersCount();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList();
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage}
+   */
+  public  static final class GroupMemberPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage)
+      GroupMemberPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use GroupMemberPushNoticeMessage.newBuilder() to construct.
+    private GroupMemberPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private GroupMemberPushNoticeMessage() {
+      members_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new GroupMemberPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private GroupMemberPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              members_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          members_ = java.util.Collections.unmodifiableList(members_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WGroupMemberPushNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WGroupMemberPushNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.class, Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 群聊remoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int MEMBERS_FIELD_NUMBER = 3;
+    private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_;
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+        getMembersOrBuilderList() {
+      return members_;
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    public int getMembersCount() {
+      return members_.size();
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+      return members_.get(index);
+    }
+    /**
+     * <pre>
+     * 群成员
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+        int index) {
+      return members_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        output.writeMessage(3, members_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      for (int i = 0; i < members_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, members_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage other = (Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (!getMembersList()
+          .equals(other.getMembersList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      if (getMembersCount() > 0) {
+        hash = (37 * hash) + MEMBERS_FIELD_NUMBER;
+        hash = (53 * hash) + getMembersList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WGroupMemberPushNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WGroupMemberPushNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.class, Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMembersFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          membersBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WGroupMemberPushNotice.internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage result = new Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        if (membersBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            members_ = java.util.Collections.unmodifiableList(members_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.members_ = members_;
+        } else {
+          result.members_ = membersBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (membersBuilder_ == null) {
+          if (!other.members_.isEmpty()) {
+            if (members_.isEmpty()) {
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMembersIsMutable();
+              members_.addAll(other.members_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.members_.isEmpty()) {
+            if (membersBuilder_.isEmpty()) {
+              membersBuilder_.dispose();
+              membersBuilder_ = null;
+              members_ = other.members_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              membersBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMembersFieldBuilder() : null;
+            } else {
+              membersBuilder_.addAllMessages(other.members_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊remoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> members_ =
+        java.util.Collections.emptyList();
+      private void ensureMembersIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          members_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage>(members_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> membersBuilder_;
+
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> getMembersList() {
+        if (membersBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(members_);
+        } else {
+          return membersBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public int getMembersCount() {
+        if (membersBuilder_ == null) {
+          return members_.size();
+        } else {
+          return membersBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage getMembers(int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);
+        } else {
+          return membersBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.set(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder setMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder addMembers(Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage value) {
+        if (membersBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMembersIsMutable();
+          members_.add(index, value);
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder addMembers(
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder addMembers(
+          int index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder builderForValue) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          membersBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder addAllMembers(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage> values) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, members_);
+          onChanged();
+        } else {
+          membersBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder clearMembers() {
+        if (membersBuilder_ == null) {
+          members_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          membersBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Builder removeMembers(int index) {
+        if (membersBuilder_ == null) {
+          ensureMembersIsMutable();
+          members_.remove(index);
+          onChanged();
+        } else {
+          membersBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder getMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder getMembersOrBuilder(
+          int index) {
+        if (membersBuilder_ == null) {
+          return members_.get(index);  } else {
+          return membersBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+           getMembersOrBuilderList() {
+        if (membersBuilder_ != null) {
+          return membersBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(members_);
+        }
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder() {
+        return getMembersFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder addMembersBuilder(
+          int index) {
+        return getMembersFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 群成员
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.ConvMemberMessage Members = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder> 
+           getMembersBuilderList() {
+        return getMembersFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder> 
+          getMembersFieldBuilder() {
+        if (membersBuilder_ == null) {
+          membersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessage.Builder, Im.Scrm.Ww.Proto.WConversationPushNotice.ConvMemberMessageOrBuilder>(
+                  members_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          members_ = null;
+        }
+        return membersBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.GroupMemberPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<GroupMemberPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<GroupMemberPushNoticeMessage>() {
+      @java.lang.Override
+      public GroupMemberPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new GroupMemberPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<GroupMemberPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<GroupMemberPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WGroupMemberPushNotice.GroupMemberPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WGroupMemberPushNotice.proto\022\020Im.Scrm." +
+      "Ww.Proto\032\035WConversationPushNotice.proto\"" +
+      "\202\001\n\034GroupMemberPushNoticeMessage\022\014\n\004WxId" +
+      "\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\0224\n\007Members\030\003 \003(\0132" +
+      "#.Im.Scrm.Ww.Proto.ConvMemberMessage\022\016\n\006" +
+      "TaskId\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_GroupMemberPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "Members", "TaskId", });
+    Im.Scrm.Ww.Proto.WConversationPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 2962 - 0
src/main/java/Im/Scrm/Ww/Proto/WHistoryMsgPushNotice.java

@@ -0,0 +1,2962 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WHistoryMsgPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WHistoryMsgPushNotice {
+  private WHistoryMsgPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ChatMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ChatMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 1;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * 消息发送者Id
+     * </pre>
+     *
+     * <code>int64 SenderId = 2;</code>
+     * @return The senderId.
+     */
+    long getSenderId();
+
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    int getContentTypeValue();
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+     * @return The contentType.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType();
+
+    /**
+     * <pre>
+     * 内容 二进制流
+     * </pre>
+     *
+     * <code>bytes Content = 4;</code>
+     * @return The content.
+     */
+    com.google.protobuf.ByteString getContent();
+
+    /**
+     * <pre>
+     *服务端的主键id
+     * </pre>
+     *
+     * <code>int64 MsgId = 5;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 6;</code>
+     * @return The msgRemoteId.
+     */
+    long getMsgRemoteId();
+
+    /**
+     * <pre>
+     * 消息时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 7;</code>
+     * @return The createTime.
+     */
+    long getCreateTime();
+
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 8;</code>
+     * @return The senderName.
+     */
+    java.lang.String getSenderName();
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 8;</code>
+     * @return The bytes for senderName.
+     */
+    com.google.protobuf.ByteString
+        getSenderNameBytes();
+
+    /**
+     * <pre>
+     * 引用消息的id
+     * </pre>
+     *
+     * <code>int64 RefId = 9;</code>
+     * @return The refId.
+     */
+    long getRefId();
+
+    /**
+     * <code>int32 Flag = 10;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <code>bool IsRevoke = 11;</code>
+     * @return The isRevoke.
+     */
+    boolean getIsRevoke();
+
+    /**
+     * <pre>
+     * 会话的LocalId
+     * </pre>
+     *
+     * <code>int64 ConvLocalId = 12;</code>
+     * @return The convLocalId.
+     */
+    long getConvLocalId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ChatMessage}
+   */
+  public  static final class ChatMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ChatMessage)
+      ChatMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ChatMessage.newBuilder() to construct.
+    private ChatMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ChatMessage() {
+      contentType_ = 0;
+      content_ = com.google.protobuf.ByteString.EMPTY;
+      senderName_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ChatMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ChatMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              senderId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+              int rawValue = input.readEnum();
+
+              contentType_ = rawValue;
+              break;
+            }
+            case 34: {
+
+              content_ = input.readBytes();
+              break;
+            }
+            case 40: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              msgRemoteId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              createTime_ = input.readInt64();
+              break;
+            }
+            case 66: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              senderName_ = s;
+              break;
+            }
+            case 72: {
+
+              refId_ = input.readInt64();
+              break;
+            }
+            case 80: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 88: {
+
+              isRevoke_ = input.readBool();
+              break;
+            }
+            case 96: {
+
+              convLocalId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_ChatMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_ChatMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.class, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder.class);
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 1;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 1;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int SENDERID_FIELD_NUMBER = 2;
+    private long senderId_;
+    /**
+     * <pre>
+     * 消息发送者Id
+     * </pre>
+     *
+     * <code>int64 SenderId = 2;</code>
+     * @return The senderId.
+     */
+    public long getSenderId() {
+      return senderId_;
+    }
+
+    public static final int CONTENTTYPE_FIELD_NUMBER = 3;
+    private int contentType_;
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    public int getContentTypeValue() {
+      return contentType_;
+    }
+    /**
+     * <pre>
+     * 发送的消息内容类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+     * @return The contentType.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 4;
+    private com.google.protobuf.ByteString content_;
+    /**
+     * <pre>
+     * 内容 二进制流
+     * </pre>
+     *
+     * <code>bytes Content = 4;</code>
+     * @return The content.
+     */
+    public com.google.protobuf.ByteString getContent() {
+      return content_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 5;
+    private long msgId_;
+    /**
+     * <pre>
+     *服务端的主键id
+     * </pre>
+     *
+     * <code>int64 MsgId = 5;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int MSGREMOTEID_FIELD_NUMBER = 6;
+    private long msgRemoteId_;
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 6;</code>
+     * @return The msgRemoteId.
+     */
+    public long getMsgRemoteId() {
+      return msgRemoteId_;
+    }
+
+    public static final int CREATETIME_FIELD_NUMBER = 7;
+    private long createTime_;
+    /**
+     * <pre>
+     * 消息时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 7;</code>
+     * @return The createTime.
+     */
+    public long getCreateTime() {
+      return createTime_;
+    }
+
+    public static final int SENDERNAME_FIELD_NUMBER = 8;
+    private volatile java.lang.Object senderName_;
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 8;</code>
+     * @return The senderName.
+     */
+    public java.lang.String getSenderName() {
+      java.lang.Object ref = senderName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        senderName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 消息发送者名称
+     * </pre>
+     *
+     * <code>string SenderName = 8;</code>
+     * @return The bytes for senderName.
+     */
+    public com.google.protobuf.ByteString
+        getSenderNameBytes() {
+      java.lang.Object ref = senderName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        senderName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int REFID_FIELD_NUMBER = 9;
+    private long refId_;
+    /**
+     * <pre>
+     * 引用消息的id
+     * </pre>
+     *
+     * <code>int64 RefId = 9;</code>
+     * @return The refId.
+     */
+    public long getRefId() {
+      return refId_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 10;
+    private int flag_;
+    /**
+     * <code>int32 Flag = 10;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int ISREVOKE_FIELD_NUMBER = 11;
+    private boolean isRevoke_;
+    /**
+     * <code>bool IsRevoke = 11;</code>
+     * @return The isRevoke.
+     */
+    public boolean getIsRevoke() {
+      return isRevoke_;
+    }
+
+    public static final int CONVLOCALID_FIELD_NUMBER = 12;
+    private long convLocalId_;
+    /**
+     * <pre>
+     * 会话的LocalId
+     * </pre>
+     *
+     * <code>int64 ConvLocalId = 12;</code>
+     * @return The convLocalId.
+     */
+    public long getConvLocalId() {
+      return convLocalId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (convId_ != 0L) {
+        output.writeInt64(1, convId_);
+      }
+      if (senderId_ != 0L) {
+        output.writeInt64(2, senderId_);
+      }
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        output.writeEnum(3, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        output.writeBytes(4, content_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(5, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        output.writeInt64(6, msgRemoteId_);
+      }
+      if (createTime_ != 0L) {
+        output.writeInt64(7, createTime_);
+      }
+      if (!getSenderNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, senderName_);
+      }
+      if (refId_ != 0L) {
+        output.writeInt64(9, refId_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(10, flag_);
+      }
+      if (isRevoke_ != false) {
+        output.writeBool(11, isRevoke_);
+      }
+      if (convLocalId_ != 0L) {
+        output.writeInt64(12, convLocalId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, convId_);
+      }
+      if (senderId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, senderId_);
+      }
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(3, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(4, content_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, msgRemoteId_);
+      }
+      if (createTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, createTime_);
+      }
+      if (!getSenderNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, senderName_);
+      }
+      if (refId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(9, refId_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(10, flag_);
+      }
+      if (isRevoke_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(11, isRevoke_);
+      }
+      if (convLocalId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(12, convLocalId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage other = (Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage) obj;
+
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getSenderId()
+          != other.getSenderId()) return false;
+      if (contentType_ != other.contentType_) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getMsgRemoteId()
+          != other.getMsgRemoteId()) return false;
+      if (getCreateTime()
+          != other.getCreateTime()) return false;
+      if (!getSenderName()
+          .equals(other.getSenderName())) return false;
+      if (getRefId()
+          != other.getRefId()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getIsRevoke()
+          != other.getIsRevoke()) return false;
+      if (getConvLocalId()
+          != other.getConvLocalId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + SENDERID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSenderId());
+      hash = (37 * hash) + CONTENTTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + contentType_;
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + MSGREMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgRemoteId());
+      hash = (37 * hash) + CREATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCreateTime());
+      hash = (37 * hash) + SENDERNAME_FIELD_NUMBER;
+      hash = (53 * hash) + getSenderName().hashCode();
+      hash = (37 * hash) + REFID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefId());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + ISREVOKE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsRevoke());
+      hash = (37 * hash) + CONVLOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvLocalId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ChatMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ChatMessage)
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_ChatMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_ChatMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.class, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        convId_ = 0L;
+
+        senderId_ = 0L;
+
+        contentType_ = 0;
+
+        content_ = com.google.protobuf.ByteString.EMPTY;
+
+        msgId_ = 0L;
+
+        msgRemoteId_ = 0L;
+
+        createTime_ = 0L;
+
+        senderName_ = "";
+
+        refId_ = 0L;
+
+        flag_ = 0;
+
+        isRevoke_ = false;
+
+        convLocalId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_ChatMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage build() {
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage result = new Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage(this);
+        result.convId_ = convId_;
+        result.senderId_ = senderId_;
+        result.contentType_ = contentType_;
+        result.content_ = content_;
+        result.msgId_ = msgId_;
+        result.msgRemoteId_ = msgRemoteId_;
+        result.createTime_ = createTime_;
+        result.senderName_ = senderName_;
+        result.refId_ = refId_;
+        result.flag_ = flag_;
+        result.isRevoke_ = isRevoke_;
+        result.convLocalId_ = convLocalId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.getDefaultInstance()) return this;
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getSenderId() != 0L) {
+          setSenderId(other.getSenderId());
+        }
+        if (other.contentType_ != 0) {
+          setContentTypeValue(other.getContentTypeValue());
+        }
+        if (other.getContent() != com.google.protobuf.ByteString.EMPTY) {
+          setContent(other.getContent());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getMsgRemoteId() != 0L) {
+          setMsgRemoteId(other.getMsgRemoteId());
+        }
+        if (other.getCreateTime() != 0L) {
+          setCreateTime(other.getCreateTime());
+        }
+        if (!other.getSenderName().isEmpty()) {
+          senderName_ = other.senderName_;
+          onChanged();
+        }
+        if (other.getRefId() != 0L) {
+          setRefId(other.getRefId());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getIsRevoke() != false) {
+          setIsRevoke(other.getIsRevoke());
+        }
+        if (other.getConvLocalId() != 0L) {
+          setConvLocalId(other.getConvLocalId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 1;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 1;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long senderId_ ;
+      /**
+       * <pre>
+       * 消息发送者Id
+       * </pre>
+       *
+       * <code>int64 SenderId = 2;</code>
+       * @return The senderId.
+       */
+      public long getSenderId() {
+        return senderId_;
+      }
+      /**
+       * <pre>
+       * 消息发送者Id
+       * </pre>
+       *
+       * <code>int64 SenderId = 2;</code>
+       * @param value The senderId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSenderId(long value) {
+        
+        senderId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送者Id
+       * </pre>
+       *
+       * <code>int64 SenderId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSenderId() {
+        
+        senderId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int contentType_ = 0;
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+       * @return The enum numeric value on the wire for contentType.
+       */
+      public int getContentTypeValue() {
+        return contentType_;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+       * @param value The enum numeric value on the wire for contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentTypeValue(int value) {
+        contentType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+       * @return The contentType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+       * @param value The contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentType(Im.Scrm.Ww.Proto.WTransport.EnumContentType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        contentType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 发送的消息内容类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContentType() {
+        
+        contentType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY;
+      /**
+       * <pre>
+       * 内容 二进制流
+       * </pre>
+       *
+       * <code>bytes Content = 4;</code>
+       * @return The content.
+       */
+      public com.google.protobuf.ByteString getContent() {
+        return content_;
+      }
+      /**
+       * <pre>
+       * 内容 二进制流
+       * </pre>
+       *
+       * <code>bytes Content = 4;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 内容 二进制流
+       * </pre>
+       *
+       * <code>bytes Content = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 5;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 5;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgRemoteId_ ;
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 6;</code>
+       * @return The msgRemoteId.
+       */
+      public long getMsgRemoteId() {
+        return msgRemoteId_;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 6;</code>
+       * @param value The msgRemoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgRemoteId(long value) {
+        
+        msgRemoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgRemoteId() {
+        
+        msgRemoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long createTime_ ;
+      /**
+       * <pre>
+       * 消息时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 7;</code>
+       * @return The createTime.
+       */
+      public long getCreateTime() {
+        return createTime_;
+      }
+      /**
+       * <pre>
+       * 消息时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 7;</code>
+       * @param value The createTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCreateTime(long value) {
+        
+        createTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCreateTime() {
+        
+        createTime_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object senderName_ = "";
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 8;</code>
+       * @return The senderName.
+       */
+      public java.lang.String getSenderName() {
+        java.lang.Object ref = senderName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          senderName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 8;</code>
+       * @return The bytes for senderName.
+       */
+      public com.google.protobuf.ByteString
+          getSenderNameBytes() {
+        java.lang.Object ref = senderName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          senderName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 8;</code>
+       * @param value The senderName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSenderName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        senderName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSenderName() {
+        
+        senderName_ = getDefaultInstance().getSenderName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送者名称
+       * </pre>
+       *
+       * <code>string SenderName = 8;</code>
+       * @param value The bytes for senderName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSenderNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        senderName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long refId_ ;
+      /**
+       * <pre>
+       * 引用消息的id
+       * </pre>
+       *
+       * <code>int64 RefId = 9;</code>
+       * @return The refId.
+       */
+      public long getRefId() {
+        return refId_;
+      }
+      /**
+       * <pre>
+       * 引用消息的id
+       * </pre>
+       *
+       * <code>int64 RefId = 9;</code>
+       * @param value The refId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefId(long value) {
+        
+        refId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 引用消息的id
+       * </pre>
+       *
+       * <code>int64 RefId = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefId() {
+        
+        refId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <code>int32 Flag = 10;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <code>int32 Flag = 10;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Flag = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private boolean isRevoke_ ;
+      /**
+       * <code>bool IsRevoke = 11;</code>
+       * @return The isRevoke.
+       */
+      public boolean getIsRevoke() {
+        return isRevoke_;
+      }
+      /**
+       * <code>bool IsRevoke = 11;</code>
+       * @param value The isRevoke to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsRevoke(boolean value) {
+        
+        isRevoke_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool IsRevoke = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsRevoke() {
+        
+        isRevoke_ = false;
+        onChanged();
+        return this;
+      }
+
+      private long convLocalId_ ;
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 12;</code>
+       * @return The convLocalId.
+       */
+      public long getConvLocalId() {
+        return convLocalId_;
+      }
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 12;</code>
+       * @param value The convLocalId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvLocalId(long value) {
+        
+        convLocalId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvLocalId() {
+        
+        convLocalId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ChatMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ChatMessage)
+    private static final Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ChatMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ChatMessage>() {
+      @java.lang.Override
+      public ChatMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ChatMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ChatMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ChatMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface HistoryMsgPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> 
+        getMessagesList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getMessages(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    int getMessagesCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+        getMessagesOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder getMessagesOrBuilder(
+        int index);
+
+    /**
+     * <pre>
+     *int32 Size = 3; // 页大小,固定20
+     * </pre>
+     *
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    int getCount();
+
+    /**
+     * <pre>
+     *int32 Page = 5; // 页码,从0开始
+     * </pre>
+     *
+     * <code>int64 ConvId = 6;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>bool HasMore = 7;</code>
+     * @return The hasMore.
+     */
+    boolean getHasMore();
+
+    /**
+     * <pre>
+     * 会话的LocalId
+     * </pre>
+     *
+     * <code>int64 ConvLocalId = 8;</code>
+     * @return The convLocalId.
+     */
+    long getConvLocalId();
+
+    /**
+     * <code>int64 TaskId = 9;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage}
+   */
+  public  static final class HistoryMsgPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage)
+      HistoryMsgPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use HistoryMsgPushNoticeMessage.newBuilder() to construct.
+    private HistoryMsgPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private HistoryMsgPushNoticeMessage() {
+      messages_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new HistoryMsgPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private HistoryMsgPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                messages_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              messages_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 32: {
+
+              count_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              hasMore_ = input.readBool();
+              break;
+            }
+            case 64: {
+
+              convLocalId_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          messages_ = java.util.Collections.unmodifiableList(messages_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.class, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int MESSAGES_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> messages_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> getMessagesList() {
+      return messages_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+        getMessagesOrBuilderList() {
+      return messages_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    public int getMessagesCount() {
+      return messages_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getMessages(int index) {
+      return messages_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder getMessagesOrBuilder(
+        int index) {
+      return messages_.get(index);
+    }
+
+    public static final int COUNT_FIELD_NUMBER = 4;
+    private int count_;
+    /**
+     * <pre>
+     *int32 Size = 3; // 页大小,固定20
+     * </pre>
+     *
+     * <code>int32 Count = 4;</code>
+     * @return The count.
+     */
+    public int getCount() {
+      return count_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 6;
+    private long convId_;
+    /**
+     * <pre>
+     *int32 Page = 5; // 页码,从0开始
+     * </pre>
+     *
+     * <code>int64 ConvId = 6;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int HASMORE_FIELD_NUMBER = 7;
+    private boolean hasMore_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>bool HasMore = 7;</code>
+     * @return The hasMore.
+     */
+    public boolean getHasMore() {
+      return hasMore_;
+    }
+
+    public static final int CONVLOCALID_FIELD_NUMBER = 8;
+    private long convLocalId_;
+    /**
+     * <pre>
+     * 会话的LocalId
+     * </pre>
+     *
+     * <code>int64 ConvLocalId = 8;</code>
+     * @return The convLocalId.
+     */
+    public long getConvLocalId() {
+      return convLocalId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 9;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 9;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < messages_.size(); i++) {
+        output.writeMessage(2, messages_.get(i));
+      }
+      if (count_ != 0) {
+        output.writeInt32(4, count_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(6, convId_);
+      }
+      if (hasMore_ != false) {
+        output.writeBool(7, hasMore_);
+      }
+      if (convLocalId_ != 0L) {
+        output.writeInt64(8, convLocalId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(9, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < messages_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, messages_.get(i));
+      }
+      if (count_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, count_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, convId_);
+      }
+      if (hasMore_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(7, hasMore_);
+      }
+      if (convLocalId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, convLocalId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(9, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage other = (Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getMessagesList()
+          .equals(other.getMessagesList())) return false;
+      if (getCount()
+          != other.getCount()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getHasMore()
+          != other.getHasMore()) return false;
+      if (getConvLocalId()
+          != other.getConvLocalId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getMessagesCount() > 0) {
+        hash = (37 * hash) + MESSAGES_FIELD_NUMBER;
+        hash = (53 * hash) + getMessagesList().hashCode();
+      }
+      hash = (37 * hash) + COUNT_FIELD_NUMBER;
+      hash = (53 * hash) + getCount();
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + HASMORE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getHasMore());
+      hash = (37 * hash) + CONVLOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvLocalId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.class, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMessagesFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (messagesBuilder_ == null) {
+          messages_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          messagesBuilder_.clear();
+        }
+        count_ = 0;
+
+        convId_ = 0L;
+
+        hasMore_ = false;
+
+        convLocalId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage result = new Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (messagesBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            messages_ = java.util.Collections.unmodifiableList(messages_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.messages_ = messages_;
+        } else {
+          result.messages_ = messagesBuilder_.build();
+        }
+        result.count_ = count_;
+        result.convId_ = convId_;
+        result.hasMore_ = hasMore_;
+        result.convLocalId_ = convLocalId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (messagesBuilder_ == null) {
+          if (!other.messages_.isEmpty()) {
+            if (messages_.isEmpty()) {
+              messages_ = other.messages_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMessagesIsMutable();
+              messages_.addAll(other.messages_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.messages_.isEmpty()) {
+            if (messagesBuilder_.isEmpty()) {
+              messagesBuilder_.dispose();
+              messagesBuilder_ = null;
+              messages_ = other.messages_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              messagesBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMessagesFieldBuilder() : null;
+            } else {
+              messagesBuilder_.addAllMessages(other.messages_);
+            }
+          }
+        }
+        if (other.getCount() != 0) {
+          setCount(other.getCount());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getHasMore() != false) {
+          setHasMore(other.getHasMore());
+        }
+        if (other.getConvLocalId() != 0L) {
+          setConvLocalId(other.getConvLocalId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> messages_ =
+        java.util.Collections.emptyList();
+      private void ensureMessagesIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          messages_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage>(messages_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> messagesBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> getMessagesList() {
+        if (messagesBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(messages_);
+        } else {
+          return messagesBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public int getMessagesCount() {
+        if (messagesBuilder_ == null) {
+          return messages_.size();
+        } else {
+          return messagesBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getMessages(int index) {
+        if (messagesBuilder_ == null) {
+          return messages_.get(index);
+        } else {
+          return messagesBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder setMessages(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage value) {
+        if (messagesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMessagesIsMutable();
+          messages_.set(index, value);
+          onChanged();
+        } else {
+          messagesBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder setMessages(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder builderForValue) {
+        if (messagesBuilder_ == null) {
+          ensureMessagesIsMutable();
+          messages_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          messagesBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder addMessages(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage value) {
+        if (messagesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMessagesIsMutable();
+          messages_.add(value);
+          onChanged();
+        } else {
+          messagesBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder addMessages(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage value) {
+        if (messagesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMessagesIsMutable();
+          messages_.add(index, value);
+          onChanged();
+        } else {
+          messagesBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder addMessages(
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder builderForValue) {
+        if (messagesBuilder_ == null) {
+          ensureMessagesIsMutable();
+          messages_.add(builderForValue.build());
+          onChanged();
+        } else {
+          messagesBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder addMessages(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder builderForValue) {
+        if (messagesBuilder_ == null) {
+          ensureMessagesIsMutable();
+          messages_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          messagesBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder addAllMessages(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> values) {
+        if (messagesBuilder_ == null) {
+          ensureMessagesIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, messages_);
+          onChanged();
+        } else {
+          messagesBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder clearMessages() {
+        if (messagesBuilder_ == null) {
+          messages_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          messagesBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Builder removeMessages(int index) {
+        if (messagesBuilder_ == null) {
+          ensureMessagesIsMutable();
+          messages_.remove(index);
+          onChanged();
+        } else {
+          messagesBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder getMessagesBuilder(
+          int index) {
+        return getMessagesFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder getMessagesOrBuilder(
+          int index) {
+        if (messagesBuilder_ == null) {
+          return messages_.get(index);  } else {
+          return messagesBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+           getMessagesOrBuilderList() {
+        if (messagesBuilder_ != null) {
+          return messagesBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(messages_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder addMessagesBuilder() {
+        return getMessagesFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder addMessagesBuilder(
+          int index) {
+        return getMessagesFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Messages = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder> 
+           getMessagesBuilderList() {
+        return getMessagesFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+          getMessagesFieldBuilder() {
+        if (messagesBuilder_ == null) {
+          messagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder>(
+                  messages_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          messages_ = null;
+        }
+        return messagesBuilder_;
+      }
+
+      private int count_ ;
+      /**
+       * <pre>
+       *int32 Size = 3; // 页大小,固定20
+       * </pre>
+       *
+       * <code>int32 Count = 4;</code>
+       * @return The count.
+       */
+      public int getCount() {
+        return count_;
+      }
+      /**
+       * <pre>
+       *int32 Size = 3; // 页大小,固定20
+       * </pre>
+       *
+       * <code>int32 Count = 4;</code>
+       * @param value The count to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCount(int value) {
+        
+        count_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *int32 Size = 3; // 页大小,固定20
+       * </pre>
+       *
+       * <code>int32 Count = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCount() {
+        
+        count_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       *int32 Page = 5; // 页码,从0开始
+       * </pre>
+       *
+       * <code>int64 ConvId = 6;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       *int32 Page = 5; // 页码,从0开始
+       * </pre>
+       *
+       * <code>int64 ConvId = 6;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *int32 Page = 5; // 页码,从0开始
+       * </pre>
+       *
+       * <code>int64 ConvId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean hasMore_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>bool HasMore = 7;</code>
+       * @return The hasMore.
+       */
+      public boolean getHasMore() {
+        return hasMore_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>bool HasMore = 7;</code>
+       * @param value The hasMore to set.
+       * @return This builder for chaining.
+       */
+      public Builder setHasMore(boolean value) {
+        
+        hasMore_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>bool HasMore = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearHasMore() {
+        
+        hasMore_ = false;
+        onChanged();
+        return this;
+      }
+
+      private long convLocalId_ ;
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 8;</code>
+       * @return The convLocalId.
+       */
+      public long getConvLocalId() {
+        return convLocalId_;
+      }
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 8;</code>
+       * @param value The convLocalId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvLocalId(long value) {
+        
+        convLocalId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话的LocalId
+       * </pre>
+       *
+       * <code>int64 ConvLocalId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvLocalId() {
+        
+        convLocalId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 9;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 9;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.HistoryMsgPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<HistoryMsgPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<HistoryMsgPushNoticeMessage>() {
+      @java.lang.Override
+      public HistoryMsgPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new HistoryMsgPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<HistoryMsgPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<HistoryMsgPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.HistoryMsgPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ChatMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ChatMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\033WHistoryMsgPushNotice.proto\022\020Im.Scrm.W" +
+      "w.Proto\032\020WTransport.proto\"\210\002\n\013ChatMessag" +
+      "e\022\016\n\006ConvId\030\001 \001(\003\022\020\n\010SenderId\030\002 \001(\003\0226\n\013C" +
+      "ontentType\030\003 \001(\0162!.Im.Scrm.Ww.Proto.Enum" +
+      "ContentType\022\017\n\007Content\030\004 \001(\014\022\r\n\005MsgId\030\005 " +
+      "\001(\003\022\023\n\013MsgRemoteId\030\006 \001(\003\022\022\n\nCreateTime\030\007" +
+      " \001(\003\022\022\n\nSenderName\030\010 \001(\t\022\r\n\005RefId\030\t \001(\003\022" +
+      "\014\n\004Flag\030\n \001(\005\022\020\n\010IsRevoke\030\013 \001(\010\022\023\n\013ConvL" +
+      "ocalId\030\014 \001(\003\"\261\001\n\033HistoryMsgPushNoticeMes" +
+      "sage\022\014\n\004WxId\030\001 \001(\003\022/\n\010Messages\030\002 \003(\0132\035.I" +
+      "m.Scrm.Ww.Proto.ChatMessage\022\r\n\005Count\030\004 \001" +
+      "(\005\022\016\n\006ConvId\030\006 \001(\003\022\017\n\007HasMore\030\007 \001(\010\022\023\n\013C" +
+      "onvLocalId\030\010 \001(\003\022\016\n\006TaskId\030\t \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ChatMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ChatMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ChatMessage_descriptor,
+        new java.lang.String[] { "ConvId", "SenderId", "ContentType", "Content", "MsgId", "MsgRemoteId", "CreateTime", "SenderName", "RefId", "Flag", "IsRevoke", "ConvLocalId", });
+    internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_HistoryMsgPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Messages", "Count", "ConvId", "HasMore", "ConvLocalId", "TaskId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1010 - 0
src/main/java/Im/Scrm/Ww/Proto/WJoinGroupInviteTask.java

@@ -0,0 +1,1010 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WJoinGroupInviteTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WJoinGroupInviteTask {
+  private WJoinGroupInviteTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface JoinGroupInviteTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     *消息发送者RemoteId
+     * </pre>
+     *
+     * <code>int64 Sender = 3;</code>
+     * @return The sender.
+     */
+    long getSender();
+
+    /**
+     * <pre>
+     * 邀请链接
+     * </pre>
+     *
+     * <code>string Url = 4;</code>
+     * @return The url.
+     */
+    java.lang.String getUrl();
+    /**
+     * <pre>
+     * 邀请链接
+     * </pre>
+     *
+     * <code>string Url = 4;</code>
+     * @return The bytes for url.
+     */
+    com.google.protobuf.ByteString
+        getUrlBytes();
+
+    /**
+     * <pre>
+     * 发送给手机端的时候需要赋值,
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage}
+   */
+  public  static final class JoinGroupInviteTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage)
+      JoinGroupInviteTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use JoinGroupInviteTaskMessage.newBuilder() to construct.
+    private JoinGroupInviteTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private JoinGroupInviteTaskMessage() {
+      url_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new JoinGroupInviteTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private JoinGroupInviteTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              sender_ = input.readInt64();
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              url_ = s;
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WJoinGroupInviteTask.internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WJoinGroupInviteTask.internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.class, Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int SENDER_FIELD_NUMBER = 3;
+    private long sender_;
+    /**
+     * <pre>
+     *消息发送者RemoteId
+     * </pre>
+     *
+     * <code>int64 Sender = 3;</code>
+     * @return The sender.
+     */
+    public long getSender() {
+      return sender_;
+    }
+
+    public static final int URL_FIELD_NUMBER = 4;
+    private volatile java.lang.Object url_;
+    /**
+     * <pre>
+     * 邀请链接
+     * </pre>
+     *
+     * <code>string Url = 4;</code>
+     * @return The url.
+     */
+    public java.lang.String getUrl() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        url_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 邀请链接
+     * </pre>
+     *
+     * <code>string Url = 4;</code>
+     * @return The bytes for url.
+     */
+    public com.google.protobuf.ByteString
+        getUrlBytes() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        url_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <pre>
+     * 发送给手机端的时候需要赋值,
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (sender_ != 0L) {
+        output.writeInt64(3, sender_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, url_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (sender_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, sender_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, url_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage other = (Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getSender()
+          != other.getSender()) return false;
+      if (!getUrl()
+          .equals(other.getUrl())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + SENDER_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSender());
+      hash = (37 * hash) + URL_FIELD_NUMBER;
+      hash = (53 * hash) + getUrl().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage)
+        Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WJoinGroupInviteTask.internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WJoinGroupInviteTask.internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.class, Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        sender_ = 0L;
+
+        url_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WJoinGroupInviteTask.internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage build() {
+        Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage result = new Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.sender_ = sender_;
+        result.url_ = url_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getSender() != 0L) {
+          setSender(other.getSender());
+        }
+        if (!other.getUrl().isEmpty()) {
+          url_ = other.url_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long sender_ ;
+      /**
+       * <pre>
+       *消息发送者RemoteId
+       * </pre>
+       *
+       * <code>int64 Sender = 3;</code>
+       * @return The sender.
+       */
+      public long getSender() {
+        return sender_;
+      }
+      /**
+       * <pre>
+       *消息发送者RemoteId
+       * </pre>
+       *
+       * <code>int64 Sender = 3;</code>
+       * @param value The sender to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSender(long value) {
+        
+        sender_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *消息发送者RemoteId
+       * </pre>
+       *
+       * <code>int64 Sender = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSender() {
+        
+        sender_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object url_ = "";
+      /**
+       * <pre>
+       * 邀请链接
+       * </pre>
+       *
+       * <code>string Url = 4;</code>
+       * @return The url.
+       */
+      public java.lang.String getUrl() {
+        java.lang.Object ref = url_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          url_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 邀请链接
+       * </pre>
+       *
+       * <code>string Url = 4;</code>
+       * @return The bytes for url.
+       */
+      public com.google.protobuf.ByteString
+          getUrlBytes() {
+        java.lang.Object ref = url_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          url_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 邀请链接
+       * </pre>
+       *
+       * <code>string Url = 4;</code>
+       * @param value The url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        url_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 邀请链接
+       * </pre>
+       *
+       * <code>string Url = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUrl() {
+        
+        url_ = getDefaultInstance().getUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 邀请链接
+       * </pre>
+       *
+       * <code>string Url = 4;</code>
+       * @param value The bytes for url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        url_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * 发送给手机端的时候需要赋值,
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * 发送给手机端的时候需要赋值,
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 发送给手机端的时候需要赋值,
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.JoinGroupInviteTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<JoinGroupInviteTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<JoinGroupInviteTaskMessage>() {
+      @java.lang.Override
+      public JoinGroupInviteTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new JoinGroupInviteTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<JoinGroupInviteTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<JoinGroupInviteTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WJoinGroupInviteTask.JoinGroupInviteTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\032WJoinGroupInviteTask.proto\022\020Im.Scrm.Ww" +
+      ".Proto\032\020WTransport.proto\"g\n\032JoinGroupInv" +
+      "iteTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002" +
+      " \001(\003\022\016\n\006Sender\030\003 \001(\003\022\013\n\003Url\030\004 \001(\t\022\016\n\006Tas" +
+      "kId\030\005 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_JoinGroupInviteTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "Sender", "Url", "TaskId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 983 - 0
src/main/java/Im/Scrm/Ww/Proto/WMsgRevokeNotice.java

@@ -0,0 +1,983 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WMsgRevokeNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WMsgRevokeNotice {
+  private WMsgRevokeNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface MsgRevokeNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     *服务端的主键id
+     * </pre>
+     *
+     * <code>int64 MsgId = 3;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 4;</code>
+     * @return The msgRemoteId.
+     */
+    long getMsgRemoteId();
+
+    /**
+     * <code>int32 Flag = 5;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <pre>
+     * 会话LocalId
+     * </pre>
+     *
+     * <code>int64 LocalId = 6;</code>
+     * @return The localId.
+     */
+    long getLocalId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage}
+   */
+  public  static final class MsgRevokeNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage)
+      MsgRevokeNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use MsgRevokeNoticeMessage.newBuilder() to construct.
+    private MsgRevokeNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private MsgRevokeNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new MsgRevokeNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private MsgRevokeNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              msgRemoteId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              localId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WMsgRevokeNotice.internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WMsgRevokeNotice.internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.class, Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 3;
+    private long msgId_;
+    /**
+     * <pre>
+     *服务端的主键id
+     * </pre>
+     *
+     * <code>int64 MsgId = 3;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int MSGREMOTEID_FIELD_NUMBER = 4;
+    private long msgRemoteId_;
+    /**
+     * <pre>
+     * 消息唯一id
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 4;</code>
+     * @return The msgRemoteId.
+     */
+    public long getMsgRemoteId() {
+      return msgRemoteId_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 5;
+    private int flag_;
+    /**
+     * <code>int32 Flag = 5;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int LOCALID_FIELD_NUMBER = 6;
+    private long localId_;
+    /**
+     * <pre>
+     * 会话LocalId
+     * </pre>
+     *
+     * <code>int64 LocalId = 6;</code>
+     * @return The localId.
+     */
+    public long getLocalId() {
+      return localId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(3, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        output.writeInt64(4, msgRemoteId_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(5, flag_);
+      }
+      if (localId_ != 0L) {
+        output.writeInt64(6, localId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, msgRemoteId_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, flag_);
+      }
+      if (localId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, localId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage other = (Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getMsgRemoteId()
+          != other.getMsgRemoteId()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getLocalId()
+          != other.getLocalId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + MSGREMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgRemoteId());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + LOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getLocalId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage)
+        Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeNotice.internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeNotice.internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.class, Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        msgId_ = 0L;
+
+        msgRemoteId_ = 0L;
+
+        flag_ = 0;
+
+        localId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeNotice.internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage result = new Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.msgId_ = msgId_;
+        result.msgRemoteId_ = msgRemoteId_;
+        result.flag_ = flag_;
+        result.localId_ = localId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getMsgRemoteId() != 0L) {
+          setMsgRemoteId(other.getMsgRemoteId());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getLocalId() != 0L) {
+          setLocalId(other.getLocalId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 3;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 3;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *服务端的主键id
+       * </pre>
+       *
+       * <code>int64 MsgId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgRemoteId_ ;
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 4;</code>
+       * @return The msgRemoteId.
+       */
+      public long getMsgRemoteId() {
+        return msgRemoteId_;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 4;</code>
+       * @param value The msgRemoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgRemoteId(long value) {
+        
+        msgRemoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息唯一id
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgRemoteId() {
+        
+        msgRemoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <code>int32 Flag = 5;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <code>int32 Flag = 5;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Flag = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long localId_ ;
+      /**
+       * <pre>
+       * 会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 6;</code>
+       * @return The localId.
+       */
+      public long getLocalId() {
+        return localId_;
+      }
+      /**
+       * <pre>
+       * 会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 6;</code>
+       * @param value The localId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLocalId(long value) {
+        
+        localId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLocalId() {
+        
+        localId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.MsgRevokeNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<MsgRevokeNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<MsgRevokeNoticeMessage>() {
+      @java.lang.Override
+      public MsgRevokeNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new MsgRevokeNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<MsgRevokeNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<MsgRevokeNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WMsgRevokeNotice.MsgRevokeNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\026WMsgRevokeNotice.proto\022\020Im.Scrm.Ww.Pro" +
+      "to\032\020WTransport.proto\"y\n\026MsgRevokeNoticeM" +
+      "essage\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022\r\n\005" +
+      "MsgId\030\003 \001(\003\022\023\n\013MsgRemoteId\030\004 \001(\003\022\014\n\004Flag" +
+      "\030\005 \001(\005\022\017\n\007LocalId\030\006 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_MsgRevokeNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "MsgId", "MsgRemoteId", "Flag", "LocalId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 733 - 0
src/main/java/Im/Scrm/Ww/Proto/WMsgRevokeTask.java

@@ -0,0 +1,733 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WMsgRevokeTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WMsgRevokeTask {
+  private WMsgRevokeTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface MsgRevokeTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.MsgRevokeTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 消息remoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.MsgRevokeTaskMessage}
+   */
+  public  static final class MsgRevokeTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.MsgRevokeTaskMessage)
+      MsgRevokeTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use MsgRevokeTaskMessage.newBuilder() to construct.
+    private MsgRevokeTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private MsgRevokeTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new MsgRevokeTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private MsgRevokeTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WMsgRevokeTask.internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WMsgRevokeTask.internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.class, Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 消息remoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage other = (Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.MsgRevokeTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.MsgRevokeTaskMessage)
+        Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeTask.internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeTask.internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.class, Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeTask.internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage build() {
+        Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage result = new Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 消息remoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 消息remoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息remoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.MsgRevokeTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.MsgRevokeTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<MsgRevokeTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<MsgRevokeTaskMessage>() {
+      @java.lang.Override
+      public MsgRevokeTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new MsgRevokeTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<MsgRevokeTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<MsgRevokeTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WMsgRevokeTask.MsgRevokeTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\024WMsgRevokeTask.proto\022\020Im.Scrm.Ww.Proto" +
+      "\"F\n\024MsgRevokeTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\020" +
+      "\n\010RemoteId\030\002 \001(\003\022\016\n\006TaskId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_MsgRevokeTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 819 - 0
src/main/java/Im/Scrm/Ww/Proto/WNewCustomerAddedNotice.java

@@ -0,0 +1,819 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WNewCustomerAddedNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WNewCustomerAddedNotice {
+  private WNewCustomerAddedNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface NewCustomerAddedNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *int32 UnRead = 2; // 新客户未读数量
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+     * @return Whether the contact field is set.
+     */
+    boolean hasContact();
+    /**
+     * <pre>
+     *int32 UnRead = 2; // 新客户未读数量
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+     * @return The contact.
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContact();
+    /**
+     * <pre>
+     *int32 UnRead = 2; // 新客户未读数量
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage}
+   */
+  public  static final class NewCustomerAddedNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage)
+      NewCustomerAddedNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use NewCustomerAddedNoticeMessage.newBuilder() to construct.
+    private NewCustomerAddedNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private NewCustomerAddedNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new NewCustomerAddedNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private NewCustomerAddedNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder subBuilder = null;
+              if (contact_ != null) {
+                subBuilder = contact_.toBuilder();
+              }
+              contact_ = input.readMessage(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(contact_);
+                contact_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.class, Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTACT_FIELD_NUMBER = 3;
+    private Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage contact_;
+    /**
+     * <pre>
+     *int32 UnRead = 2; // 新客户未读数量
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+     * @return Whether the contact field is set.
+     */
+    public boolean hasContact() {
+      return contact_ != null;
+    }
+    /**
+     * <pre>
+     *int32 UnRead = 2; // 新客户未读数量
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+     * @return The contact.
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContact() {
+      return contact_ == null ? Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : contact_;
+    }
+    /**
+     * <pre>
+     *int32 UnRead = 2; // 新客户未读数量
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactOrBuilder() {
+      return getContact();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (contact_ != null) {
+        output.writeMessage(3, getContact());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (contact_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getContact());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage other = (Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (hasContact() != other.hasContact()) return false;
+      if (hasContact()) {
+        if (!getContact()
+            .equals(other.getContact())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (hasContact()) {
+        hash = (37 * hash) + CONTACT_FIELD_NUMBER;
+        hash = (53 * hash) + getContact().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage)
+        Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.class, Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (contactBuilder_ == null) {
+          contact_ = null;
+        } else {
+          contact_ = null;
+          contactBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage result = new Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage(this);
+        result.wxId_ = wxId_;
+        if (contactBuilder_ == null) {
+          result.contact_ = contact_;
+        } else {
+          result.contact_ = contactBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.hasContact()) {
+          mergeContact(other.getContact());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage contact_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> contactBuilder_;
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       * @return Whether the contact field is set.
+       */
+      public boolean hasContact() {
+        return contactBuilder_ != null || contact_ != null;
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       * @return The contact.
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContact() {
+        if (contactBuilder_ == null) {
+          return contact_ == null ? Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : contact_;
+        } else {
+          return contactBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      public Builder setContact(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          contact_ = value;
+          onChanged();
+        } else {
+          contactBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      public Builder setContact(
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactBuilder_ == null) {
+          contact_ = builderForValue.build();
+          onChanged();
+        } else {
+          contactBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      public Builder mergeContact(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactBuilder_ == null) {
+          if (contact_ != null) {
+            contact_ =
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.newBuilder(contact_).mergeFrom(value).buildPartial();
+          } else {
+            contact_ = value;
+          }
+          onChanged();
+        } else {
+          contactBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      public Builder clearContact() {
+        if (contactBuilder_ == null) {
+          contact_ = null;
+          onChanged();
+        } else {
+          contact_ = null;
+          contactBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder getContactBuilder() {
+        
+        onChanged();
+        return getContactFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactOrBuilder() {
+        if (contactBuilder_ != null) {
+          return contactBuilder_.getMessageOrBuilder();
+        } else {
+          return contact_ == null ?
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance() : contact_;
+        }
+      }
+      /**
+       * <pre>
+       *int32 UnRead = 2; // 新客户未读数量
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.CustomerMessage Contact = 3;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+          getContactFieldBuilder() {
+        if (contactBuilder_ == null) {
+          contactBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder>(
+                  getContact(),
+                  getParentForChildren(),
+                  isClean());
+          contact_ = null;
+        }
+        return contactBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.NewCustomerAddedNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<NewCustomerAddedNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<NewCustomerAddedNoticeMessage>() {
+      @java.lang.Override
+      public NewCustomerAddedNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new NewCustomerAddedNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<NewCustomerAddedNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<NewCustomerAddedNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WNewCustomerAddedNotice.NewCustomerAddedNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WNewCustomerAddedNotice.proto\022\020Im.Scrm" +
+      ".Ww.Proto\032\031WCustomerPushNotice.proto\"a\n\035" +
+      "NewCustomerAddedNoticeMessage\022\014\n\004WxId\030\001 " +
+      "\001(\003\0222\n\007Contact\030\003 \001(\0132!.Im.Scrm.Ww.Proto." +
+      "CustomerMessageb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_NewCustomerAddedNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Contact", });
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1110 - 0
src/main/java/Im/Scrm/Ww/Proto/WNewCustomerPushNotice.java

@@ -0,0 +1,1110 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WNewCustomerPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WNewCustomerPushNotice {
+  private WNewCustomerPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface NewCustomerPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> 
+        getContactsList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContacts(int index);
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    int getContactsCount();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+        getContactsOrBuilderList();
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactsOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage}
+   */
+  public  static final class NewCustomerPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage)
+      NewCustomerPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use NewCustomerPushNoticeMessage.newBuilder() to construct.
+    private NewCustomerPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private NewCustomerPushNoticeMessage() {
+      contacts_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new NewCustomerPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private NewCustomerPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                contacts_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              contacts_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          contacts_ = java.util.Collections.unmodifiableList(contacts_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WNewCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WNewCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.class, Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTACTS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> contacts_;
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> getContactsList() {
+      return contacts_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+        getContactsOrBuilderList() {
+      return contacts_;
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public int getContactsCount() {
+      return contacts_.size();
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContacts(int index) {
+      return contacts_.get(index);
+    }
+    /**
+     * <pre>
+     * 好友信息模型 多个
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactsOrBuilder(
+        int index) {
+      return contacts_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < contacts_.size(); i++) {
+        output.writeMessage(2, contacts_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < contacts_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, contacts_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage other = (Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getContactsList()
+          .equals(other.getContactsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getContactsCount() > 0) {
+        hash = (37 * hash) + CONTACTS_FIELD_NUMBER;
+        hash = (53 * hash) + getContactsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WNewCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WNewCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.class, Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getContactsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (contactsBuilder_ == null) {
+          contacts_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          contactsBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WNewCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage result = new Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (contactsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            contacts_ = java.util.Collections.unmodifiableList(contacts_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.contacts_ = contacts_;
+        } else {
+          result.contacts_ = contactsBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (contactsBuilder_ == null) {
+          if (!other.contacts_.isEmpty()) {
+            if (contacts_.isEmpty()) {
+              contacts_ = other.contacts_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureContactsIsMutable();
+              contacts_.addAll(other.contacts_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.contacts_.isEmpty()) {
+            if (contactsBuilder_.isEmpty()) {
+              contactsBuilder_.dispose();
+              contactsBuilder_ = null;
+              contacts_ = other.contacts_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              contactsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getContactsFieldBuilder() : null;
+            } else {
+              contactsBuilder_.addAllMessages(other.contacts_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> contacts_ =
+        java.util.Collections.emptyList();
+      private void ensureContactsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          contacts_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage>(contacts_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> contactsBuilder_;
+
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> getContactsList() {
+        if (contactsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(contacts_);
+        } else {
+          return contactsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public int getContactsCount() {
+        if (contactsBuilder_ == null) {
+          return contacts_.size();
+        } else {
+          return contactsBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage getContacts(int index) {
+        if (contactsBuilder_ == null) {
+          return contacts_.get(index);
+        } else {
+          return contactsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder setContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.set(index, value);
+          onChanged();
+        } else {
+          contactsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder setContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.add(value);
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage value) {
+        if (contactsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureContactsIsMutable();
+          contacts_.add(index, value);
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.add(builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addContacts(
+          int index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder builderForValue) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          contactsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder addAllContacts(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage> values) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, contacts_);
+          onChanged();
+        } else {
+          contactsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder clearContacts() {
+        if (contactsBuilder_ == null) {
+          contacts_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          contactsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Builder removeContacts(int index) {
+        if (contactsBuilder_ == null) {
+          ensureContactsIsMutable();
+          contacts_.remove(index);
+          onChanged();
+        } else {
+          contactsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder getContactsBuilder(
+          int index) {
+        return getContactsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder getContactsOrBuilder(
+          int index) {
+        if (contactsBuilder_ == null) {
+          return contacts_.get(index);  } else {
+          return contactsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+           getContactsOrBuilderList() {
+        if (contactsBuilder_ != null) {
+          return contactsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(contacts_);
+        }
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder addContactsBuilder() {
+        return getContactsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder addContactsBuilder(
+          int index) {
+        return getContactsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * 好友信息模型 多个
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.CustomerMessage Contacts = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder> 
+           getContactsBuilderList() {
+        return getContactsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder> 
+          getContactsFieldBuilder() {
+        if (contactsBuilder_ == null) {
+          contactsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessage.Builder, Im.Scrm.Ww.Proto.WCustomerPushNotice.CustomerMessageOrBuilder>(
+                  contacts_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          contacts_ = null;
+        }
+        return contactsBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.NewCustomerPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<NewCustomerPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<NewCustomerPushNoticeMessage>() {
+      @java.lang.Override
+      public NewCustomerPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new NewCustomerPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<NewCustomerPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<NewCustomerPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WNewCustomerPushNotice.NewCustomerPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WNewCustomerPushNotice.proto\022\020Im.Scrm." +
+      "Ww.Proto\032\031WCustomerPushNotice.proto\"q\n\034N" +
+      "ewCustomerPushNoticeMessage\022\014\n\004WxId\030\001 \001(" +
+      "\003\0223\n\010Contacts\030\002 \003(\0132!.Im.Scrm.Ww.Proto.C" +
+      "ustomerMessage\022\016\n\006TaskId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_NewCustomerPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Contacts", "TaskId", });
+    Im.Scrm.Ww.Proto.WCustomerPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 873 - 0
src/main/java/Im/Scrm/Ww/Proto/WOneWayCustomerPushNotice.java

@@ -0,0 +1,873 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WOneWayCustomerPushNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WOneWayCustomerPushNotice {
+  private WOneWayCustomerPushNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface OneWayCustomerPushNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 单向好友RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 Ids = 2;</code>
+     * @return A list containing the ids.
+     */
+    java.util.List<java.lang.Long> getIdsList();
+    /**
+     * <pre>
+     * 单向好友RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 Ids = 2;</code>
+     * @return The count of ids.
+     */
+    int getIdsCount();
+    /**
+     * <pre>
+     * 单向好友RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 Ids = 2;</code>
+     * @param index The index of the element to return.
+     * @return The ids at the given index.
+     */
+    long getIds(int index);
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage}
+   */
+  public  static final class OneWayCustomerPushNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage)
+      OneWayCustomerPushNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use OneWayCustomerPushNoticeMessage.newBuilder() to construct.
+    private OneWayCustomerPushNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private OneWayCustomerPushNoticeMessage() {
+      ids_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new OneWayCustomerPushNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private OneWayCustomerPushNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                ids_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              ids_.addLong(input.readInt64());
+              break;
+            }
+            case 18: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                ids_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                ids_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          ids_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.class, Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IDS_FIELD_NUMBER = 2;
+    private com.google.protobuf.Internal.LongList ids_;
+    /**
+     * <pre>
+     * 单向好友RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 Ids = 2;</code>
+     * @return A list containing the ids.
+     */
+    public java.util.List<java.lang.Long>
+        getIdsList() {
+      return ids_;
+    }
+    /**
+     * <pre>
+     * 单向好友RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 Ids = 2;</code>
+     * @return The count of ids.
+     */
+    public int getIdsCount() {
+      return ids_.size();
+    }
+    /**
+     * <pre>
+     * 单向好友RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 Ids = 2;</code>
+     * @param index The index of the element to return.
+     * @return The ids at the given index.
+     */
+    public long getIds(int index) {
+      return ids_.getLong(index);
+    }
+    private int idsMemoizedSerializedSize = -1;
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (getIdsList().size() > 0) {
+        output.writeUInt32NoTag(18);
+        output.writeUInt32NoTag(idsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < ids_.size(); i++) {
+        output.writeInt64NoTag(ids_.getLong(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < ids_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(ids_.getLong(i));
+        }
+        size += dataSize;
+        if (!getIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        idsMemoizedSerializedSize = dataSize;
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage other = (Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getIdsList()
+          .equals(other.getIdsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getIdsCount() > 0) {
+        hash = (37 * hash) + IDS_FIELD_NUMBER;
+        hash = (53 * hash) + getIdsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage)
+        Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.class, Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        ids_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage result = new Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          ids_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.ids_ = ids_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.ids_.isEmpty()) {
+          if (ids_.isEmpty()) {
+            ids_ = other.ids_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureIdsIsMutable();
+            ids_.addAll(other.ids_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList ids_ = emptyLongList();
+      private void ensureIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          ids_ = mutableCopy(ids_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @return A list containing the ids.
+       */
+      public java.util.List<java.lang.Long>
+          getIdsList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(ids_) : ids_;
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @return The count of ids.
+       */
+      public int getIdsCount() {
+        return ids_.size();
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @param index The index of the element to return.
+       * @return The ids at the given index.
+       */
+      public long getIds(int index) {
+        return ids_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @param index The index to set the value at.
+       * @param value The ids to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIds(
+          int index, long value) {
+        ensureIdsIsMutable();
+        ids_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @param value The ids to add.
+       * @return This builder for chaining.
+       */
+      public Builder addIds(long value) {
+        ensureIdsIsMutable();
+        ids_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @param values The ids to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, ids_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 单向好友RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 Ids = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIds() {
+        ids_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.OneWayCustomerPushNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<OneWayCustomerPushNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<OneWayCustomerPushNoticeMessage>() {
+      @java.lang.Override
+      public OneWayCustomerPushNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new OneWayCustomerPushNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<OneWayCustomerPushNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<OneWayCustomerPushNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WOneWayCustomerPushNotice.OneWayCustomerPushNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\037WOneWayCustomerPushNotice.proto\022\020Im.Sc" +
+      "rm.Ww.Proto\"L\n\037OneWayCustomerPushNoticeM" +
+      "essage\022\014\n\004WxId\030\001 \001(\003\022\013\n\003Ids\030\002 \003(\003\022\016\n\006Tas" +
+      "kId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_OneWayCustomerPushNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Ids", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1412 - 0
src/main/java/Im/Scrm/Ww/Proto/WPhoneActionTask.java

@@ -0,0 +1,1412 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPhoneActionTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPhoneActionTask {
+  private WPhoneActionTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  /**
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumPhoneAction}
+   */
+  public enum EnumPhoneAction
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     * 空
+     * </pre>
+     *
+     * <code>None = 0;</code>
+     */
+    None(0),
+    /**
+     * <pre>
+     * 重启手机
+     * </pre>
+     *
+     * <code>Reboot = 1;</code>
+     */
+    Reboot(1),
+    /**
+     * <pre>
+     * 上传日志
+     * </pre>
+     *
+     * <code>UploadLog = 2;</code>
+     */
+    UploadLog(2),
+    /**
+     * <pre>
+     * 上传本地文件
+     * </pre>
+     *
+     * <code>UploadFile = 3;</code>
+     */
+    UploadFile(3),
+    /**
+     * <pre>
+     * 清除客服系统的图片缓存
+     * </pre>
+     *
+     * <code>CleanAppCache = 4;</code>
+     */
+    CleanAppCache(4),
+    /**
+     * <pre>
+     * 清除微信的图片视频缓存
+     * </pre>
+     *
+     * <code>CleanWxCache = 5;</code>
+     */
+    CleanWxCache(5),
+    /**
+     * <pre>
+     * 清除手机缓存的文件url(用于防止重复上传)
+     * </pre>
+     *
+     * <code>CleanFileUrlCache = 6;</code>
+     */
+    CleanFileUrlCache(6),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     * 空
+     * </pre>
+     *
+     * <code>None = 0;</code>
+     */
+    public static final int None_VALUE = 0;
+    /**
+     * <pre>
+     * 重启手机
+     * </pre>
+     *
+     * <code>Reboot = 1;</code>
+     */
+    public static final int Reboot_VALUE = 1;
+    /**
+     * <pre>
+     * 上传日志
+     * </pre>
+     *
+     * <code>UploadLog = 2;</code>
+     */
+    public static final int UploadLog_VALUE = 2;
+    /**
+     * <pre>
+     * 上传本地文件
+     * </pre>
+     *
+     * <code>UploadFile = 3;</code>
+     */
+    public static final int UploadFile_VALUE = 3;
+    /**
+     * <pre>
+     * 清除客服系统的图片缓存
+     * </pre>
+     *
+     * <code>CleanAppCache = 4;</code>
+     */
+    public static final int CleanAppCache_VALUE = 4;
+    /**
+     * <pre>
+     * 清除微信的图片视频缓存
+     * </pre>
+     *
+     * <code>CleanWxCache = 5;</code>
+     */
+    public static final int CleanWxCache_VALUE = 5;
+    /**
+     * <pre>
+     * 清除手机缓存的文件url(用于防止重复上传)
+     * </pre>
+     *
+     * <code>CleanFileUrlCache = 6;</code>
+     */
+    public static final int CleanFileUrlCache_VALUE = 6;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumPhoneAction valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumPhoneAction forNumber(int value) {
+      switch (value) {
+        case 0: return None;
+        case 1: return Reboot;
+        case 2: return UploadLog;
+        case 3: return UploadFile;
+        case 4: return CleanAppCache;
+        case 5: return CleanWxCache;
+        case 6: return CleanFileUrlCache;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumPhoneAction>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumPhoneAction> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumPhoneAction>() {
+            public EnumPhoneAction findValueByNumber(int number) {
+              return EnumPhoneAction.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPhoneActionTask.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final EnumPhoneAction[] VALUES = values();
+
+    public static EnumPhoneAction valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumPhoneAction(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumPhoneAction)
+  }
+
+  public interface PhoneActionTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PhoneActionTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 备用,用wxid或imei来定位手机
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    java.lang.String getImei();
+    /**
+     * <pre>
+     * 备用,用wxid或imei来定位手机
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    com.google.protobuf.ByteString
+        getImeiBytes();
+
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+     * @return The enum numeric value on the wire for action.
+     */
+    int getActionValue();
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+     * @return The action.
+     */
+    Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction getAction();
+
+    /**
+     * <pre>
+     * 字符串参数,后续扩展用
+     * </pre>
+     *
+     * <code>string StrParam = 4;</code>
+     * @return The strParam.
+     */
+    java.lang.String getStrParam();
+    /**
+     * <pre>
+     * 字符串参数,后续扩展用
+     * </pre>
+     *
+     * <code>string StrParam = 4;</code>
+     * @return The bytes for strParam.
+     */
+    com.google.protobuf.ByteString
+        getStrParamBytes();
+
+    /**
+     * <pre>
+     * 整型参数,后续扩展用
+     * </pre>
+     *
+     * <code>int32 IntParam = 5;</code>
+     * @return The intParam.
+     */
+    int getIntParam();
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneActionTaskMessage}
+   */
+  public  static final class PhoneActionTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PhoneActionTaskMessage)
+      PhoneActionTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PhoneActionTaskMessage.newBuilder() to construct.
+    private PhoneActionTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PhoneActionTaskMessage() {
+      imei_ = "";
+      action_ = 0;
+      strParam_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PhoneActionTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PhoneActionTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              imei_ = s;
+              break;
+            }
+            case 24: {
+              int rawValue = input.readEnum();
+
+              action_ = rawValue;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              strParam_ = s;
+              break;
+            }
+            case 40: {
+
+              intParam_ = input.readInt32();
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPhoneActionTask.internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPhoneActionTask.internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.class, Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IMEI_FIELD_NUMBER = 2;
+    private volatile java.lang.Object imei_;
+    /**
+     * <pre>
+     * 备用,用wxid或imei来定位手机
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    public java.lang.String getImei() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        imei_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 备用,用wxid或imei来定位手机
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    public com.google.protobuf.ByteString
+        getImeiBytes() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        imei_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ACTION_FIELD_NUMBER = 3;
+    private int action_;
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+     * @return The enum numeric value on the wire for action.
+     */
+    public int getActionValue() {
+      return action_;
+    }
+    /**
+     * <pre>
+     * 指令
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+     * @return The action.
+     */
+    public Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction getAction() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction result = Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction.valueOf(action_);
+      return result == null ? Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction.UNRECOGNIZED : result;
+    }
+
+    public static final int STRPARAM_FIELD_NUMBER = 4;
+    private volatile java.lang.Object strParam_;
+    /**
+     * <pre>
+     * 字符串参数,后续扩展用
+     * </pre>
+     *
+     * <code>string StrParam = 4;</code>
+     * @return The strParam.
+     */
+    public java.lang.String getStrParam() {
+      java.lang.Object ref = strParam_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        strParam_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 字符串参数,后续扩展用
+     * </pre>
+     *
+     * <code>string StrParam = 4;</code>
+     * @return The bytes for strParam.
+     */
+    public com.google.protobuf.ByteString
+        getStrParamBytes() {
+      java.lang.Object ref = strParam_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        strParam_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int INTPARAM_FIELD_NUMBER = 5;
+    private int intParam_;
+    /**
+     * <pre>
+     * 整型参数,后续扩展用
+     * </pre>
+     *
+     * <code>int32 IntParam = 5;</code>
+     * @return The intParam.
+     */
+    public int getIntParam() {
+      return intParam_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, imei_);
+      }
+      if (action_ != Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction.None.getNumber()) {
+        output.writeEnum(3, action_);
+      }
+      if (!getStrParamBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, strParam_);
+      }
+      if (intParam_ != 0) {
+        output.writeInt32(5, intParam_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, imei_);
+      }
+      if (action_ != Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction.None.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(3, action_);
+      }
+      if (!getStrParamBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, strParam_);
+      }
+      if (intParam_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, intParam_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage other = (Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getImei()
+          .equals(other.getImei())) return false;
+      if (action_ != other.action_) return false;
+      if (!getStrParam()
+          .equals(other.getStrParam())) return false;
+      if (getIntParam()
+          != other.getIntParam()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + IMEI_FIELD_NUMBER;
+      hash = (53 * hash) + getImei().hashCode();
+      hash = (37 * hash) + ACTION_FIELD_NUMBER;
+      hash = (53 * hash) + action_;
+      hash = (37 * hash) + STRPARAM_FIELD_NUMBER;
+      hash = (53 * hash) + getStrParam().hashCode();
+      hash = (37 * hash) + INTPARAM_FIELD_NUMBER;
+      hash = (53 * hash) + getIntParam();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneActionTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PhoneActionTaskMessage)
+        Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPhoneActionTask.internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPhoneActionTask.internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.class, Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        imei_ = "";
+
+        action_ = 0;
+
+        strParam_ = "";
+
+        intParam_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPhoneActionTask.internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage result = new Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.imei_ = imei_;
+        result.action_ = action_;
+        result.strParam_ = strParam_;
+        result.intParam_ = intParam_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getImei().isEmpty()) {
+          imei_ = other.imei_;
+          onChanged();
+        }
+        if (other.action_ != 0) {
+          setActionValue(other.getActionValue());
+        }
+        if (!other.getStrParam().isEmpty()) {
+          strParam_ = other.strParam_;
+          onChanged();
+        }
+        if (other.getIntParam() != 0) {
+          setIntParam(other.getIntParam());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object imei_ = "";
+      /**
+       * <pre>
+       * 备用,用wxid或imei来定位手机
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The imei.
+       */
+      public java.lang.String getImei() {
+        java.lang.Object ref = imei_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          imei_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 备用,用wxid或imei来定位手机
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The bytes for imei.
+       */
+      public com.google.protobuf.ByteString
+          getImeiBytes() {
+        java.lang.Object ref = imei_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          imei_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 备用,用wxid或imei来定位手机
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImei(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 备用,用wxid或imei来定位手机
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearImei() {
+        
+        imei_ = getDefaultInstance().getImei();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 备用,用wxid或imei来定位手机
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The bytes for imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImeiBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int action_ = 0;
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+       * @return The enum numeric value on the wire for action.
+       */
+      public int getActionValue() {
+        return action_;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+       * @param value The enum numeric value on the wire for action to set.
+       * @return This builder for chaining.
+       */
+      public Builder setActionValue(int value) {
+        action_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+       * @return The action.
+       */
+      public Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction getAction() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction result = Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction.valueOf(action_);
+        return result == null ? Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+       * @param value The action to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAction(Im.Scrm.Ww.Proto.WPhoneActionTask.EnumPhoneAction value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        action_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 指令
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumPhoneAction Action = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAction() {
+        
+        action_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object strParam_ = "";
+      /**
+       * <pre>
+       * 字符串参数,后续扩展用
+       * </pre>
+       *
+       * <code>string StrParam = 4;</code>
+       * @return The strParam.
+       */
+      public java.lang.String getStrParam() {
+        java.lang.Object ref = strParam_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          strParam_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 字符串参数,后续扩展用
+       * </pre>
+       *
+       * <code>string StrParam = 4;</code>
+       * @return The bytes for strParam.
+       */
+      public com.google.protobuf.ByteString
+          getStrParamBytes() {
+        java.lang.Object ref = strParam_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          strParam_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 字符串参数,后续扩展用
+       * </pre>
+       *
+       * <code>string StrParam = 4;</code>
+       * @param value The strParam to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStrParam(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        strParam_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 字符串参数,后续扩展用
+       * </pre>
+       *
+       * <code>string StrParam = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearStrParam() {
+        
+        strParam_ = getDefaultInstance().getStrParam();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 字符串参数,后续扩展用
+       * </pre>
+       *
+       * <code>string StrParam = 4;</code>
+       * @param value The bytes for strParam to set.
+       * @return This builder for chaining.
+       */
+      public Builder setStrParamBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        strParam_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int intParam_ ;
+      /**
+       * <pre>
+       * 整型参数,后续扩展用
+       * </pre>
+       *
+       * <code>int32 IntParam = 5;</code>
+       * @return The intParam.
+       */
+      public int getIntParam() {
+        return intParam_;
+      }
+      /**
+       * <pre>
+       * 整型参数,后续扩展用
+       * </pre>
+       *
+       * <code>int32 IntParam = 5;</code>
+       * @param value The intParam to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIntParam(int value) {
+        
+        intParam_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 整型参数,后续扩展用
+       * </pre>
+       *
+       * <code>int32 IntParam = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIntParam() {
+        
+        intParam_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PhoneActionTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PhoneActionTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PhoneActionTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PhoneActionTaskMessage>() {
+      @java.lang.Override
+      public PhoneActionTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PhoneActionTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PhoneActionTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PhoneActionTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPhoneActionTask.PhoneActionTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\026WPhoneActionTask.proto\022\020Im.Scrm.Ww.Pro" +
+      "to\"\233\001\n\026PhoneActionTaskMessage\022\014\n\004WxId\030\001 " +
+      "\001(\003\022\014\n\004Imei\030\002 \001(\t\0221\n\006Action\030\003 \001(\0162!.Im.S" +
+      "crm.Ww.Proto.EnumPhoneAction\022\020\n\010StrParam" +
+      "\030\004 \001(\t\022\020\n\010IntParam\030\005 \001(\005\022\016\n\006TaskId\030\006 \001(\003" +
+      "*\202\001\n\017EnumPhoneAction\022\010\n\004None\020\000\022\n\n\006Reboot" +
+      "\020\001\022\r\n\tUploadLog\020\002\022\016\n\nUploadFile\020\003\022\021\n\rCle" +
+      "anAppCache\020\004\022\020\n\014CleanWxCache\020\005\022\025\n\021CleanF" +
+      "ileUrlCache\020\006b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PhoneActionTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Imei", "Action", "StrParam", "IntParam", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 734 - 0
src/main/java/Im/Scrm/Ww/Proto/WPhoneStateTask.java

@@ -0,0 +1,734 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPhoneStateTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPhoneStateTask {
+  private WPhoneStateTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PhoneStateTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PhoneStateTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * WechatId和imei用于服务端选择通道,对客户端无用
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    java.lang.String getImei();
+    /**
+     * <pre>
+     * WechatId和imei用于服务端选择通道,对客户端无用
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    com.google.protobuf.ByteString
+        getImeiBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneStateTaskMessage}
+   */
+  public  static final class PhoneStateTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PhoneStateTaskMessage)
+      PhoneStateTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PhoneStateTaskMessage.newBuilder() to construct.
+    private PhoneStateTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PhoneStateTaskMessage() {
+      imei_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PhoneStateTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PhoneStateTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              imei_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPhoneStateTask.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPhoneStateTask.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.class, Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IMEI_FIELD_NUMBER = 2;
+    private volatile java.lang.Object imei_;
+    /**
+     * <pre>
+     * WechatId和imei用于服务端选择通道,对客户端无用
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    public java.lang.String getImei() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        imei_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * WechatId和imei用于服务端选择通道,对客户端无用
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    public com.google.protobuf.ByteString
+        getImeiBytes() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        imei_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, imei_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, imei_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage other = (Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getImei()
+          .equals(other.getImei())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + IMEI_FIELD_NUMBER;
+      hash = (53 * hash) + getImei().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneStateTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PhoneStateTaskMessage)
+        Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTask.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTask.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.class, Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        imei_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTask.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage result = new Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.imei_ = imei_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getImei().isEmpty()) {
+          imei_ = other.imei_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object imei_ = "";
+      /**
+       * <pre>
+       * WechatId和imei用于服务端选择通道,对客户端无用
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The imei.
+       */
+      public java.lang.String getImei() {
+        java.lang.Object ref = imei_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          imei_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * WechatId和imei用于服务端选择通道,对客户端无用
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The bytes for imei.
+       */
+      public com.google.protobuf.ByteString
+          getImeiBytes() {
+        java.lang.Object ref = imei_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          imei_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * WechatId和imei用于服务端选择通道,对客户端无用
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImei(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * WechatId和imei用于服务端选择通道,对客户端无用
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearImei() {
+        
+        imei_ = getDefaultInstance().getImei();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * WechatId和imei用于服务端选择通道,对客户端无用
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The bytes for imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImeiBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PhoneStateTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PhoneStateTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PhoneStateTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PhoneStateTaskMessage>() {
+      @java.lang.Override
+      public PhoneStateTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PhoneStateTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PhoneStateTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PhoneStateTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPhoneStateTask.PhoneStateTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\025WPhoneStateTask.proto\022\020Im.Scrm.Ww.Prot" +
+      "o\"3\n\025PhoneStateTaskMessage\022\014\n\004WxId\030\001 \001(\003" +
+      "\022\014\n\004Imei\030\002 \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Imei", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1266 - 0
src/main/java/Im/Scrm/Ww/Proto/WPhoneStateTaskResultNotice.java

@@ -0,0 +1,1266 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPhoneStateTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPhoneStateTaskResultNotice {
+  private WPhoneStateTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PhoneStateTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    java.lang.String getImei();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    com.google.protobuf.ByteString
+        getImeiBytes();
+
+    /**
+     * <pre>
+     * 剩余电量百分比
+     * </pre>
+     *
+     * <code>int32 BatteryLevel = 3;</code>
+     * @return The batteryLevel.
+     */
+    int getBatteryLevel();
+
+    /**
+     * <pre>
+     * 0 未知 1 充电 2 满电 3 未充电
+     * </pre>
+     *
+     * <code>int32 ChargingState = 4;</code>
+     * @return The chargingState.
+     */
+    int getChargingState();
+
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The netType.
+     */
+    java.lang.String getNetType();
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The bytes for netType.
+     */
+    com.google.protobuf.ByteString
+        getNetTypeBytes();
+
+    /**
+     * <pre>
+     * 外部存储(sdcard)剩余空间字节数
+     * </pre>
+     *
+     * <code>int64 SdcardFree = 6;</code>
+     * @return The sdcardFree.
+     */
+    long getSdcardFree();
+
+    /**
+     * <pre>
+     * 外部存储(sdcard)总空间字节数
+     * </pre>
+     *
+     * <code>int64 SdcardTotal = 7;</code>
+     * @return The sdcardTotal.
+     */
+    long getSdcardTotal();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage}
+   */
+  public  static final class PhoneStateTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage)
+      PhoneStateTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PhoneStateTaskResultNoticeMessage.newBuilder() to construct.
+    private PhoneStateTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PhoneStateTaskResultNoticeMessage() {
+      imei_ = "";
+      netType_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PhoneStateTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PhoneStateTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              imei_ = s;
+              break;
+            }
+            case 24: {
+
+              batteryLevel_ = input.readInt32();
+              break;
+            }
+            case 32: {
+
+              chargingState_ = input.readInt32();
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              netType_ = s;
+              break;
+            }
+            case 48: {
+
+              sdcardFree_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              sdcardTotal_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IMEI_FIELD_NUMBER = 2;
+    private volatile java.lang.Object imei_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    public java.lang.String getImei() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        imei_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    public com.google.protobuf.ByteString
+        getImeiBytes() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        imei_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int BATTERYLEVEL_FIELD_NUMBER = 3;
+    private int batteryLevel_;
+    /**
+     * <pre>
+     * 剩余电量百分比
+     * </pre>
+     *
+     * <code>int32 BatteryLevel = 3;</code>
+     * @return The batteryLevel.
+     */
+    public int getBatteryLevel() {
+      return batteryLevel_;
+    }
+
+    public static final int CHARGINGSTATE_FIELD_NUMBER = 4;
+    private int chargingState_;
+    /**
+     * <pre>
+     * 0 未知 1 充电 2 满电 3 未充电
+     * </pre>
+     *
+     * <code>int32 ChargingState = 4;</code>
+     * @return The chargingState.
+     */
+    public int getChargingState() {
+      return chargingState_;
+    }
+
+    public static final int NETTYPE_FIELD_NUMBER = 5;
+    private volatile java.lang.Object netType_;
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The netType.
+     */
+    public java.lang.String getNetType() {
+      java.lang.Object ref = netType_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        netType_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The bytes for netType.
+     */
+    public com.google.protobuf.ByteString
+        getNetTypeBytes() {
+      java.lang.Object ref = netType_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        netType_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SDCARDFREE_FIELD_NUMBER = 6;
+    private long sdcardFree_;
+    /**
+     * <pre>
+     * 外部存储(sdcard)剩余空间字节数
+     * </pre>
+     *
+     * <code>int64 SdcardFree = 6;</code>
+     * @return The sdcardFree.
+     */
+    public long getSdcardFree() {
+      return sdcardFree_;
+    }
+
+    public static final int SDCARDTOTAL_FIELD_NUMBER = 7;
+    private long sdcardTotal_;
+    /**
+     * <pre>
+     * 外部存储(sdcard)总空间字节数
+     * </pre>
+     *
+     * <code>int64 SdcardTotal = 7;</code>
+     * @return The sdcardTotal.
+     */
+    public long getSdcardTotal() {
+      return sdcardTotal_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, imei_);
+      }
+      if (batteryLevel_ != 0) {
+        output.writeInt32(3, batteryLevel_);
+      }
+      if (chargingState_ != 0) {
+        output.writeInt32(4, chargingState_);
+      }
+      if (!getNetTypeBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, netType_);
+      }
+      if (sdcardFree_ != 0L) {
+        output.writeInt64(6, sdcardFree_);
+      }
+      if (sdcardTotal_ != 0L) {
+        output.writeInt64(7, sdcardTotal_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, imei_);
+      }
+      if (batteryLevel_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, batteryLevel_);
+      }
+      if (chargingState_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, chargingState_);
+      }
+      if (!getNetTypeBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, netType_);
+      }
+      if (sdcardFree_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, sdcardFree_);
+      }
+      if (sdcardTotal_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, sdcardTotal_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getImei()
+          .equals(other.getImei())) return false;
+      if (getBatteryLevel()
+          != other.getBatteryLevel()) return false;
+      if (getChargingState()
+          != other.getChargingState()) return false;
+      if (!getNetType()
+          .equals(other.getNetType())) return false;
+      if (getSdcardFree()
+          != other.getSdcardFree()) return false;
+      if (getSdcardTotal()
+          != other.getSdcardTotal()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + IMEI_FIELD_NUMBER;
+      hash = (53 * hash) + getImei().hashCode();
+      hash = (37 * hash) + BATTERYLEVEL_FIELD_NUMBER;
+      hash = (53 * hash) + getBatteryLevel();
+      hash = (37 * hash) + CHARGINGSTATE_FIELD_NUMBER;
+      hash = (53 * hash) + getChargingState();
+      hash = (37 * hash) + NETTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getNetType().hashCode();
+      hash = (37 * hash) + SDCARDFREE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSdcardFree());
+      hash = (37 * hash) + SDCARDTOTAL_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSdcardTotal());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        imei_ = "";
+
+        batteryLevel_ = 0;
+
+        chargingState_ = 0;
+
+        netType_ = "";
+
+        sdcardFree_ = 0L;
+
+        sdcardTotal_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.imei_ = imei_;
+        result.batteryLevel_ = batteryLevel_;
+        result.chargingState_ = chargingState_;
+        result.netType_ = netType_;
+        result.sdcardFree_ = sdcardFree_;
+        result.sdcardTotal_ = sdcardTotal_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getImei().isEmpty()) {
+          imei_ = other.imei_;
+          onChanged();
+        }
+        if (other.getBatteryLevel() != 0) {
+          setBatteryLevel(other.getBatteryLevel());
+        }
+        if (other.getChargingState() != 0) {
+          setChargingState(other.getChargingState());
+        }
+        if (!other.getNetType().isEmpty()) {
+          netType_ = other.netType_;
+          onChanged();
+        }
+        if (other.getSdcardFree() != 0L) {
+          setSdcardFree(other.getSdcardFree());
+        }
+        if (other.getSdcardTotal() != 0L) {
+          setSdcardTotal(other.getSdcardTotal());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object imei_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The imei.
+       */
+      public java.lang.String getImei() {
+        java.lang.Object ref = imei_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          imei_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The bytes for imei.
+       */
+      public com.google.protobuf.ByteString
+          getImeiBytes() {
+        java.lang.Object ref = imei_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          imei_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImei(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearImei() {
+        
+        imei_ = getDefaultInstance().getImei();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The bytes for imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImeiBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int batteryLevel_ ;
+      /**
+       * <pre>
+       * 剩余电量百分比
+       * </pre>
+       *
+       * <code>int32 BatteryLevel = 3;</code>
+       * @return The batteryLevel.
+       */
+      public int getBatteryLevel() {
+        return batteryLevel_;
+      }
+      /**
+       * <pre>
+       * 剩余电量百分比
+       * </pre>
+       *
+       * <code>int32 BatteryLevel = 3;</code>
+       * @param value The batteryLevel to set.
+       * @return This builder for chaining.
+       */
+      public Builder setBatteryLevel(int value) {
+        
+        batteryLevel_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 剩余电量百分比
+       * </pre>
+       *
+       * <code>int32 BatteryLevel = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearBatteryLevel() {
+        
+        batteryLevel_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int chargingState_ ;
+      /**
+       * <pre>
+       * 0 未知 1 充电 2 满电 3 未充电
+       * </pre>
+       *
+       * <code>int32 ChargingState = 4;</code>
+       * @return The chargingState.
+       */
+      public int getChargingState() {
+        return chargingState_;
+      }
+      /**
+       * <pre>
+       * 0 未知 1 充电 2 满电 3 未充电
+       * </pre>
+       *
+       * <code>int32 ChargingState = 4;</code>
+       * @param value The chargingState to set.
+       * @return This builder for chaining.
+       */
+      public Builder setChargingState(int value) {
+        
+        chargingState_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 0 未知 1 充电 2 满电 3 未充电
+       * </pre>
+       *
+       * <code>int32 ChargingState = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearChargingState() {
+        
+        chargingState_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object netType_ = "";
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @return The netType.
+       */
+      public java.lang.String getNetType() {
+        java.lang.Object ref = netType_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          netType_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @return The bytes for netType.
+       */
+      public com.google.protobuf.ByteString
+          getNetTypeBytes() {
+        java.lang.Object ref = netType_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          netType_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @param value The netType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNetType(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        netType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNetType() {
+        
+        netType_ = getDefaultInstance().getNetType();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @param value The bytes for netType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNetTypeBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        netType_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long sdcardFree_ ;
+      /**
+       * <pre>
+       * 外部存储(sdcard)剩余空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardFree = 6;</code>
+       * @return The sdcardFree.
+       */
+      public long getSdcardFree() {
+        return sdcardFree_;
+      }
+      /**
+       * <pre>
+       * 外部存储(sdcard)剩余空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardFree = 6;</code>
+       * @param value The sdcardFree to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSdcardFree(long value) {
+        
+        sdcardFree_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 外部存储(sdcard)剩余空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardFree = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSdcardFree() {
+        
+        sdcardFree_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long sdcardTotal_ ;
+      /**
+       * <pre>
+       * 外部存储(sdcard)总空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardTotal = 7;</code>
+       * @return The sdcardTotal.
+       */
+      public long getSdcardTotal() {
+        return sdcardTotal_;
+      }
+      /**
+       * <pre>
+       * 外部存储(sdcard)总空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardTotal = 7;</code>
+       * @param value The sdcardTotal to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSdcardTotal(long value) {
+        
+        sdcardTotal_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 外部存储(sdcard)总空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardTotal = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSdcardTotal() {
+        
+        sdcardTotal_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PhoneStateTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PhoneStateTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PhoneStateTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public PhoneStateTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PhoneStateTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PhoneStateTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PhoneStateTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPhoneStateTaskResultNotice.PhoneStateTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n!WPhoneStateTaskResultNotice.proto\022\020Im." +
+      "Scrm.Ww.Proto\"\246\001\n!PhoneStateTaskResultNo" +
+      "ticeMessage\022\014\n\004WxId\030\001 \001(\003\022\014\n\004Imei\030\002 \001(\t\022" +
+      "\024\n\014BatteryLevel\030\003 \001(\005\022\025\n\rChargingState\030\004" +
+      " \001(\005\022\017\n\007NetType\030\005 \001(\t\022\022\n\nSdcardFree\030\006 \001(" +
+      "\003\022\023\n\013SdcardTotal\030\007 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PhoneStateTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Imei", "BatteryLevel", "ChargingState", "NetType", "SdcardFree", "SdcardTotal", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1177 - 0
src/main/java/Im/Scrm/Ww/Proto/WPhoneStateWarningNotice.java

@@ -0,0 +1,1177 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPhoneStateWarningNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPhoneStateWarningNotice {
+  private WPhoneStateWarningNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PhoneStateWarningNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    java.lang.String getImei();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    com.google.protobuf.ByteString
+        getImeiBytes();
+
+    /**
+     * <pre>
+     * 剩余电量百分比
+     * </pre>
+     *
+     * <code>int32 BatteryLevel = 3;</code>
+     * @return The batteryLevel.
+     */
+    int getBatteryLevel();
+
+    /**
+     * <pre>
+     * 0 未知 1 充电 2 满电 3 未充电
+     * </pre>
+     *
+     * <code>int32 ChargingState = 4;</code>
+     * @return The chargingState.
+     */
+    int getChargingState();
+
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The netType.
+     */
+    java.lang.String getNetType();
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The bytes for netType.
+     */
+    com.google.protobuf.ByteString
+        getNetTypeBytes();
+
+    /**
+     * <pre>
+     * 外部存储(sdcard)剩余空间字节数
+     * </pre>
+     *
+     * <code>int64 SdcardFree = 6;</code>
+     * @return The sdcardFree.
+     */
+    long getSdcardFree();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage}
+   */
+  public  static final class PhoneStateWarningNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage)
+      PhoneStateWarningNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PhoneStateWarningNoticeMessage.newBuilder() to construct.
+    private PhoneStateWarningNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PhoneStateWarningNoticeMessage() {
+      imei_ = "";
+      netType_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PhoneStateWarningNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PhoneStateWarningNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              imei_ = s;
+              break;
+            }
+            case 24: {
+
+              batteryLevel_ = input.readInt32();
+              break;
+            }
+            case 32: {
+
+              chargingState_ = input.readInt32();
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              netType_ = s;
+              break;
+            }
+            case 48: {
+
+              sdcardFree_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.class, Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IMEI_FIELD_NUMBER = 2;
+    private volatile java.lang.Object imei_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The imei.
+     */
+    public java.lang.String getImei() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        imei_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Imei = 2;</code>
+     * @return The bytes for imei.
+     */
+    public com.google.protobuf.ByteString
+        getImeiBytes() {
+      java.lang.Object ref = imei_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        imei_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int BATTERYLEVEL_FIELD_NUMBER = 3;
+    private int batteryLevel_;
+    /**
+     * <pre>
+     * 剩余电量百分比
+     * </pre>
+     *
+     * <code>int32 BatteryLevel = 3;</code>
+     * @return The batteryLevel.
+     */
+    public int getBatteryLevel() {
+      return batteryLevel_;
+    }
+
+    public static final int CHARGINGSTATE_FIELD_NUMBER = 4;
+    private int chargingState_;
+    /**
+     * <pre>
+     * 0 未知 1 充电 2 满电 3 未充电
+     * </pre>
+     *
+     * <code>int32 ChargingState = 4;</code>
+     * @return The chargingState.
+     */
+    public int getChargingState() {
+      return chargingState_;
+    }
+
+    public static final int NETTYPE_FIELD_NUMBER = 5;
+    private volatile java.lang.Object netType_;
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The netType.
+     */
+    public java.lang.String getNetType() {
+      java.lang.Object ref = netType_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        netType_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 联网方式 4G WIFI
+     * </pre>
+     *
+     * <code>string NetType = 5;</code>
+     * @return The bytes for netType.
+     */
+    public com.google.protobuf.ByteString
+        getNetTypeBytes() {
+      java.lang.Object ref = netType_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        netType_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SDCARDFREE_FIELD_NUMBER = 6;
+    private long sdcardFree_;
+    /**
+     * <pre>
+     * 外部存储(sdcard)剩余空间字节数
+     * </pre>
+     *
+     * <code>int64 SdcardFree = 6;</code>
+     * @return The sdcardFree.
+     */
+    public long getSdcardFree() {
+      return sdcardFree_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, imei_);
+      }
+      if (batteryLevel_ != 0) {
+        output.writeInt32(3, batteryLevel_);
+      }
+      if (chargingState_ != 0) {
+        output.writeInt32(4, chargingState_);
+      }
+      if (!getNetTypeBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, netType_);
+      }
+      if (sdcardFree_ != 0L) {
+        output.writeInt64(6, sdcardFree_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getImeiBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, imei_);
+      }
+      if (batteryLevel_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, batteryLevel_);
+      }
+      if (chargingState_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, chargingState_);
+      }
+      if (!getNetTypeBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, netType_);
+      }
+      if (sdcardFree_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, sdcardFree_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage other = (Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getImei()
+          .equals(other.getImei())) return false;
+      if (getBatteryLevel()
+          != other.getBatteryLevel()) return false;
+      if (getChargingState()
+          != other.getChargingState()) return false;
+      if (!getNetType()
+          .equals(other.getNetType())) return false;
+      if (getSdcardFree()
+          != other.getSdcardFree()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + IMEI_FIELD_NUMBER;
+      hash = (53 * hash) + getImei().hashCode();
+      hash = (37 * hash) + BATTERYLEVEL_FIELD_NUMBER;
+      hash = (53 * hash) + getBatteryLevel();
+      hash = (37 * hash) + CHARGINGSTATE_FIELD_NUMBER;
+      hash = (53 * hash) + getChargingState();
+      hash = (37 * hash) + NETTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getNetType().hashCode();
+      hash = (37 * hash) + SDCARDFREE_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSdcardFree());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage)
+        Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.class, Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        imei_ = "";
+
+        batteryLevel_ = 0;
+
+        chargingState_ = 0;
+
+        netType_ = "";
+
+        sdcardFree_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage result = new Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.imei_ = imei_;
+        result.batteryLevel_ = batteryLevel_;
+        result.chargingState_ = chargingState_;
+        result.netType_ = netType_;
+        result.sdcardFree_ = sdcardFree_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getImei().isEmpty()) {
+          imei_ = other.imei_;
+          onChanged();
+        }
+        if (other.getBatteryLevel() != 0) {
+          setBatteryLevel(other.getBatteryLevel());
+        }
+        if (other.getChargingState() != 0) {
+          setChargingState(other.getChargingState());
+        }
+        if (!other.getNetType().isEmpty()) {
+          netType_ = other.netType_;
+          onChanged();
+        }
+        if (other.getSdcardFree() != 0L) {
+          setSdcardFree(other.getSdcardFree());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object imei_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The imei.
+       */
+      public java.lang.String getImei() {
+        java.lang.Object ref = imei_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          imei_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return The bytes for imei.
+       */
+      public com.google.protobuf.ByteString
+          getImeiBytes() {
+        java.lang.Object ref = imei_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          imei_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImei(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearImei() {
+        
+        imei_ = getDefaultInstance().getImei();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Imei = 2;</code>
+       * @param value The bytes for imei to set.
+       * @return This builder for chaining.
+       */
+      public Builder setImeiBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        imei_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int batteryLevel_ ;
+      /**
+       * <pre>
+       * 剩余电量百分比
+       * </pre>
+       *
+       * <code>int32 BatteryLevel = 3;</code>
+       * @return The batteryLevel.
+       */
+      public int getBatteryLevel() {
+        return batteryLevel_;
+      }
+      /**
+       * <pre>
+       * 剩余电量百分比
+       * </pre>
+       *
+       * <code>int32 BatteryLevel = 3;</code>
+       * @param value The batteryLevel to set.
+       * @return This builder for chaining.
+       */
+      public Builder setBatteryLevel(int value) {
+        
+        batteryLevel_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 剩余电量百分比
+       * </pre>
+       *
+       * <code>int32 BatteryLevel = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearBatteryLevel() {
+        
+        batteryLevel_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private int chargingState_ ;
+      /**
+       * <pre>
+       * 0 未知 1 充电 2 满电 3 未充电
+       * </pre>
+       *
+       * <code>int32 ChargingState = 4;</code>
+       * @return The chargingState.
+       */
+      public int getChargingState() {
+        return chargingState_;
+      }
+      /**
+       * <pre>
+       * 0 未知 1 充电 2 满电 3 未充电
+       * </pre>
+       *
+       * <code>int32 ChargingState = 4;</code>
+       * @param value The chargingState to set.
+       * @return This builder for chaining.
+       */
+      public Builder setChargingState(int value) {
+        
+        chargingState_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 0 未知 1 充电 2 满电 3 未充电
+       * </pre>
+       *
+       * <code>int32 ChargingState = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearChargingState() {
+        
+        chargingState_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object netType_ = "";
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @return The netType.
+       */
+      public java.lang.String getNetType() {
+        java.lang.Object ref = netType_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          netType_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @return The bytes for netType.
+       */
+      public com.google.protobuf.ByteString
+          getNetTypeBytes() {
+        java.lang.Object ref = netType_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          netType_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @param value The netType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNetType(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        netType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNetType() {
+        
+        netType_ = getDefaultInstance().getNetType();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联网方式 4G WIFI
+       * </pre>
+       *
+       * <code>string NetType = 5;</code>
+       * @param value The bytes for netType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNetTypeBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        netType_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long sdcardFree_ ;
+      /**
+       * <pre>
+       * 外部存储(sdcard)剩余空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardFree = 6;</code>
+       * @return The sdcardFree.
+       */
+      public long getSdcardFree() {
+        return sdcardFree_;
+      }
+      /**
+       * <pre>
+       * 外部存储(sdcard)剩余空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardFree = 6;</code>
+       * @param value The sdcardFree to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSdcardFree(long value) {
+        
+        sdcardFree_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 外部存储(sdcard)剩余空间字节数
+       * </pre>
+       *
+       * <code>int64 SdcardFree = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSdcardFree() {
+        
+        sdcardFree_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PhoneStateWarningNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PhoneStateWarningNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PhoneStateWarningNoticeMessage>() {
+      @java.lang.Override
+      public PhoneStateWarningNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PhoneStateWarningNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PhoneStateWarningNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PhoneStateWarningNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPhoneStateWarningNotice.PhoneStateWarningNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\036WPhoneStateWarningNotice.proto\022\020Im.Scr" +
+      "m.Ww.Proto\"\216\001\n\036PhoneStateWarningNoticeMe" +
+      "ssage\022\014\n\004WxId\030\001 \001(\003\022\014\n\004Imei\030\002 \001(\t\022\024\n\014Bat" +
+      "teryLevel\030\003 \001(\005\022\025\n\rChargingState\030\004 \001(\005\022\017" +
+      "\n\007NetType\030\005 \001(\t\022\022\n\nSdcardFree\030\006 \001(\003b\006pro" +
+      "to3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PhoneStateWarningNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Imei", "BatteryLevel", "ChargingState", "NetType", "SdcardFree", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 3593 - 0
src/main/java/Im/Scrm/Ww/Proto/WPostDeviceInfoNotice.java

@@ -0,0 +1,3593 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPostDeviceInfoNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPostDeviceInfoNotice {
+  private WPostDeviceInfoNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PostDeviceInfoNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 手机品牌
+     * </pre>
+     *
+     * <code>string PhoneBrand = 1;</code>
+     * @return The phoneBrand.
+     */
+    java.lang.String getPhoneBrand();
+    /**
+     * <pre>
+     * 手机品牌
+     * </pre>
+     *
+     * <code>string PhoneBrand = 1;</code>
+     * @return The bytes for phoneBrand.
+     */
+    com.google.protobuf.ByteString
+        getPhoneBrandBytes();
+
+    /**
+     * <pre>
+     * 手机型号
+     * </pre>
+     *
+     * <code>string PhoneModel = 2;</code>
+     * @return The phoneModel.
+     */
+    java.lang.String getPhoneModel();
+    /**
+     * <pre>
+     * 手机型号
+     * </pre>
+     *
+     * <code>string PhoneModel = 2;</code>
+     * @return The bytes for phoneModel.
+     */
+    com.google.protobuf.ByteString
+        getPhoneModelBytes();
+
+    /**
+     * <code>int32 OSVerNumber = 3;</code>
+     * @return The oSVerNumber.
+     */
+    int getOSVerNumber();
+
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage> 
+        getAppInfosList();
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage getAppInfos(int index);
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    int getAppInfosCount();
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder> 
+        getAppInfosOrBuilderList();
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder getAppInfosOrBuilder(
+        int index);
+
+    /**
+     * <code>string NetType = 5;</code>
+     * @return The netType.
+     */
+    java.lang.String getNetType();
+    /**
+     * <code>string NetType = 5;</code>
+     * @return The bytes for netType.
+     */
+    com.google.protobuf.ByteString
+        getNetTypeBytes();
+
+    /**
+     * <pre>
+     * 微信id
+     * </pre>
+     *
+     * <code>int64 WxId = 6;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>string IMEI = 7;</code>
+     * @return The iMEI.
+     */
+    java.lang.String getIMEI();
+    /**
+     * <code>string IMEI = 7;</code>
+     * @return The bytes for iMEI.
+     */
+    com.google.protobuf.ByteString
+        getIMEIBytes();
+
+    /**
+     * <pre>
+     * SIM卡1的IMSI
+     * </pre>
+     *
+     * <code>string IMSI1 = 8;</code>
+     * @return The iMSI1.
+     */
+    java.lang.String getIMSI1();
+    /**
+     * <pre>
+     * SIM卡1的IMSI
+     * </pre>
+     *
+     * <code>string IMSI1 = 8;</code>
+     * @return The bytes for iMSI1.
+     */
+    com.google.protobuf.ByteString
+        getIMSI1Bytes();
+
+    /**
+     * <pre>
+     * SIM卡2的IMSI,
+     * </pre>
+     *
+     * <code>string IMSI2 = 9;</code>
+     * @return The iMSI2.
+     */
+    java.lang.String getIMSI2();
+    /**
+     * <pre>
+     * SIM卡2的IMSI,
+     * </pre>
+     *
+     * <code>string IMSI2 = 9;</code>
+     * @return The bytes for iMSI2.
+     */
+    com.google.protobuf.ByteString
+        getIMSI2Bytes();
+
+    /**
+     * <pre>
+     * SIM卡1的手机号,有可能读不到
+     * </pre>
+     *
+     * <code>string Number1 = 10;</code>
+     * @return The number1.
+     */
+    java.lang.String getNumber1();
+    /**
+     * <pre>
+     * SIM卡1的手机号,有可能读不到
+     * </pre>
+     *
+     * <code>string Number1 = 10;</code>
+     * @return The bytes for number1.
+     */
+    com.google.protobuf.ByteString
+        getNumber1Bytes();
+
+    /**
+     * <pre>
+     * SIM卡2的手机好,有可能读不到
+     * </pre>
+     *
+     * <code>string Number2 = 11;</code>
+     * @return The number2.
+     */
+    java.lang.String getNumber2();
+    /**
+     * <pre>
+     * SIM卡2的手机好,有可能读不到
+     * </pre>
+     *
+     * <code>string Number2 = 11;</code>
+     * @return The bytes for number2.
+     */
+    com.google.protobuf.ByteString
+        getNumber2Bytes();
+
+    /**
+     * <code>bool IsHook = 12;</code>
+     * @return The isHook.
+     */
+    boolean getIsHook();
+
+    /**
+     * <code>bool WxSupport = 13;</code>
+     * @return The wxSupport.
+     */
+    boolean getWxSupport();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage}
+   */
+  public  static final class PostDeviceInfoNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage)
+      PostDeviceInfoNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PostDeviceInfoNoticeMessage.newBuilder() to construct.
+    private PostDeviceInfoNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PostDeviceInfoNoticeMessage() {
+      phoneBrand_ = "";
+      phoneModel_ = "";
+      appInfos_ = java.util.Collections.emptyList();
+      netType_ = "";
+      iMEI_ = "";
+      iMSI1_ = "";
+      iMSI2_ = "";
+      number1_ = "";
+      number2_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PostDeviceInfoNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PostDeviceInfoNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              phoneBrand_ = s;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              phoneModel_ = s;
+              break;
+            }
+            case 24: {
+
+              oSVerNumber_ = input.readInt32();
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                appInfos_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              appInfos_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              netType_ = s;
+              break;
+            }
+            case 48: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              iMEI_ = s;
+              break;
+            }
+            case 66: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              iMSI1_ = s;
+              break;
+            }
+            case 74: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              iMSI2_ = s;
+              break;
+            }
+            case 82: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              number1_ = s;
+              break;
+            }
+            case 90: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              number2_ = s;
+              break;
+            }
+            case 96: {
+
+              isHook_ = input.readBool();
+              break;
+            }
+            case 104: {
+
+              wxSupport_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          appInfos_ = java.util.Collections.unmodifiableList(appInfos_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.class, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.Builder.class);
+    }
+
+    public interface DeviceAppInfoMessageOrBuilder extends
+        // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)
+        com.google.protobuf.MessageOrBuilder {
+
+      /**
+       * <code>string PackageName = 1;</code>
+       * @return The packageName.
+       */
+      java.lang.String getPackageName();
+      /**
+       * <code>string PackageName = 1;</code>
+       * @return The bytes for packageName.
+       */
+      com.google.protobuf.ByteString
+          getPackageNameBytes();
+
+      /**
+       * <code>string AppName = 2;</code>
+       * @return The appName.
+       */
+      java.lang.String getAppName();
+      /**
+       * <code>string AppName = 2;</code>
+       * @return The bytes for appName.
+       */
+      com.google.protobuf.ByteString
+          getAppNameBytes();
+
+      /**
+       * <code>int32 VerNumber = 3;</code>
+       * @return The verNumber.
+       */
+      int getVerNumber();
+
+      /**
+       * <code>string Version = 4;</code>
+       * @return The version.
+       */
+      java.lang.String getVersion();
+      /**
+       * <code>string Version = 4;</code>
+       * @return The bytes for version.
+       */
+      com.google.protobuf.ByteString
+          getVersionBytes();
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage}
+     */
+    public  static final class DeviceAppInfoMessage extends
+        com.google.protobuf.GeneratedMessageV3 implements
+        // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)
+        DeviceAppInfoMessageOrBuilder {
+    private static final long serialVersionUID = 0L;
+      // Use DeviceAppInfoMessage.newBuilder() to construct.
+      private DeviceAppInfoMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+        super(builder);
+      }
+      private DeviceAppInfoMessage() {
+        packageName_ = "";
+        appName_ = "";
+        version_ = "";
+      }
+
+      @java.lang.Override
+      @SuppressWarnings({"unused"})
+      protected java.lang.Object newInstance(
+          UnusedPrivateParameter unused) {
+        return new DeviceAppInfoMessage();
+      }
+
+      @java.lang.Override
+      public final com.google.protobuf.UnknownFieldSet
+      getUnknownFields() {
+        return this.unknownFields;
+      }
+      private DeviceAppInfoMessage(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        this();
+        if (extensionRegistry == null) {
+          throw new java.lang.NullPointerException();
+        }
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder();
+        try {
+          boolean done = false;
+          while (!done) {
+            int tag = input.readTag();
+            switch (tag) {
+              case 0:
+                done = true;
+                break;
+              case 10: {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                packageName_ = s;
+                break;
+              }
+              case 18: {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                appName_ = s;
+                break;
+              }
+              case 24: {
+
+                verNumber_ = input.readInt32();
+                break;
+              }
+              case 34: {
+                java.lang.String s = input.readStringRequireUtf8();
+
+                version_ = s;
+                break;
+              }
+              default: {
+                if (!parseUnknownField(
+                    input, unknownFields, extensionRegistry, tag)) {
+                  done = true;
+                }
+                break;
+              }
+            }
+          }
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          throw e.setUnfinishedMessage(this);
+        } catch (java.io.IOException e) {
+          throw new com.google.protobuf.InvalidProtocolBufferException(
+              e).setUnfinishedMessage(this);
+        } finally {
+          this.unknownFields = unknownFields.build();
+          makeExtensionsImmutable();
+        }
+      }
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.class, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder.class);
+      }
+
+      public static final int PACKAGENAME_FIELD_NUMBER = 1;
+      private volatile java.lang.Object packageName_;
+      /**
+       * <code>string PackageName = 1;</code>
+       * @return The packageName.
+       */
+      public java.lang.String getPackageName() {
+        java.lang.Object ref = packageName_;
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          packageName_ = s;
+          return s;
+        }
+      }
+      /**
+       * <code>string PackageName = 1;</code>
+       * @return The bytes for packageName.
+       */
+      public com.google.protobuf.ByteString
+          getPackageNameBytes() {
+        java.lang.Object ref = packageName_;
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          packageName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+
+      public static final int APPNAME_FIELD_NUMBER = 2;
+      private volatile java.lang.Object appName_;
+      /**
+       * <code>string AppName = 2;</code>
+       * @return The appName.
+       */
+      public java.lang.String getAppName() {
+        java.lang.Object ref = appName_;
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          appName_ = s;
+          return s;
+        }
+      }
+      /**
+       * <code>string AppName = 2;</code>
+       * @return The bytes for appName.
+       */
+      public com.google.protobuf.ByteString
+          getAppNameBytes() {
+        java.lang.Object ref = appName_;
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          appName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+
+      public static final int VERNUMBER_FIELD_NUMBER = 3;
+      private int verNumber_;
+      /**
+       * <code>int32 VerNumber = 3;</code>
+       * @return The verNumber.
+       */
+      public int getVerNumber() {
+        return verNumber_;
+      }
+
+      public static final int VERSION_FIELD_NUMBER = 4;
+      private volatile java.lang.Object version_;
+      /**
+       * <code>string Version = 4;</code>
+       * @return The version.
+       */
+      public java.lang.String getVersion() {
+        java.lang.Object ref = version_;
+        if (ref instanceof java.lang.String) {
+          return (java.lang.String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          version_ = s;
+          return s;
+        }
+      }
+      /**
+       * <code>string Version = 4;</code>
+       * @return The bytes for version.
+       */
+      public com.google.protobuf.ByteString
+          getVersionBytes() {
+        java.lang.Object ref = version_;
+        if (ref instanceof java.lang.String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          version_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+
+      private byte memoizedIsInitialized = -1;
+      @java.lang.Override
+      public final boolean isInitialized() {
+        byte isInitialized = memoizedIsInitialized;
+        if (isInitialized == 1) return true;
+        if (isInitialized == 0) return false;
+
+        memoizedIsInitialized = 1;
+        return true;
+      }
+
+      @java.lang.Override
+      public void writeTo(com.google.protobuf.CodedOutputStream output)
+                          throws java.io.IOException {
+        if (!getPackageNameBytes().isEmpty()) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, packageName_);
+        }
+        if (!getAppNameBytes().isEmpty()) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, appName_);
+        }
+        if (verNumber_ != 0) {
+          output.writeInt32(3, verNumber_);
+        }
+        if (!getVersionBytes().isEmpty()) {
+          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, version_);
+        }
+        unknownFields.writeTo(output);
+      }
+
+      @java.lang.Override
+      public int getSerializedSize() {
+        int size = memoizedSize;
+        if (size != -1) return size;
+
+        size = 0;
+        if (!getPackageNameBytes().isEmpty()) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, packageName_);
+        }
+        if (!getAppNameBytes().isEmpty()) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, appName_);
+        }
+        if (verNumber_ != 0) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeInt32Size(3, verNumber_);
+        }
+        if (!getVersionBytes().isEmpty()) {
+          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, version_);
+        }
+        size += unknownFields.getSerializedSize();
+        memoizedSize = size;
+        return size;
+      }
+
+      @java.lang.Override
+      public boolean equals(final java.lang.Object obj) {
+        if (obj == this) {
+         return true;
+        }
+        if (!(obj instanceof Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)) {
+          return super.equals(obj);
+        }
+        Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage other = (Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage) obj;
+
+        if (!getPackageName()
+            .equals(other.getPackageName())) return false;
+        if (!getAppName()
+            .equals(other.getAppName())) return false;
+        if (getVerNumber()
+            != other.getVerNumber()) return false;
+        if (!getVersion()
+            .equals(other.getVersion())) return false;
+        if (!unknownFields.equals(other.unknownFields)) return false;
+        return true;
+      }
+
+      @java.lang.Override
+      public int hashCode() {
+        if (memoizedHashCode != 0) {
+          return memoizedHashCode;
+        }
+        int hash = 41;
+        hash = (19 * hash) + getDescriptor().hashCode();
+        hash = (37 * hash) + PACKAGENAME_FIELD_NUMBER;
+        hash = (53 * hash) + getPackageName().hashCode();
+        hash = (37 * hash) + APPNAME_FIELD_NUMBER;
+        hash = (53 * hash) + getAppName().hashCode();
+        hash = (37 * hash) + VERNUMBER_FIELD_NUMBER;
+        hash = (53 * hash) + getVerNumber();
+        hash = (37 * hash) + VERSION_FIELD_NUMBER;
+        hash = (53 * hash) + getVersion().hashCode();
+        hash = (29 * hash) + unknownFields.hashCode();
+        memoizedHashCode = hash;
+        return hash;
+      }
+
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          java.nio.ByteBuffer data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          java.nio.ByteBuffer data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          com.google.protobuf.ByteString data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          com.google.protobuf.ByteString data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(byte[] data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          byte[] data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return PARSER.parseFrom(data, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(java.io.InputStream input)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          java.io.InputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseDelimitedFrom(java.io.InputStream input)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseDelimitedWithIOException(PARSER, input);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseDelimitedFrom(
+          java.io.InputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          com.google.protobuf.CodedInputStream input)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input);
+      }
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parseFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        return com.google.protobuf.GeneratedMessageV3
+            .parseWithIOException(PARSER, input, extensionRegistry);
+      }
+
+      @java.lang.Override
+      public Builder newBuilderForType() { return newBuilder(); }
+      public static Builder newBuilder() {
+        return DEFAULT_INSTANCE.toBuilder();
+      }
+      public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage prototype) {
+        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+      }
+      @java.lang.Override
+      public Builder toBuilder() {
+        return this == DEFAULT_INSTANCE
+            ? new Builder() : new Builder().mergeFrom(this);
+      }
+
+      @java.lang.Override
+      protected Builder newBuilderForType(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        Builder builder = new Builder(parent);
+        return builder;
+      }
+      /**
+       * Protobuf type {@code Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage}
+       */
+      public static final class Builder extends
+          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+          // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder {
+        public static final com.google.protobuf.Descriptors.Descriptor
+            getDescriptor() {
+          return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_descriptor;
+        }
+
+        @java.lang.Override
+        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+            internalGetFieldAccessorTable() {
+          return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_fieldAccessorTable
+              .ensureFieldAccessorsInitialized(
+                  Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.class, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder.class);
+        }
+
+        // Construct using Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.newBuilder()
+        private Builder() {
+          maybeForceBuilderInitialization();
+        }
+
+        private Builder(
+            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+          super(parent);
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessageV3
+                  .alwaysUseFieldBuilders) {
+          }
+        }
+        @java.lang.Override
+        public Builder clear() {
+          super.clear();
+          packageName_ = "";
+
+          appName_ = "";
+
+          verNumber_ = 0;
+
+          version_ = "";
+
+          return this;
+        }
+
+        @java.lang.Override
+        public com.google.protobuf.Descriptors.Descriptor
+            getDescriptorForType() {
+          return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_descriptor;
+        }
+
+        @java.lang.Override
+        public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage getDefaultInstanceForType() {
+          return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.getDefaultInstance();
+        }
+
+        @java.lang.Override
+        public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage build() {
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage result = buildPartial();
+          if (!result.isInitialized()) {
+            throw newUninitializedMessageException(result);
+          }
+          return result;
+        }
+
+        @java.lang.Override
+        public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage buildPartial() {
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage result = new Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage(this);
+          result.packageName_ = packageName_;
+          result.appName_ = appName_;
+          result.verNumber_ = verNumber_;
+          result.version_ = version_;
+          onBuilt();
+          return result;
+        }
+
+        @java.lang.Override
+        public Builder clone() {
+          return super.clone();
+        }
+        @java.lang.Override
+        public Builder setField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.setField(field, value);
+        }
+        @java.lang.Override
+        public Builder clearField(
+            com.google.protobuf.Descriptors.FieldDescriptor field) {
+          return super.clearField(field);
+        }
+        @java.lang.Override
+        public Builder clearOneof(
+            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+          return super.clearOneof(oneof);
+        }
+        @java.lang.Override
+        public Builder setRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            int index, java.lang.Object value) {
+          return super.setRepeatedField(field, index, value);
+        }
+        @java.lang.Override
+        public Builder addRepeatedField(
+            com.google.protobuf.Descriptors.FieldDescriptor field,
+            java.lang.Object value) {
+          return super.addRepeatedField(field, value);
+        }
+        @java.lang.Override
+        public Builder mergeFrom(com.google.protobuf.Message other) {
+          if (other instanceof Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage) {
+            return mergeFrom((Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)other);
+          } else {
+            super.mergeFrom(other);
+            return this;
+          }
+        }
+
+        public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage other) {
+          if (other == Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.getDefaultInstance()) return this;
+          if (!other.getPackageName().isEmpty()) {
+            packageName_ = other.packageName_;
+            onChanged();
+          }
+          if (!other.getAppName().isEmpty()) {
+            appName_ = other.appName_;
+            onChanged();
+          }
+          if (other.getVerNumber() != 0) {
+            setVerNumber(other.getVerNumber());
+          }
+          if (!other.getVersion().isEmpty()) {
+            version_ = other.version_;
+            onChanged();
+          }
+          this.mergeUnknownFields(other.unknownFields);
+          onChanged();
+          return this;
+        }
+
+        @java.lang.Override
+        public final boolean isInitialized() {
+          return true;
+        }
+
+        @java.lang.Override
+        public Builder mergeFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws java.io.IOException {
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage parsedMessage = null;
+          try {
+            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+            parsedMessage = (Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage) e.getUnfinishedMessage();
+            throw e.unwrapIOException();
+          } finally {
+            if (parsedMessage != null) {
+              mergeFrom(parsedMessage);
+            }
+          }
+          return this;
+        }
+
+        private java.lang.Object packageName_ = "";
+        /**
+         * <code>string PackageName = 1;</code>
+         * @return The packageName.
+         */
+        public java.lang.String getPackageName() {
+          java.lang.Object ref = packageName_;
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs =
+                (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            packageName_ = s;
+            return s;
+          } else {
+            return (java.lang.String) ref;
+          }
+        }
+        /**
+         * <code>string PackageName = 1;</code>
+         * @return The bytes for packageName.
+         */
+        public com.google.protobuf.ByteString
+            getPackageNameBytes() {
+          java.lang.Object ref = packageName_;
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b = 
+                com.google.protobuf.ByteString.copyFromUtf8(
+                    (java.lang.String) ref);
+            packageName_ = b;
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
+          }
+        }
+        /**
+         * <code>string PackageName = 1;</code>
+         * @param value The packageName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setPackageName(
+            java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  
+          packageName_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string PackageName = 1;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearPackageName() {
+          
+          packageName_ = getDefaultInstance().getPackageName();
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string PackageName = 1;</code>
+         * @param value The bytes for packageName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setPackageNameBytes(
+            com.google.protobuf.ByteString value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+          
+          packageName_ = value;
+          onChanged();
+          return this;
+        }
+
+        private java.lang.Object appName_ = "";
+        /**
+         * <code>string AppName = 2;</code>
+         * @return The appName.
+         */
+        public java.lang.String getAppName() {
+          java.lang.Object ref = appName_;
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs =
+                (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            appName_ = s;
+            return s;
+          } else {
+            return (java.lang.String) ref;
+          }
+        }
+        /**
+         * <code>string AppName = 2;</code>
+         * @return The bytes for appName.
+         */
+        public com.google.protobuf.ByteString
+            getAppNameBytes() {
+          java.lang.Object ref = appName_;
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b = 
+                com.google.protobuf.ByteString.copyFromUtf8(
+                    (java.lang.String) ref);
+            appName_ = b;
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
+          }
+        }
+        /**
+         * <code>string AppName = 2;</code>
+         * @param value The appName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setAppName(
+            java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  
+          appName_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string AppName = 2;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearAppName() {
+          
+          appName_ = getDefaultInstance().getAppName();
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string AppName = 2;</code>
+         * @param value The bytes for appName to set.
+         * @return This builder for chaining.
+         */
+        public Builder setAppNameBytes(
+            com.google.protobuf.ByteString value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+          
+          appName_ = value;
+          onChanged();
+          return this;
+        }
+
+        private int verNumber_ ;
+        /**
+         * <code>int32 VerNumber = 3;</code>
+         * @return The verNumber.
+         */
+        public int getVerNumber() {
+          return verNumber_;
+        }
+        /**
+         * <code>int32 VerNumber = 3;</code>
+         * @param value The verNumber to set.
+         * @return This builder for chaining.
+         */
+        public Builder setVerNumber(int value) {
+          
+          verNumber_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>int32 VerNumber = 3;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearVerNumber() {
+          
+          verNumber_ = 0;
+          onChanged();
+          return this;
+        }
+
+        private java.lang.Object version_ = "";
+        /**
+         * <code>string Version = 4;</code>
+         * @return The version.
+         */
+        public java.lang.String getVersion() {
+          java.lang.Object ref = version_;
+          if (!(ref instanceof java.lang.String)) {
+            com.google.protobuf.ByteString bs =
+                (com.google.protobuf.ByteString) ref;
+            java.lang.String s = bs.toStringUtf8();
+            version_ = s;
+            return s;
+          } else {
+            return (java.lang.String) ref;
+          }
+        }
+        /**
+         * <code>string Version = 4;</code>
+         * @return The bytes for version.
+         */
+        public com.google.protobuf.ByteString
+            getVersionBytes() {
+          java.lang.Object ref = version_;
+          if (ref instanceof String) {
+            com.google.protobuf.ByteString b = 
+                com.google.protobuf.ByteString.copyFromUtf8(
+                    (java.lang.String) ref);
+            version_ = b;
+            return b;
+          } else {
+            return (com.google.protobuf.ByteString) ref;
+          }
+        }
+        /**
+         * <code>string Version = 4;</code>
+         * @param value The version to set.
+         * @return This builder for chaining.
+         */
+        public Builder setVersion(
+            java.lang.String value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  
+          version_ = value;
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string Version = 4;</code>
+         * @return This builder for chaining.
+         */
+        public Builder clearVersion() {
+          
+          version_ = getDefaultInstance().getVersion();
+          onChanged();
+          return this;
+        }
+        /**
+         * <code>string Version = 4;</code>
+         * @param value The bytes for version to set.
+         * @return This builder for chaining.
+         */
+        public Builder setVersionBytes(
+            com.google.protobuf.ByteString value) {
+          if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+          
+          version_ = value;
+          onChanged();
+          return this;
+        }
+        @java.lang.Override
+        public final Builder setUnknownFields(
+            final com.google.protobuf.UnknownFieldSet unknownFields) {
+          return super.setUnknownFields(unknownFields);
+        }
+
+        @java.lang.Override
+        public final Builder mergeUnknownFields(
+            final com.google.protobuf.UnknownFieldSet unknownFields) {
+          return super.mergeUnknownFields(unknownFields);
+        }
+
+
+        // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)
+      }
+
+      // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage)
+      private static final Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage DEFAULT_INSTANCE;
+      static {
+        DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage();
+      }
+
+      public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage getDefaultInstance() {
+        return DEFAULT_INSTANCE;
+      }
+
+      private static final com.google.protobuf.Parser<DeviceAppInfoMessage>
+          PARSER = new com.google.protobuf.AbstractParser<DeviceAppInfoMessage>() {
+        @java.lang.Override
+        public DeviceAppInfoMessage parsePartialFrom(
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          return new DeviceAppInfoMessage(input, extensionRegistry);
+        }
+      };
+
+      public static com.google.protobuf.Parser<DeviceAppInfoMessage> parser() {
+        return PARSER;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Parser<DeviceAppInfoMessage> getParserForType() {
+        return PARSER;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage getDefaultInstanceForType() {
+        return DEFAULT_INSTANCE;
+      }
+
+    }
+
+    public static final int PHONEBRAND_FIELD_NUMBER = 1;
+    private volatile java.lang.Object phoneBrand_;
+    /**
+     * <pre>
+     * 手机品牌
+     * </pre>
+     *
+     * <code>string PhoneBrand = 1;</code>
+     * @return The phoneBrand.
+     */
+    public java.lang.String getPhoneBrand() {
+      java.lang.Object ref = phoneBrand_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        phoneBrand_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 手机品牌
+     * </pre>
+     *
+     * <code>string PhoneBrand = 1;</code>
+     * @return The bytes for phoneBrand.
+     */
+    public com.google.protobuf.ByteString
+        getPhoneBrandBytes() {
+      java.lang.Object ref = phoneBrand_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        phoneBrand_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int PHONEMODEL_FIELD_NUMBER = 2;
+    private volatile java.lang.Object phoneModel_;
+    /**
+     * <pre>
+     * 手机型号
+     * </pre>
+     *
+     * <code>string PhoneModel = 2;</code>
+     * @return The phoneModel.
+     */
+    public java.lang.String getPhoneModel() {
+      java.lang.Object ref = phoneModel_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        phoneModel_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 手机型号
+     * </pre>
+     *
+     * <code>string PhoneModel = 2;</code>
+     * @return The bytes for phoneModel.
+     */
+    public com.google.protobuf.ByteString
+        getPhoneModelBytes() {
+      java.lang.Object ref = phoneModel_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        phoneModel_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int OSVERNUMBER_FIELD_NUMBER = 3;
+    private int oSVerNumber_;
+    /**
+     * <code>int32 OSVerNumber = 3;</code>
+     * @return The oSVerNumber.
+     */
+    public int getOSVerNumber() {
+      return oSVerNumber_;
+    }
+
+    public static final int APPINFOS_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage> appInfos_;
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage> getAppInfosList() {
+      return appInfos_;
+    }
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder> 
+        getAppInfosOrBuilderList() {
+      return appInfos_;
+    }
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    public int getAppInfosCount() {
+      return appInfos_.size();
+    }
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage getAppInfos(int index) {
+      return appInfos_.get(index);
+    }
+    /**
+     * <pre>
+     * App信息
+     * </pre>
+     *
+     * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder getAppInfosOrBuilder(
+        int index) {
+      return appInfos_.get(index);
+    }
+
+    public static final int NETTYPE_FIELD_NUMBER = 5;
+    private volatile java.lang.Object netType_;
+    /**
+     * <code>string NetType = 5;</code>
+     * @return The netType.
+     */
+    public java.lang.String getNetType() {
+      java.lang.Object ref = netType_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        netType_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string NetType = 5;</code>
+     * @return The bytes for netType.
+     */
+    public com.google.protobuf.ByteString
+        getNetTypeBytes() {
+      java.lang.Object ref = netType_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        netType_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int WXID_FIELD_NUMBER = 6;
+    private long wxId_;
+    /**
+     * <pre>
+     * 微信id
+     * </pre>
+     *
+     * <code>int64 WxId = 6;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int IMEI_FIELD_NUMBER = 7;
+    private volatile java.lang.Object iMEI_;
+    /**
+     * <code>string IMEI = 7;</code>
+     * @return The iMEI.
+     */
+    public java.lang.String getIMEI() {
+      java.lang.Object ref = iMEI_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        iMEI_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string IMEI = 7;</code>
+     * @return The bytes for iMEI.
+     */
+    public com.google.protobuf.ByteString
+        getIMEIBytes() {
+      java.lang.Object ref = iMEI_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        iMEI_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int IMSI1_FIELD_NUMBER = 8;
+    private volatile java.lang.Object iMSI1_;
+    /**
+     * <pre>
+     * SIM卡1的IMSI
+     * </pre>
+     *
+     * <code>string IMSI1 = 8;</code>
+     * @return The iMSI1.
+     */
+    public java.lang.String getIMSI1() {
+      java.lang.Object ref = iMSI1_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        iMSI1_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * SIM卡1的IMSI
+     * </pre>
+     *
+     * <code>string IMSI1 = 8;</code>
+     * @return The bytes for iMSI1.
+     */
+    public com.google.protobuf.ByteString
+        getIMSI1Bytes() {
+      java.lang.Object ref = iMSI1_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        iMSI1_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int IMSI2_FIELD_NUMBER = 9;
+    private volatile java.lang.Object iMSI2_;
+    /**
+     * <pre>
+     * SIM卡2的IMSI,
+     * </pre>
+     *
+     * <code>string IMSI2 = 9;</code>
+     * @return The iMSI2.
+     */
+    public java.lang.String getIMSI2() {
+      java.lang.Object ref = iMSI2_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        iMSI2_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * SIM卡2的IMSI,
+     * </pre>
+     *
+     * <code>string IMSI2 = 9;</code>
+     * @return The bytes for iMSI2.
+     */
+    public com.google.protobuf.ByteString
+        getIMSI2Bytes() {
+      java.lang.Object ref = iMSI2_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        iMSI2_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int NUMBER1_FIELD_NUMBER = 10;
+    private volatile java.lang.Object number1_;
+    /**
+     * <pre>
+     * SIM卡1的手机号,有可能读不到
+     * </pre>
+     *
+     * <code>string Number1 = 10;</code>
+     * @return The number1.
+     */
+    public java.lang.String getNumber1() {
+      java.lang.Object ref = number1_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        number1_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * SIM卡1的手机号,有可能读不到
+     * </pre>
+     *
+     * <code>string Number1 = 10;</code>
+     * @return The bytes for number1.
+     */
+    public com.google.protobuf.ByteString
+        getNumber1Bytes() {
+      java.lang.Object ref = number1_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        number1_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int NUMBER2_FIELD_NUMBER = 11;
+    private volatile java.lang.Object number2_;
+    /**
+     * <pre>
+     * SIM卡2的手机好,有可能读不到
+     * </pre>
+     *
+     * <code>string Number2 = 11;</code>
+     * @return The number2.
+     */
+    public java.lang.String getNumber2() {
+      java.lang.Object ref = number2_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        number2_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * SIM卡2的手机好,有可能读不到
+     * </pre>
+     *
+     * <code>string Number2 = 11;</code>
+     * @return The bytes for number2.
+     */
+    public com.google.protobuf.ByteString
+        getNumber2Bytes() {
+      java.lang.Object ref = number2_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        number2_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ISHOOK_FIELD_NUMBER = 12;
+    private boolean isHook_;
+    /**
+     * <code>bool IsHook = 12;</code>
+     * @return The isHook.
+     */
+    public boolean getIsHook() {
+      return isHook_;
+    }
+
+    public static final int WXSUPPORT_FIELD_NUMBER = 13;
+    private boolean wxSupport_;
+    /**
+     * <code>bool WxSupport = 13;</code>
+     * @return The wxSupport.
+     */
+    public boolean getWxSupport() {
+      return wxSupport_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getPhoneBrandBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, phoneBrand_);
+      }
+      if (!getPhoneModelBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, phoneModel_);
+      }
+      if (oSVerNumber_ != 0) {
+        output.writeInt32(3, oSVerNumber_);
+      }
+      for (int i = 0; i < appInfos_.size(); i++) {
+        output.writeMessage(4, appInfos_.get(i));
+      }
+      if (!getNetTypeBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, netType_);
+      }
+      if (wxId_ != 0L) {
+        output.writeInt64(6, wxId_);
+      }
+      if (!getIMEIBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, iMEI_);
+      }
+      if (!getIMSI1Bytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, iMSI1_);
+      }
+      if (!getIMSI2Bytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, iMSI2_);
+      }
+      if (!getNumber1Bytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, number1_);
+      }
+      if (!getNumber2Bytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, number2_);
+      }
+      if (isHook_ != false) {
+        output.writeBool(12, isHook_);
+      }
+      if (wxSupport_ != false) {
+        output.writeBool(13, wxSupport_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getPhoneBrandBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, phoneBrand_);
+      }
+      if (!getPhoneModelBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, phoneModel_);
+      }
+      if (oSVerNumber_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, oSVerNumber_);
+      }
+      for (int i = 0; i < appInfos_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, appInfos_.get(i));
+      }
+      if (!getNetTypeBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, netType_);
+      }
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, wxId_);
+      }
+      if (!getIMEIBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, iMEI_);
+      }
+      if (!getIMSI1Bytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, iMSI1_);
+      }
+      if (!getIMSI2Bytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, iMSI2_);
+      }
+      if (!getNumber1Bytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, number1_);
+      }
+      if (!getNumber2Bytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, number2_);
+      }
+      if (isHook_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(12, isHook_);
+      }
+      if (wxSupport_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(13, wxSupport_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage other = (Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage) obj;
+
+      if (!getPhoneBrand()
+          .equals(other.getPhoneBrand())) return false;
+      if (!getPhoneModel()
+          .equals(other.getPhoneModel())) return false;
+      if (getOSVerNumber()
+          != other.getOSVerNumber()) return false;
+      if (!getAppInfosList()
+          .equals(other.getAppInfosList())) return false;
+      if (!getNetType()
+          .equals(other.getNetType())) return false;
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getIMEI()
+          .equals(other.getIMEI())) return false;
+      if (!getIMSI1()
+          .equals(other.getIMSI1())) return false;
+      if (!getIMSI2()
+          .equals(other.getIMSI2())) return false;
+      if (!getNumber1()
+          .equals(other.getNumber1())) return false;
+      if (!getNumber2()
+          .equals(other.getNumber2())) return false;
+      if (getIsHook()
+          != other.getIsHook()) return false;
+      if (getWxSupport()
+          != other.getWxSupport()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + PHONEBRAND_FIELD_NUMBER;
+      hash = (53 * hash) + getPhoneBrand().hashCode();
+      hash = (37 * hash) + PHONEMODEL_FIELD_NUMBER;
+      hash = (53 * hash) + getPhoneModel().hashCode();
+      hash = (37 * hash) + OSVERNUMBER_FIELD_NUMBER;
+      hash = (53 * hash) + getOSVerNumber();
+      if (getAppInfosCount() > 0) {
+        hash = (37 * hash) + APPINFOS_FIELD_NUMBER;
+        hash = (53 * hash) + getAppInfosList().hashCode();
+      }
+      hash = (37 * hash) + NETTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getNetType().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + IMEI_FIELD_NUMBER;
+      hash = (53 * hash) + getIMEI().hashCode();
+      hash = (37 * hash) + IMSI1_FIELD_NUMBER;
+      hash = (53 * hash) + getIMSI1().hashCode();
+      hash = (37 * hash) + IMSI2_FIELD_NUMBER;
+      hash = (53 * hash) + getIMSI2().hashCode();
+      hash = (37 * hash) + NUMBER1_FIELD_NUMBER;
+      hash = (53 * hash) + getNumber1().hashCode();
+      hash = (37 * hash) + NUMBER2_FIELD_NUMBER;
+      hash = (53 * hash) + getNumber2().hashCode();
+      hash = (37 * hash) + ISHOOK_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getIsHook());
+      hash = (37 * hash) + WXSUPPORT_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getWxSupport());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage)
+        Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.class, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getAppInfosFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        phoneBrand_ = "";
+
+        phoneModel_ = "";
+
+        oSVerNumber_ = 0;
+
+        if (appInfosBuilder_ == null) {
+          appInfos_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          appInfosBuilder_.clear();
+        }
+        netType_ = "";
+
+        wxId_ = 0L;
+
+        iMEI_ = "";
+
+        iMSI1_ = "";
+
+        iMSI2_ = "";
+
+        number1_ = "";
+
+        number2_ = "";
+
+        isHook_ = false;
+
+        wxSupport_ = false;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage result = new Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.phoneBrand_ = phoneBrand_;
+        result.phoneModel_ = phoneModel_;
+        result.oSVerNumber_ = oSVerNumber_;
+        if (appInfosBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            appInfos_ = java.util.Collections.unmodifiableList(appInfos_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.appInfos_ = appInfos_;
+        } else {
+          result.appInfos_ = appInfosBuilder_.build();
+        }
+        result.netType_ = netType_;
+        result.wxId_ = wxId_;
+        result.iMEI_ = iMEI_;
+        result.iMSI1_ = iMSI1_;
+        result.iMSI2_ = iMSI2_;
+        result.number1_ = number1_;
+        result.number2_ = number2_;
+        result.isHook_ = isHook_;
+        result.wxSupport_ = wxSupport_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.getDefaultInstance()) return this;
+        if (!other.getPhoneBrand().isEmpty()) {
+          phoneBrand_ = other.phoneBrand_;
+          onChanged();
+        }
+        if (!other.getPhoneModel().isEmpty()) {
+          phoneModel_ = other.phoneModel_;
+          onChanged();
+        }
+        if (other.getOSVerNumber() != 0) {
+          setOSVerNumber(other.getOSVerNumber());
+        }
+        if (appInfosBuilder_ == null) {
+          if (!other.appInfos_.isEmpty()) {
+            if (appInfos_.isEmpty()) {
+              appInfos_ = other.appInfos_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureAppInfosIsMutable();
+              appInfos_.addAll(other.appInfos_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.appInfos_.isEmpty()) {
+            if (appInfosBuilder_.isEmpty()) {
+              appInfosBuilder_.dispose();
+              appInfosBuilder_ = null;
+              appInfos_ = other.appInfos_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              appInfosBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getAppInfosFieldBuilder() : null;
+            } else {
+              appInfosBuilder_.addAllMessages(other.appInfos_);
+            }
+          }
+        }
+        if (!other.getNetType().isEmpty()) {
+          netType_ = other.netType_;
+          onChanged();
+        }
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getIMEI().isEmpty()) {
+          iMEI_ = other.iMEI_;
+          onChanged();
+        }
+        if (!other.getIMSI1().isEmpty()) {
+          iMSI1_ = other.iMSI1_;
+          onChanged();
+        }
+        if (!other.getIMSI2().isEmpty()) {
+          iMSI2_ = other.iMSI2_;
+          onChanged();
+        }
+        if (!other.getNumber1().isEmpty()) {
+          number1_ = other.number1_;
+          onChanged();
+        }
+        if (!other.getNumber2().isEmpty()) {
+          number2_ = other.number2_;
+          onChanged();
+        }
+        if (other.getIsHook() != false) {
+          setIsHook(other.getIsHook());
+        }
+        if (other.getWxSupport() != false) {
+          setWxSupport(other.getWxSupport());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private java.lang.Object phoneBrand_ = "";
+      /**
+       * <pre>
+       * 手机品牌
+       * </pre>
+       *
+       * <code>string PhoneBrand = 1;</code>
+       * @return The phoneBrand.
+       */
+      public java.lang.String getPhoneBrand() {
+        java.lang.Object ref = phoneBrand_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          phoneBrand_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 手机品牌
+       * </pre>
+       *
+       * <code>string PhoneBrand = 1;</code>
+       * @return The bytes for phoneBrand.
+       */
+      public com.google.protobuf.ByteString
+          getPhoneBrandBytes() {
+        java.lang.Object ref = phoneBrand_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          phoneBrand_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 手机品牌
+       * </pre>
+       *
+       * <code>string PhoneBrand = 1;</code>
+       * @param value The phoneBrand to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPhoneBrand(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        phoneBrand_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 手机品牌
+       * </pre>
+       *
+       * <code>string PhoneBrand = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPhoneBrand() {
+        
+        phoneBrand_ = getDefaultInstance().getPhoneBrand();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 手机品牌
+       * </pre>
+       *
+       * <code>string PhoneBrand = 1;</code>
+       * @param value The bytes for phoneBrand to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPhoneBrandBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        phoneBrand_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object phoneModel_ = "";
+      /**
+       * <pre>
+       * 手机型号
+       * </pre>
+       *
+       * <code>string PhoneModel = 2;</code>
+       * @return The phoneModel.
+       */
+      public java.lang.String getPhoneModel() {
+        java.lang.Object ref = phoneModel_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          phoneModel_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 手机型号
+       * </pre>
+       *
+       * <code>string PhoneModel = 2;</code>
+       * @return The bytes for phoneModel.
+       */
+      public com.google.protobuf.ByteString
+          getPhoneModelBytes() {
+        java.lang.Object ref = phoneModel_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          phoneModel_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 手机型号
+       * </pre>
+       *
+       * <code>string PhoneModel = 2;</code>
+       * @param value The phoneModel to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPhoneModel(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        phoneModel_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 手机型号
+       * </pre>
+       *
+       * <code>string PhoneModel = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPhoneModel() {
+        
+        phoneModel_ = getDefaultInstance().getPhoneModel();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 手机型号
+       * </pre>
+       *
+       * <code>string PhoneModel = 2;</code>
+       * @param value The bytes for phoneModel to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPhoneModelBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        phoneModel_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int oSVerNumber_ ;
+      /**
+       * <code>int32 OSVerNumber = 3;</code>
+       * @return The oSVerNumber.
+       */
+      public int getOSVerNumber() {
+        return oSVerNumber_;
+      }
+      /**
+       * <code>int32 OSVerNumber = 3;</code>
+       * @param value The oSVerNumber to set.
+       * @return This builder for chaining.
+       */
+      public Builder setOSVerNumber(int value) {
+        
+        oSVerNumber_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 OSVerNumber = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearOSVerNumber() {
+        
+        oSVerNumber_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage> appInfos_ =
+        java.util.Collections.emptyList();
+      private void ensureAppInfosIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          appInfos_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage>(appInfos_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder> appInfosBuilder_;
+
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage> getAppInfosList() {
+        if (appInfosBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(appInfos_);
+        } else {
+          return appInfosBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public int getAppInfosCount() {
+        if (appInfosBuilder_ == null) {
+          return appInfos_.size();
+        } else {
+          return appInfosBuilder_.getCount();
+        }
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage getAppInfos(int index) {
+        if (appInfosBuilder_ == null) {
+          return appInfos_.get(index);
+        } else {
+          return appInfosBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder setAppInfos(
+          int index, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage value) {
+        if (appInfosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAppInfosIsMutable();
+          appInfos_.set(index, value);
+          onChanged();
+        } else {
+          appInfosBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder setAppInfos(
+          int index, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder builderForValue) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          appInfosBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder addAppInfos(Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage value) {
+        if (appInfosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAppInfosIsMutable();
+          appInfos_.add(value);
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder addAppInfos(
+          int index, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage value) {
+        if (appInfosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAppInfosIsMutable();
+          appInfos_.add(index, value);
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder addAppInfos(
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder builderForValue) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.add(builderForValue.build());
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder addAppInfos(
+          int index, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder builderForValue) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder addAllAppInfos(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage> values) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, appInfos_);
+          onChanged();
+        } else {
+          appInfosBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder clearAppInfos() {
+        if (appInfosBuilder_ == null) {
+          appInfos_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          appInfosBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Builder removeAppInfos(int index) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.remove(index);
+          onChanged();
+        } else {
+          appInfosBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder getAppInfosBuilder(
+          int index) {
+        return getAppInfosFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder getAppInfosOrBuilder(
+          int index) {
+        if (appInfosBuilder_ == null) {
+          return appInfos_.get(index);  } else {
+          return appInfosBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder> 
+           getAppInfosOrBuilderList() {
+        if (appInfosBuilder_ != null) {
+          return appInfosBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(appInfos_);
+        }
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder addAppInfosBuilder() {
+        return getAppInfosFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder addAppInfosBuilder(
+          int index) {
+        return getAppInfosFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.getDefaultInstance());
+      }
+      /**
+       * <pre>
+       * App信息
+       * </pre>
+       *
+       * <code>repeated .Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage AppInfos = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder> 
+           getAppInfosBuilderList() {
+        return getAppInfosFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder> 
+          getAppInfosFieldBuilder() {
+        if (appInfosBuilder_ == null) {
+          appInfosBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessage.Builder, Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage.DeviceAppInfoMessageOrBuilder>(
+                  appInfos_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          appInfos_ = null;
+        }
+        return appInfosBuilder_;
+      }
+
+      private java.lang.Object netType_ = "";
+      /**
+       * <code>string NetType = 5;</code>
+       * @return The netType.
+       */
+      public java.lang.String getNetType() {
+        java.lang.Object ref = netType_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          netType_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string NetType = 5;</code>
+       * @return The bytes for netType.
+       */
+      public com.google.protobuf.ByteString
+          getNetTypeBytes() {
+        java.lang.Object ref = netType_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          netType_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string NetType = 5;</code>
+       * @param value The netType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNetType(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        netType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string NetType = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNetType() {
+        
+        netType_ = getDefaultInstance().getNetType();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string NetType = 5;</code>
+       * @param value The bytes for netType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNetTypeBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        netType_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 微信id
+       * </pre>
+       *
+       * <code>int64 WxId = 6;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 微信id
+       * </pre>
+       *
+       * <code>int64 WxId = 6;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信id
+       * </pre>
+       *
+       * <code>int64 WxId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object iMEI_ = "";
+      /**
+       * <code>string IMEI = 7;</code>
+       * @return The iMEI.
+       */
+      public java.lang.String getIMEI() {
+        java.lang.Object ref = iMEI_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          iMEI_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string IMEI = 7;</code>
+       * @return The bytes for iMEI.
+       */
+      public com.google.protobuf.ByteString
+          getIMEIBytes() {
+        java.lang.Object ref = iMEI_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          iMEI_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string IMEI = 7;</code>
+       * @param value The iMEI to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMEI(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        iMEI_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string IMEI = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIMEI() {
+        
+        iMEI_ = getDefaultInstance().getIMEI();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string IMEI = 7;</code>
+       * @param value The bytes for iMEI to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMEIBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        iMEI_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object iMSI1_ = "";
+      /**
+       * <pre>
+       * SIM卡1的IMSI
+       * </pre>
+       *
+       * <code>string IMSI1 = 8;</code>
+       * @return The iMSI1.
+       */
+      public java.lang.String getIMSI1() {
+        java.lang.Object ref = iMSI1_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          iMSI1_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡1的IMSI
+       * </pre>
+       *
+       * <code>string IMSI1 = 8;</code>
+       * @return The bytes for iMSI1.
+       */
+      public com.google.protobuf.ByteString
+          getIMSI1Bytes() {
+        java.lang.Object ref = iMSI1_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          iMSI1_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡1的IMSI
+       * </pre>
+       *
+       * <code>string IMSI1 = 8;</code>
+       * @param value The iMSI1 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMSI1(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        iMSI1_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡1的IMSI
+       * </pre>
+       *
+       * <code>string IMSI1 = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIMSI1() {
+        
+        iMSI1_ = getDefaultInstance().getIMSI1();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡1的IMSI
+       * </pre>
+       *
+       * <code>string IMSI1 = 8;</code>
+       * @param value The bytes for iMSI1 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMSI1Bytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        iMSI1_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object iMSI2_ = "";
+      /**
+       * <pre>
+       * SIM卡2的IMSI,
+       * </pre>
+       *
+       * <code>string IMSI2 = 9;</code>
+       * @return The iMSI2.
+       */
+      public java.lang.String getIMSI2() {
+        java.lang.Object ref = iMSI2_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          iMSI2_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡2的IMSI,
+       * </pre>
+       *
+       * <code>string IMSI2 = 9;</code>
+       * @return The bytes for iMSI2.
+       */
+      public com.google.protobuf.ByteString
+          getIMSI2Bytes() {
+        java.lang.Object ref = iMSI2_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          iMSI2_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡2的IMSI,
+       * </pre>
+       *
+       * <code>string IMSI2 = 9;</code>
+       * @param value The iMSI2 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMSI2(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        iMSI2_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡2的IMSI,
+       * </pre>
+       *
+       * <code>string IMSI2 = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIMSI2() {
+        
+        iMSI2_ = getDefaultInstance().getIMSI2();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡2的IMSI,
+       * </pre>
+       *
+       * <code>string IMSI2 = 9;</code>
+       * @param value The bytes for iMSI2 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMSI2Bytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        iMSI2_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object number1_ = "";
+      /**
+       * <pre>
+       * SIM卡1的手机号,有可能读不到
+       * </pre>
+       *
+       * <code>string Number1 = 10;</code>
+       * @return The number1.
+       */
+      public java.lang.String getNumber1() {
+        java.lang.Object ref = number1_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          number1_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡1的手机号,有可能读不到
+       * </pre>
+       *
+       * <code>string Number1 = 10;</code>
+       * @return The bytes for number1.
+       */
+      public com.google.protobuf.ByteString
+          getNumber1Bytes() {
+        java.lang.Object ref = number1_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          number1_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡1的手机号,有可能读不到
+       * </pre>
+       *
+       * <code>string Number1 = 10;</code>
+       * @param value The number1 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNumber1(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        number1_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡1的手机号,有可能读不到
+       * </pre>
+       *
+       * <code>string Number1 = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNumber1() {
+        
+        number1_ = getDefaultInstance().getNumber1();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡1的手机号,有可能读不到
+       * </pre>
+       *
+       * <code>string Number1 = 10;</code>
+       * @param value The bytes for number1 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNumber1Bytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        number1_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object number2_ = "";
+      /**
+       * <pre>
+       * SIM卡2的手机好,有可能读不到
+       * </pre>
+       *
+       * <code>string Number2 = 11;</code>
+       * @return The number2.
+       */
+      public java.lang.String getNumber2() {
+        java.lang.Object ref = number2_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          number2_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡2的手机好,有可能读不到
+       * </pre>
+       *
+       * <code>string Number2 = 11;</code>
+       * @return The bytes for number2.
+       */
+      public com.google.protobuf.ByteString
+          getNumber2Bytes() {
+        java.lang.Object ref = number2_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          number2_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * SIM卡2的手机好,有可能读不到
+       * </pre>
+       *
+       * <code>string Number2 = 11;</code>
+       * @param value The number2 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNumber2(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        number2_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡2的手机好,有可能读不到
+       * </pre>
+       *
+       * <code>string Number2 = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNumber2() {
+        
+        number2_ = getDefaultInstance().getNumber2();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * SIM卡2的手机好,有可能读不到
+       * </pre>
+       *
+       * <code>string Number2 = 11;</code>
+       * @param value The bytes for number2 to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNumber2Bytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        number2_ = value;
+        onChanged();
+        return this;
+      }
+
+      private boolean isHook_ ;
+      /**
+       * <code>bool IsHook = 12;</code>
+       * @return The isHook.
+       */
+      public boolean getIsHook() {
+        return isHook_;
+      }
+      /**
+       * <code>bool IsHook = 12;</code>
+       * @param value The isHook to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIsHook(boolean value) {
+        
+        isHook_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool IsHook = 12;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIsHook() {
+        
+        isHook_ = false;
+        onChanged();
+        return this;
+      }
+
+      private boolean wxSupport_ ;
+      /**
+       * <code>bool WxSupport = 13;</code>
+       * @return The wxSupport.
+       */
+      public boolean getWxSupport() {
+        return wxSupport_;
+      }
+      /**
+       * <code>bool WxSupport = 13;</code>
+       * @param value The wxSupport to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxSupport(boolean value) {
+        
+        wxSupport_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>bool WxSupport = 13;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxSupport() {
+        
+        wxSupport_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PostDeviceInfoNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PostDeviceInfoNoticeMessage>() {
+      @java.lang.Override
+      public PostDeviceInfoNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PostDeviceInfoNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PostDeviceInfoNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PostDeviceInfoNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostDeviceInfoNotice.PostDeviceInfoNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\033WPostDeviceInfoNotice.proto\022\020Im.Scrm.W" +
+      "w.Proto\"\242\003\n\033PostDeviceInfoNoticeMessage\022" +
+      "\022\n\nPhoneBrand\030\001 \001(\t\022\022\n\nPhoneModel\030\002 \001(\t\022" +
+      "\023\n\013OSVerNumber\030\003 \001(\005\022T\n\010AppInfos\030\004 \003(\0132B" +
+      ".Im.Scrm.Ww.Proto.PostDeviceInfoNoticeMe" +
+      "ssage.DeviceAppInfoMessage\022\017\n\007NetType\030\005 " +
+      "\001(\t\022\014\n\004WxId\030\006 \001(\003\022\014\n\004IMEI\030\007 \001(\t\022\r\n\005IMSI1" +
+      "\030\010 \001(\t\022\r\n\005IMSI2\030\t \001(\t\022\017\n\007Number1\030\n \001(\t\022\017" +
+      "\n\007Number2\030\013 \001(\t\022\016\n\006IsHook\030\014 \001(\010\022\021\n\tWxSup" +
+      "port\030\r \001(\010\032`\n\024DeviceAppInfoMessage\022\023\n\013Pa" +
+      "ckageName\030\001 \001(\t\022\017\n\007AppName\030\002 \001(\t\022\021\n\tVerN" +
+      "umber\030\003 \001(\005\022\017\n\007Version\030\004 \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor,
+        new java.lang.String[] { "PhoneBrand", "PhoneModel", "OSVerNumber", "AppInfos", "NetType", "WxId", "IMEI", "IMSI1", "IMSI2", "Number1", "Number2", "IsHook", "WxSupport", });
+    internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_descriptor =
+      internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_descriptor.getNestedTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PostDeviceInfoNoticeMessage_DeviceAppInfoMessage_descriptor,
+        new java.lang.String[] { "PackageName", "AppName", "VerNumber", "Version", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 644 - 0
src/main/java/Im/Scrm/Ww/Proto/WPostMessageReadNotice.java

@@ -0,0 +1,644 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPostMessageReadNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPostMessageReadNotice {
+  private WPostMessageReadNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PostMessageReadNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 所属wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话id
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage}
+   */
+  public  static final class PostMessageReadNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage)
+      PostMessageReadNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PostMessageReadNoticeMessage.newBuilder() to construct.
+    private PostMessageReadNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PostMessageReadNoticeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PostMessageReadNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PostMessageReadNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostMessageReadNotice.internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostMessageReadNotice.internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.class, Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 所属wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话id
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage other = (Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage)
+        Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostMessageReadNotice.internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostMessageReadNotice.internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.class, Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostMessageReadNotice.internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage result = new Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话id
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话id
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话id
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PostMessageReadNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PostMessageReadNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PostMessageReadNoticeMessage>() {
+      @java.lang.Override
+      public PostMessageReadNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PostMessageReadNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PostMessageReadNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PostMessageReadNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostMessageReadNotice.PostMessageReadNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\034WPostMessageReadNotice.proto\022\020Im.Scrm." +
+      "Ww.Proto\"<\n\034PostMessageReadNoticeMessage" +
+      "\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PostMessageReadNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 4781 - 0
src/main/java/Im/Scrm/Ww/Proto/WPostSnsTask.java

@@ -0,0 +1,4781 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPostSnsTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPostSnsTask {
+  private WPostSnsTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PostSnsTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PostSnsTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *发布的文案
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    java.lang.String getContent();
+    /**
+     * <pre>
+     *发布的文案
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes();
+
+    /**
+     * <pre>
+     *携带的图片、视频、链接等资源
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+     * @return Whether the media field is set.
+     */
+    boolean hasMedia();
+    /**
+     * <pre>
+     *携带的图片、视频、链接等资源
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+     * @return The media.
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage getMedia();
+    /**
+     * <pre>
+     *携带的图片、视频、链接等资源
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder getMediaOrBuilder();
+
+    /**
+     * <pre>
+     * 评论 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The comment.
+     */
+    java.lang.String getComment();
+    /**
+     * <pre>
+     * 评论 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The bytes for comment.
+     */
+    com.google.protobuf.ByteString
+        getCommentBytes();
+
+    /**
+     * <pre>
+     * 可见范围
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+     * @return Whether the visible field is set.
+     */
+    boolean hasVisible();
+    /**
+     * <pre>
+     * 可见范围
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+     * @return The visible.
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage getVisible();
+    /**
+     * <pre>
+     * 可见范围
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder getVisibleOrBuilder();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 地理信息 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+     * @return Whether the poi field is set.
+     */
+    boolean hasPoi();
+    /**
+     * <pre>
+     * 地理信息 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+     * @return The poi.
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage getPoi();
+    /**
+     * <pre>
+     * 地理信息 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder getPoiOrBuilder();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PostSnsTaskMessage}
+   */
+  public  static final class PostSnsTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PostSnsTaskMessage)
+      PostSnsTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PostSnsTaskMessage.newBuilder() to construct.
+    private PostSnsTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PostSnsTaskMessage() {
+      content_ = "";
+      comment_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PostSnsTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PostSnsTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              content_ = s;
+              break;
+            }
+            case 26: {
+              Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder subBuilder = null;
+              if (media_ != null) {
+                subBuilder = media_.toBuilder();
+              }
+              media_ = input.readMessage(Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(media_);
+                media_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              comment_ = s;
+              break;
+            }
+            case 42: {
+              Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder subBuilder = null;
+              if (visible_ != null) {
+                subBuilder = visible_.toBuilder();
+              }
+              visible_ = input.readMessage(Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(visible_);
+                visible_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 58: {
+              Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder subBuilder = null;
+              if (poi_ != null) {
+                subBuilder = poi_.toBuilder();
+              }
+              poi_ = input.readMessage(Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(poi_);
+                poi_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 2;
+    private volatile java.lang.Object content_;
+    /**
+     * <pre>
+     *发布的文案
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    public java.lang.String getContent() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        content_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *发布的文案
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        content_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MEDIA_FIELD_NUMBER = 3;
+    private Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage media_;
+    /**
+     * <pre>
+     *携带的图片、视频、链接等资源
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+     * @return Whether the media field is set.
+     */
+    public boolean hasMedia() {
+      return media_ != null;
+    }
+    /**
+     * <pre>
+     *携带的图片、视频、链接等资源
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+     * @return The media.
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage getMedia() {
+      return media_ == null ? Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.getDefaultInstance() : media_;
+    }
+    /**
+     * <pre>
+     *携带的图片、视频、链接等资源
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder getMediaOrBuilder() {
+      return getMedia();
+    }
+
+    public static final int COMMENT_FIELD_NUMBER = 4;
+    private volatile java.lang.Object comment_;
+    /**
+     * <pre>
+     * 评论 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The comment.
+     */
+    public java.lang.String getComment() {
+      java.lang.Object ref = comment_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        comment_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 评论 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The bytes for comment.
+     */
+    public com.google.protobuf.ByteString
+        getCommentBytes() {
+      java.lang.Object ref = comment_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        comment_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int VISIBLE_FIELD_NUMBER = 5;
+    private Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage visible_;
+    /**
+     * <pre>
+     * 可见范围
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+     * @return Whether the visible field is set.
+     */
+    public boolean hasVisible() {
+      return visible_ != null;
+    }
+    /**
+     * <pre>
+     * 可见范围
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+     * @return The visible.
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage getVisible() {
+      return visible_ == null ? Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.getDefaultInstance() : visible_;
+    }
+    /**
+     * <pre>
+     * 可见范围
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder getVisibleOrBuilder() {
+      return getVisible();
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int POI_FIELD_NUMBER = 7;
+    private Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage poi_;
+    /**
+     * <pre>
+     * 地理信息 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+     * @return Whether the poi field is set.
+     */
+    public boolean hasPoi() {
+      return poi_ != null;
+    }
+    /**
+     * <pre>
+     * 地理信息 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+     * @return The poi.
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage getPoi() {
+      return poi_ == null ? Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.getDefaultInstance() : poi_;
+    }
+    /**
+     * <pre>
+     * 地理信息 TODO: 暂未实现
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder getPoiOrBuilder() {
+      return getPoi();
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
+      }
+      if (media_ != null) {
+        output.writeMessage(3, getMedia());
+      }
+      if (!getCommentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, comment_);
+      }
+      if (visible_ != null) {
+        output.writeMessage(5, getVisible());
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      if (poi_ != null) {
+        output.writeMessage(7, getPoi());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
+      }
+      if (media_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getMedia());
+      }
+      if (!getCommentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, comment_);
+      }
+      if (visible_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, getVisible());
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      if (poi_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(7, getPoi());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage other = (Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (hasMedia() != other.hasMedia()) return false;
+      if (hasMedia()) {
+        if (!getMedia()
+            .equals(other.getMedia())) return false;
+      }
+      if (!getComment()
+          .equals(other.getComment())) return false;
+      if (hasVisible() != other.hasVisible()) return false;
+      if (hasVisible()) {
+        if (!getVisible()
+            .equals(other.getVisible())) return false;
+      }
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (hasPoi() != other.hasPoi()) return false;
+      if (hasPoi()) {
+        if (!getPoi()
+            .equals(other.getPoi())) return false;
+      }
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      if (hasMedia()) {
+        hash = (37 * hash) + MEDIA_FIELD_NUMBER;
+        hash = (53 * hash) + getMedia().hashCode();
+      }
+      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
+      hash = (53 * hash) + getComment().hashCode();
+      if (hasVisible()) {
+        hash = (37 * hash) + VISIBLE_FIELD_NUMBER;
+        hash = (53 * hash) + getVisible().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      if (hasPoi()) {
+        hash = (37 * hash) + POI_FIELD_NUMBER;
+        hash = (53 * hash) + getPoi().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PostSnsTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PostSnsTaskMessage)
+        Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        content_ = "";
+
+        if (mediaBuilder_ == null) {
+          media_ = null;
+        } else {
+          media_ = null;
+          mediaBuilder_ = null;
+        }
+        comment_ = "";
+
+        if (visibleBuilder_ == null) {
+          visible_ = null;
+        } else {
+          visible_ = null;
+          visibleBuilder_ = null;
+        }
+        taskId_ = 0L;
+
+        if (poiBuilder_ == null) {
+          poi_ = null;
+        } else {
+          poi_ = null;
+          poiBuilder_ = null;
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage result = new Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.content_ = content_;
+        if (mediaBuilder_ == null) {
+          result.media_ = media_;
+        } else {
+          result.media_ = mediaBuilder_.build();
+        }
+        result.comment_ = comment_;
+        if (visibleBuilder_ == null) {
+          result.visible_ = visible_;
+        } else {
+          result.visible_ = visibleBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        if (poiBuilder_ == null) {
+          result.poi_ = poi_;
+        } else {
+          result.poi_ = poiBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getContent().isEmpty()) {
+          content_ = other.content_;
+          onChanged();
+        }
+        if (other.hasMedia()) {
+          mergeMedia(other.getMedia());
+        }
+        if (!other.getComment().isEmpty()) {
+          comment_ = other.comment_;
+          onChanged();
+        }
+        if (other.hasVisible()) {
+          mergeVisible(other.getVisible());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.hasPoi()) {
+          mergePoi(other.getPoi());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object content_ = "";
+      /**
+       * <pre>
+       *发布的文案
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return The content.
+       */
+      public java.lang.String getContent() {
+        java.lang.Object ref = content_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          content_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *发布的文案
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return The bytes for content.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes() {
+        java.lang.Object ref = content_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          content_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *发布的文案
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *发布的文案
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *发布的文案
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @param value The bytes for content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        content_ = value;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage media_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder> mediaBuilder_;
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       * @return Whether the media field is set.
+       */
+      public boolean hasMedia() {
+        return mediaBuilder_ != null || media_ != null;
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       * @return The media.
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage getMedia() {
+        if (mediaBuilder_ == null) {
+          return media_ == null ? Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.getDefaultInstance() : media_;
+        } else {
+          return mediaBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      public Builder setMedia(Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage value) {
+        if (mediaBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          media_ = value;
+          onChanged();
+        } else {
+          mediaBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      public Builder setMedia(
+          Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder builderForValue) {
+        if (mediaBuilder_ == null) {
+          media_ = builderForValue.build();
+          onChanged();
+        } else {
+          mediaBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      public Builder mergeMedia(Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage value) {
+        if (mediaBuilder_ == null) {
+          if (media_ != null) {
+            media_ =
+              Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.newBuilder(media_).mergeFrom(value).buildPartial();
+          } else {
+            media_ = value;
+          }
+          onChanged();
+        } else {
+          mediaBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      public Builder clearMedia() {
+        if (mediaBuilder_ == null) {
+          media_ = null;
+          onChanged();
+        } else {
+          media_ = null;
+          mediaBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder getMediaBuilder() {
+        
+        onChanged();
+        return getMediaFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder getMediaOrBuilder() {
+        if (mediaBuilder_ != null) {
+          return mediaBuilder_.getMessageOrBuilder();
+        } else {
+          return media_ == null ?
+              Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.getDefaultInstance() : media_;
+        }
+      }
+      /**
+       * <pre>
+       *携带的图片、视频、链接等资源
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage Media = 3;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder> 
+          getMediaFieldBuilder() {
+        if (mediaBuilder_ == null) {
+          mediaBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder>(
+                  getMedia(),
+                  getParentForChildren(),
+                  isClean());
+          media_ = null;
+        }
+        return mediaBuilder_;
+      }
+
+      private java.lang.Object comment_ = "";
+      /**
+       * <pre>
+       * 评论 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @return The comment.
+       */
+      public java.lang.String getComment() {
+        java.lang.Object ref = comment_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          comment_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @return The bytes for comment.
+       */
+      public com.google.protobuf.ByteString
+          getCommentBytes() {
+        java.lang.Object ref = comment_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          comment_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @param value The comment to set.
+       * @return This builder for chaining.
+       */
+      public Builder setComment(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        comment_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearComment() {
+        
+        comment_ = getDefaultInstance().getComment();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @param value The bytes for comment to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        comment_ = value;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage visible_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder> visibleBuilder_;
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       * @return Whether the visible field is set.
+       */
+      public boolean hasVisible() {
+        return visibleBuilder_ != null || visible_ != null;
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       * @return The visible.
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage getVisible() {
+        if (visibleBuilder_ == null) {
+          return visible_ == null ? Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.getDefaultInstance() : visible_;
+        } else {
+          return visibleBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      public Builder setVisible(Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage value) {
+        if (visibleBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          visible_ = value;
+          onChanged();
+        } else {
+          visibleBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      public Builder setVisible(
+          Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder builderForValue) {
+        if (visibleBuilder_ == null) {
+          visible_ = builderForValue.build();
+          onChanged();
+        } else {
+          visibleBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      public Builder mergeVisible(Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage value) {
+        if (visibleBuilder_ == null) {
+          if (visible_ != null) {
+            visible_ =
+              Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.newBuilder(visible_).mergeFrom(value).buildPartial();
+          } else {
+            visible_ = value;
+          }
+          onChanged();
+        } else {
+          visibleBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      public Builder clearVisible() {
+        if (visibleBuilder_ == null) {
+          visible_ = null;
+          onChanged();
+        } else {
+          visible_ = null;
+          visibleBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder getVisibleBuilder() {
+        
+        onChanged();
+        return getVisibleFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder getVisibleOrBuilder() {
+        if (visibleBuilder_ != null) {
+          return visibleBuilder_.getMessageOrBuilder();
+        } else {
+          return visible_ == null ?
+              Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.getDefaultInstance() : visible_;
+        }
+      }
+      /**
+       * <pre>
+       * 可见范围
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.VisibleMessage Visible = 5;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder> 
+          getVisibleFieldBuilder() {
+        if (visibleBuilder_ == null) {
+          visibleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder>(
+                  getVisible(),
+                  getParentForChildren(),
+                  isClean());
+          visible_ = null;
+        }
+        return visibleBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage poi_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder> poiBuilder_;
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       * @return Whether the poi field is set.
+       */
+      public boolean hasPoi() {
+        return poiBuilder_ != null || poi_ != null;
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       * @return The poi.
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage getPoi() {
+        if (poiBuilder_ == null) {
+          return poi_ == null ? Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.getDefaultInstance() : poi_;
+        } else {
+          return poiBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      public Builder setPoi(Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage value) {
+        if (poiBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          poi_ = value;
+          onChanged();
+        } else {
+          poiBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      public Builder setPoi(
+          Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder builderForValue) {
+        if (poiBuilder_ == null) {
+          poi_ = builderForValue.build();
+          onChanged();
+        } else {
+          poiBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      public Builder mergePoi(Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage value) {
+        if (poiBuilder_ == null) {
+          if (poi_ != null) {
+            poi_ =
+              Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.newBuilder(poi_).mergeFrom(value).buildPartial();
+          } else {
+            poi_ = value;
+          }
+          onChanged();
+        } else {
+          poiBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      public Builder clearPoi() {
+        if (poiBuilder_ == null) {
+          poi_ = null;
+          onChanged();
+        } else {
+          poi_ = null;
+          poiBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder getPoiBuilder() {
+        
+        onChanged();
+        return getPoiFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder getPoiOrBuilder() {
+        if (poiBuilder_ != null) {
+          return poiBuilder_.getMessageOrBuilder();
+        } else {
+          return poi_ == null ?
+              Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.getDefaultInstance() : poi_;
+        }
+      }
+      /**
+       * <pre>
+       * 地理信息 TODO: 暂未实现
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.PoiMessage Poi = 7;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder> 
+          getPoiFieldBuilder() {
+        if (poiBuilder_ == null) {
+          poiBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder>(
+                  getPoi(),
+                  getParentForChildren(),
+                  isClean());
+          poi_ = null;
+        }
+        return poiBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PostSnsTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PostSnsTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PostSnsTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PostSnsTaskMessage>() {
+      @java.lang.Override
+      public PostSnsTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PostSnsTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PostSnsTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PostSnsTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostSnsTask.PostSnsTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface MediaMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.MediaMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *附件类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+     * @return The enum numeric value on the wire for type.
+     */
+    int getTypeValue();
+    /**
+     * <pre>
+     *附件类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+     * @return The type.
+     */
+    Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType getType();
+
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @return A list containing the content.
+     */
+    java.util.List<java.lang.String>
+        getContentList();
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @return The count of content.
+     */
+    int getContentCount();
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @param index The index of the element to return.
+     * @return The content at the given index.
+     */
+    java.lang.String getContent(int index);
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the content at the given index.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes(int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.MediaMessage}
+   */
+  public  static final class MediaMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.MediaMessage)
+      MediaMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use MediaMessage.newBuilder() to construct.
+    private MediaMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private MediaMessage() {
+      type_ = 0;
+      content_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new MediaMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private MediaMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              int rawValue = input.readEnum();
+
+              type_ = rawValue;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                content_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              content_.add(s);
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          content_ = content_.getUnmodifiableView();
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_MediaMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_MediaMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder.class);
+    }
+
+    /**
+     * <pre>
+     *附件类型
+     * </pre>
+     *
+     * Protobuf enum {@code Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType}
+     */
+    public enum EnumAttachType
+        implements com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <pre>
+       *图片
+       * </pre>
+       *
+       * <code>Picture = 0;</code>
+       */
+      Picture(0),
+      /**
+       * <pre>
+       *短视频
+       * </pre>
+       *
+       * <code>Video = 1;</code>
+       */
+      Video(1),
+      /**
+       * <pre>
+       *链接
+       * </pre>
+       *
+       * <code>Link = 2;</code>
+       */
+      Link(2),
+      UNRECOGNIZED(-1),
+      ;
+
+      /**
+       * <pre>
+       *图片
+       * </pre>
+       *
+       * <code>Picture = 0;</code>
+       */
+      public static final int Picture_VALUE = 0;
+      /**
+       * <pre>
+       *短视频
+       * </pre>
+       *
+       * <code>Video = 1;</code>
+       */
+      public static final int Video_VALUE = 1;
+      /**
+       * <pre>
+       *链接
+       * </pre>
+       *
+       * <code>Link = 2;</code>
+       */
+      public static final int Link_VALUE = 2;
+
+
+      public final int getNumber() {
+        if (this == UNRECOGNIZED) {
+          throw new java.lang.IllegalArgumentException(
+              "Can't get the number of an unknown enum value.");
+        }
+        return value;
+      }
+
+      /**
+       * @param value The numeric wire value of the corresponding enum entry.
+       * @return The enum associated with the given numeric wire value.
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static EnumAttachType valueOf(int value) {
+        return forNumber(value);
+      }
+
+      /**
+       * @param value The numeric wire value of the corresponding enum entry.
+       * @return The enum associated with the given numeric wire value.
+       */
+      public static EnumAttachType forNumber(int value) {
+        switch (value) {
+          case 0: return Picture;
+          case 1: return Video;
+          case 2: return Link;
+          default: return null;
+        }
+      }
+
+      public static com.google.protobuf.Internal.EnumLiteMap<EnumAttachType>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static final com.google.protobuf.Internal.EnumLiteMap<
+          EnumAttachType> internalValueMap =
+            new com.google.protobuf.Internal.EnumLiteMap<EnumAttachType>() {
+              public EnumAttachType findValueByNumber(int number) {
+                return EnumAttachType.forNumber(number);
+              }
+            };
+
+      public final com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(ordinal());
+      }
+      public final com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.getDescriptor().getEnumTypes().get(0);
+      }
+
+      private static final EnumAttachType[] VALUES = values();
+
+      public static EnumAttachType valueOf(
+          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+        if (desc.getType() != getDescriptor()) {
+          throw new java.lang.IllegalArgumentException(
+            "EnumValueDescriptor is not for this type.");
+        }
+        if (desc.getIndex() == -1) {
+          return UNRECOGNIZED;
+        }
+        return VALUES[desc.getIndex()];
+      }
+
+      private final int value;
+
+      private EnumAttachType(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType)
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 1;
+    private int type_;
+    /**
+     * <pre>
+     *附件类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+     * @return The enum numeric value on the wire for type.
+     */
+    public int getTypeValue() {
+      return type_;
+    }
+    /**
+     * <pre>
+     *附件类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+     * @return The type.
+     */
+    public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType getType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType result = Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType.valueOf(type_);
+      return result == null ? Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 2;
+    private com.google.protobuf.LazyStringList content_;
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @return A list containing the content.
+     */
+    public com.google.protobuf.ProtocolStringList
+        getContentList() {
+      return content_;
+    }
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @return The count of content.
+     */
+    public int getContentCount() {
+      return content_.size();
+    }
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @param index The index of the element to return.
+     * @return The content at the given index.
+     */
+    public java.lang.String getContent(int index) {
+      return content_.get(index);
+    }
+    /**
+     * <pre>
+     *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+     * </pre>
+     *
+     * <code>repeated string Content = 2;</code>
+     * @param index The index of the value to return.
+     * @return The bytes of the content at the given index.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes(int index) {
+      return content_.getByteString(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (type_ != Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType.Picture.getNumber()) {
+        output.writeEnum(1, type_);
+      }
+      for (int i = 0; i < content_.size(); i++) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_.getRaw(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (type_ != Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType.Picture.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, type_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < content_.size(); i++) {
+          dataSize += computeStringSizeNoTag(content_.getRaw(i));
+        }
+        size += dataSize;
+        size += 1 * getContentList().size();
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage other = (Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage) obj;
+
+      if (type_ != other.type_) return false;
+      if (!getContentList()
+          .equals(other.getContentList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + type_;
+      if (getContentCount() > 0) {
+        hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+        hash = (53 * hash) + getContentList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.MediaMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.MediaMessage)
+        Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_MediaMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_MediaMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        type_ = 0;
+
+        content_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_MediaMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage build() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage result = new Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.type_ = type_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          content_ = content_.getUnmodifiableView();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.content_ = content_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.getDefaultInstance()) return this;
+        if (other.type_ != 0) {
+          setTypeValue(other.getTypeValue());
+        }
+        if (!other.content_.isEmpty()) {
+          if (content_.isEmpty()) {
+            content_ = other.content_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureContentIsMutable();
+            content_.addAll(other.content_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private int type_ = 0;
+      /**
+       * <pre>
+       *附件类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+       * @return The enum numeric value on the wire for type.
+       */
+      public int getTypeValue() {
+        return type_;
+      }
+      /**
+       * <pre>
+       *附件类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+       * @param value The enum numeric value on the wire for type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTypeValue(int value) {
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *附件类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+       * @return The type.
+       */
+      public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType getType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType result = Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType.valueOf(type_);
+        return result == null ? Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       *附件类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage.EnumAttachType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        type_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *附件类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.MediaMessage.EnumAttachType Type = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.LazyStringList content_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureContentIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          content_ = new com.google.protobuf.LazyStringArrayList(content_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @return A list containing the content.
+       */
+      public com.google.protobuf.ProtocolStringList
+          getContentList() {
+        return content_.getUnmodifiableView();
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @return The count of content.
+       */
+      public int getContentCount() {
+        return content_.size();
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @param index The index of the element to return.
+       * @return The content at the given index.
+       */
+      public java.lang.String getContent(int index) {
+        return content_.get(index);
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @param index The index of the value to return.
+       * @return The bytes of the content at the given index.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes(int index) {
+        return content_.getByteString(index);
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @param index The index to set the value at.
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureContentIsMutable();
+        content_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @param value The content to add.
+       * @return This builder for chaining.
+       */
+      public Builder addContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureContentIsMutable();
+        content_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @param values The content to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllContent(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureContentIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, content_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        content_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *资源url,注意次序![视频url,缩略图url];[图片url,图片url,..];[链接url;标题;图片url]
+       * </pre>
+       *
+       * <code>repeated string Content = 2;</code>
+       * @param value The bytes of the content to add.
+       * @return This builder for chaining.
+       */
+      public Builder addContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        ensureContentIsMutable();
+        content_.add(value);
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.MediaMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.MediaMessage)
+    private static final Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<MediaMessage>
+        PARSER = new com.google.protobuf.AbstractParser<MediaMessage>() {
+      @java.lang.Override
+      public MediaMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new MediaMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<MediaMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<MediaMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostSnsTask.MediaMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface VisibleMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.VisibleMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>repeated int64 userIds = 1;</code>
+     * @return A list containing the userIds.
+     */
+    java.util.List<java.lang.Long> getUserIdsList();
+    /**
+     * <code>repeated int64 userIds = 1;</code>
+     * @return The count of userIds.
+     */
+    int getUserIdsCount();
+    /**
+     * <code>repeated int64 userIds = 1;</code>
+     * @param index The index of the element to return.
+     * @return The userIds at the given index.
+     */
+    long getUserIds(int index);
+
+    /**
+     * <code>repeated int64 labelIds = 2;</code>
+     * @return A list containing the labelIds.
+     */
+    java.util.List<java.lang.Long> getLabelIdsList();
+    /**
+     * <code>repeated int64 labelIds = 2;</code>
+     * @return The count of labelIds.
+     */
+    int getLabelIdsCount();
+    /**
+     * <code>repeated int64 labelIds = 2;</code>
+     * @param index The index of the element to return.
+     * @return The labelIds at the given index.
+     */
+    long getLabelIds(int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.VisibleMessage}
+   */
+  public  static final class VisibleMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.VisibleMessage)
+      VisibleMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use VisibleMessage.newBuilder() to construct.
+    private VisibleMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private VisibleMessage() {
+      userIds_ = emptyLongList();
+      labelIds_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new VisibleMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private VisibleMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                userIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              userIds_.addLong(input.readInt64());
+              break;
+            }
+            case 10: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                userIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                userIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 16: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                labelIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              labelIds_.addLong(input.readInt64());
+              break;
+            }
+            case 18: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+                labelIds_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                labelIds_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          userIds_.makeImmutable(); // C
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          labelIds_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_VisibleMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_VisibleMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder.class);
+    }
+
+    public static final int USERIDS_FIELD_NUMBER = 1;
+    private com.google.protobuf.Internal.LongList userIds_;
+    /**
+     * <code>repeated int64 userIds = 1;</code>
+     * @return A list containing the userIds.
+     */
+    public java.util.List<java.lang.Long>
+        getUserIdsList() {
+      return userIds_;
+    }
+    /**
+     * <code>repeated int64 userIds = 1;</code>
+     * @return The count of userIds.
+     */
+    public int getUserIdsCount() {
+      return userIds_.size();
+    }
+    /**
+     * <code>repeated int64 userIds = 1;</code>
+     * @param index The index of the element to return.
+     * @return The userIds at the given index.
+     */
+    public long getUserIds(int index) {
+      return userIds_.getLong(index);
+    }
+    private int userIdsMemoizedSerializedSize = -1;
+
+    public static final int LABELIDS_FIELD_NUMBER = 2;
+    private com.google.protobuf.Internal.LongList labelIds_;
+    /**
+     * <code>repeated int64 labelIds = 2;</code>
+     * @return A list containing the labelIds.
+     */
+    public java.util.List<java.lang.Long>
+        getLabelIdsList() {
+      return labelIds_;
+    }
+    /**
+     * <code>repeated int64 labelIds = 2;</code>
+     * @return The count of labelIds.
+     */
+    public int getLabelIdsCount() {
+      return labelIds_.size();
+    }
+    /**
+     * <code>repeated int64 labelIds = 2;</code>
+     * @param index The index of the element to return.
+     * @return The labelIds at the given index.
+     */
+    public long getLabelIds(int index) {
+      return labelIds_.getLong(index);
+    }
+    private int labelIdsMemoizedSerializedSize = -1;
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (getUserIdsList().size() > 0) {
+        output.writeUInt32NoTag(10);
+        output.writeUInt32NoTag(userIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < userIds_.size(); i++) {
+        output.writeInt64NoTag(userIds_.getLong(i));
+      }
+      if (getLabelIdsList().size() > 0) {
+        output.writeUInt32NoTag(18);
+        output.writeUInt32NoTag(labelIdsMemoizedSerializedSize);
+      }
+      for (int i = 0; i < labelIds_.size(); i++) {
+        output.writeInt64NoTag(labelIds_.getLong(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      {
+        int dataSize = 0;
+        for (int i = 0; i < userIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(userIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getUserIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        userIdsMemoizedSerializedSize = dataSize;
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < labelIds_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(labelIds_.getLong(i));
+        }
+        size += dataSize;
+        if (!getLabelIdsList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        labelIdsMemoizedSerializedSize = dataSize;
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage other = (Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage) obj;
+
+      if (!getUserIdsList()
+          .equals(other.getUserIdsList())) return false;
+      if (!getLabelIdsList()
+          .equals(other.getLabelIdsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (getUserIdsCount() > 0) {
+        hash = (37 * hash) + USERIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getUserIdsList().hashCode();
+      }
+      if (getLabelIdsCount() > 0) {
+        hash = (37 * hash) + LABELIDS_FIELD_NUMBER;
+        hash = (53 * hash) + getLabelIdsList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.VisibleMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.VisibleMessage)
+        Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_VisibleMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_VisibleMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        userIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        labelIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_VisibleMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage build() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage result = new Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage(this);
+        int from_bitField0_ = bitField0_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          userIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.userIds_ = userIds_;
+        if (((bitField0_ & 0x00000002) != 0)) {
+          labelIds_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.labelIds_ = labelIds_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage.getDefaultInstance()) return this;
+        if (!other.userIds_.isEmpty()) {
+          if (userIds_.isEmpty()) {
+            userIds_ = other.userIds_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureUserIdsIsMutable();
+            userIds_.addAll(other.userIds_);
+          }
+          onChanged();
+        }
+        if (!other.labelIds_.isEmpty()) {
+          if (labelIds_.isEmpty()) {
+            labelIds_ = other.labelIds_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureLabelIdsIsMutable();
+            labelIds_.addAll(other.labelIds_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private com.google.protobuf.Internal.LongList userIds_ = emptyLongList();
+      private void ensureUserIdsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          userIds_ = mutableCopy(userIds_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @return A list containing the userIds.
+       */
+      public java.util.List<java.lang.Long>
+          getUserIdsList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(userIds_) : userIds_;
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @return The count of userIds.
+       */
+      public int getUserIdsCount() {
+        return userIds_.size();
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @param index The index of the element to return.
+       * @return The userIds at the given index.
+       */
+      public long getUserIds(int index) {
+        return userIds_.getLong(index);
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @param index The index to set the value at.
+       * @param value The userIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUserIds(
+          int index, long value) {
+        ensureUserIdsIsMutable();
+        userIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @param value The userIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addUserIds(long value) {
+        ensureUserIdsIsMutable();
+        userIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @param values The userIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllUserIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureUserIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, userIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated int64 userIds = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUserIds() {
+        userIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList labelIds_ = emptyLongList();
+      private void ensureLabelIdsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          labelIds_ = mutableCopy(labelIds_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @return A list containing the labelIds.
+       */
+      public java.util.List<java.lang.Long>
+          getLabelIdsList() {
+        return ((bitField0_ & 0x00000002) != 0) ?
+                 java.util.Collections.unmodifiableList(labelIds_) : labelIds_;
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @return The count of labelIds.
+       */
+      public int getLabelIdsCount() {
+        return labelIds_.size();
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @param index The index of the element to return.
+       * @return The labelIds at the given index.
+       */
+      public long getLabelIds(int index) {
+        return labelIds_.getLong(index);
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @param index The index to set the value at.
+       * @param value The labelIds to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLabelIds(
+          int index, long value) {
+        ensureLabelIdsIsMutable();
+        labelIds_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @param value The labelIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addLabelIds(long value) {
+        ensureLabelIdsIsMutable();
+        labelIds_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @param values The labelIds to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllLabelIds(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureLabelIdsIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, labelIds_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated int64 labelIds = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLabelIds() {
+        labelIds_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.VisibleMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.VisibleMessage)
+    private static final Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<VisibleMessage>
+        PARSER = new com.google.protobuf.AbstractParser<VisibleMessage>() {
+      @java.lang.Override
+      public VisibleMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new VisibleMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<VisibleMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<VisibleMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostSnsTask.VisibleMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface PoiMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PoiMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 城市
+     * </pre>
+     *
+     * <code>string City = 1;</code>
+     * @return The city.
+     */
+    java.lang.String getCity();
+    /**
+     * <pre>
+     * 城市
+     * </pre>
+     *
+     * <code>string City = 1;</code>
+     * @return The bytes for city.
+     */
+    com.google.protobuf.ByteString
+        getCityBytes();
+
+    /**
+     * <pre>
+     * 地址
+     * </pre>
+     *
+     * <code>string Address = 2;</code>
+     * @return The address.
+     */
+    java.lang.String getAddress();
+    /**
+     * <pre>
+     * 地址
+     * </pre>
+     *
+     * <code>string Address = 2;</code>
+     * @return The bytes for address.
+     */
+    com.google.protobuf.ByteString
+        getAddressBytes();
+
+    /**
+     * <pre>
+     * 显示的名称
+     * </pre>
+     *
+     * <code>string PoiName = 3;</code>
+     * @return The poiName.
+     */
+    java.lang.String getPoiName();
+    /**
+     * <pre>
+     * 显示的名称
+     * </pre>
+     *
+     * <code>string PoiName = 3;</code>
+     * @return The bytes for poiName.
+     */
+    com.google.protobuf.ByteString
+        getPoiNameBytes();
+
+    /**
+     * <pre>
+     * 经度
+     * </pre>
+     *
+     * <code>double Lon = 4;</code>
+     * @return The lon.
+     */
+    double getLon();
+
+    /**
+     * <pre>
+     * 纬度
+     * </pre>
+     *
+     * <code>double Lat = 5;</code>
+     * @return The lat.
+     */
+    double getLat();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PoiMessage}
+   */
+  public  static final class PoiMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PoiMessage)
+      PoiMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PoiMessage.newBuilder() to construct.
+    private PoiMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PoiMessage() {
+      city_ = "";
+      address_ = "";
+      poiName_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PoiMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PoiMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              city_ = s;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              address_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              poiName_ = s;
+              break;
+            }
+            case 33: {
+
+              lon_ = input.readDouble();
+              break;
+            }
+            case 41: {
+
+              lat_ = input.readDouble();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PoiMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PoiMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder.class);
+    }
+
+    public static final int CITY_FIELD_NUMBER = 1;
+    private volatile java.lang.Object city_;
+    /**
+     * <pre>
+     * 城市
+     * </pre>
+     *
+     * <code>string City = 1;</code>
+     * @return The city.
+     */
+    public java.lang.String getCity() {
+      java.lang.Object ref = city_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        city_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 城市
+     * </pre>
+     *
+     * <code>string City = 1;</code>
+     * @return The bytes for city.
+     */
+    public com.google.protobuf.ByteString
+        getCityBytes() {
+      java.lang.Object ref = city_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        city_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int ADDRESS_FIELD_NUMBER = 2;
+    private volatile java.lang.Object address_;
+    /**
+     * <pre>
+     * 地址
+     * </pre>
+     *
+     * <code>string Address = 2;</code>
+     * @return The address.
+     */
+    public java.lang.String getAddress() {
+      java.lang.Object ref = address_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        address_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 地址
+     * </pre>
+     *
+     * <code>string Address = 2;</code>
+     * @return The bytes for address.
+     */
+    public com.google.protobuf.ByteString
+        getAddressBytes() {
+      java.lang.Object ref = address_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        address_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int POINAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object poiName_;
+    /**
+     * <pre>
+     * 显示的名称
+     * </pre>
+     *
+     * <code>string PoiName = 3;</code>
+     * @return The poiName.
+     */
+    public java.lang.String getPoiName() {
+      java.lang.Object ref = poiName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        poiName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 显示的名称
+     * </pre>
+     *
+     * <code>string PoiName = 3;</code>
+     * @return The bytes for poiName.
+     */
+    public com.google.protobuf.ByteString
+        getPoiNameBytes() {
+      java.lang.Object ref = poiName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        poiName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int LON_FIELD_NUMBER = 4;
+    private double lon_;
+    /**
+     * <pre>
+     * 经度
+     * </pre>
+     *
+     * <code>double Lon = 4;</code>
+     * @return The lon.
+     */
+    public double getLon() {
+      return lon_;
+    }
+
+    public static final int LAT_FIELD_NUMBER = 5;
+    private double lat_;
+    /**
+     * <pre>
+     * 纬度
+     * </pre>
+     *
+     * <code>double Lat = 5;</code>
+     * @return The lat.
+     */
+    public double getLat() {
+      return lat_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getCityBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, city_);
+      }
+      if (!getAddressBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, address_);
+      }
+      if (!getPoiNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, poiName_);
+      }
+      if (lon_ != 0D) {
+        output.writeDouble(4, lon_);
+      }
+      if (lat_ != 0D) {
+        output.writeDouble(5, lat_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getCityBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, city_);
+      }
+      if (!getAddressBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, address_);
+      }
+      if (!getPoiNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, poiName_);
+      }
+      if (lon_ != 0D) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(4, lon_);
+      }
+      if (lat_ != 0D) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeDoubleSize(5, lat_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage other = (Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage) obj;
+
+      if (!getCity()
+          .equals(other.getCity())) return false;
+      if (!getAddress()
+          .equals(other.getAddress())) return false;
+      if (!getPoiName()
+          .equals(other.getPoiName())) return false;
+      if (java.lang.Double.doubleToLongBits(getLon())
+          != java.lang.Double.doubleToLongBits(
+              other.getLon())) return false;
+      if (java.lang.Double.doubleToLongBits(getLat())
+          != java.lang.Double.doubleToLongBits(
+              other.getLat())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + CITY_FIELD_NUMBER;
+      hash = (53 * hash) + getCity().hashCode();
+      hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
+      hash = (53 * hash) + getAddress().hashCode();
+      hash = (37 * hash) + POINAME_FIELD_NUMBER;
+      hash = (53 * hash) + getPoiName().hashCode();
+      hash = (37 * hash) + LON_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          java.lang.Double.doubleToLongBits(getLon()));
+      hash = (37 * hash) + LAT_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          java.lang.Double.doubleToLongBits(getLat()));
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PoiMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PoiMessage)
+        Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PoiMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PoiMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.class, Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        city_ = "";
+
+        address_ = "";
+
+        poiName_ = "";
+
+        lon_ = 0D;
+
+        lat_ = 0D;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.internal_static_Im_Scrm_Ww_Proto_PoiMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage build() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage result = new Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage(this);
+        result.city_ = city_;
+        result.address_ = address_;
+        result.poiName_ = poiName_;
+        result.lon_ = lon_;
+        result.lat_ = lat_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage.getDefaultInstance()) return this;
+        if (!other.getCity().isEmpty()) {
+          city_ = other.city_;
+          onChanged();
+        }
+        if (!other.getAddress().isEmpty()) {
+          address_ = other.address_;
+          onChanged();
+        }
+        if (!other.getPoiName().isEmpty()) {
+          poiName_ = other.poiName_;
+          onChanged();
+        }
+        if (other.getLon() != 0D) {
+          setLon(other.getLon());
+        }
+        if (other.getLat() != 0D) {
+          setLat(other.getLat());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object city_ = "";
+      /**
+       * <pre>
+       * 城市
+       * </pre>
+       *
+       * <code>string City = 1;</code>
+       * @return The city.
+       */
+      public java.lang.String getCity() {
+        java.lang.Object ref = city_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          city_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 城市
+       * </pre>
+       *
+       * <code>string City = 1;</code>
+       * @return The bytes for city.
+       */
+      public com.google.protobuf.ByteString
+          getCityBytes() {
+        java.lang.Object ref = city_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          city_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 城市
+       * </pre>
+       *
+       * <code>string City = 1;</code>
+       * @param value The city to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCity(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        city_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 城市
+       * </pre>
+       *
+       * <code>string City = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCity() {
+        
+        city_ = getDefaultInstance().getCity();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 城市
+       * </pre>
+       *
+       * <code>string City = 1;</code>
+       * @param value The bytes for city to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCityBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        city_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object address_ = "";
+      /**
+       * <pre>
+       * 地址
+       * </pre>
+       *
+       * <code>string Address = 2;</code>
+       * @return The address.
+       */
+      public java.lang.String getAddress() {
+        java.lang.Object ref = address_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          address_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 地址
+       * </pre>
+       *
+       * <code>string Address = 2;</code>
+       * @return The bytes for address.
+       */
+      public com.google.protobuf.ByteString
+          getAddressBytes() {
+        java.lang.Object ref = address_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          address_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 地址
+       * </pre>
+       *
+       * <code>string Address = 2;</code>
+       * @param value The address to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAddress(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        address_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 地址
+       * </pre>
+       *
+       * <code>string Address = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAddress() {
+        
+        address_ = getDefaultInstance().getAddress();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 地址
+       * </pre>
+       *
+       * <code>string Address = 2;</code>
+       * @param value The bytes for address to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAddressBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        address_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object poiName_ = "";
+      /**
+       * <pre>
+       * 显示的名称
+       * </pre>
+       *
+       * <code>string PoiName = 3;</code>
+       * @return The poiName.
+       */
+      public java.lang.String getPoiName() {
+        java.lang.Object ref = poiName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          poiName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 显示的名称
+       * </pre>
+       *
+       * <code>string PoiName = 3;</code>
+       * @return The bytes for poiName.
+       */
+      public com.google.protobuf.ByteString
+          getPoiNameBytes() {
+        java.lang.Object ref = poiName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          poiName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 显示的名称
+       * </pre>
+       *
+       * <code>string PoiName = 3;</code>
+       * @param value The poiName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPoiName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        poiName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 显示的名称
+       * </pre>
+       *
+       * <code>string PoiName = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPoiName() {
+        
+        poiName_ = getDefaultInstance().getPoiName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 显示的名称
+       * </pre>
+       *
+       * <code>string PoiName = 3;</code>
+       * @param value The bytes for poiName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPoiNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        poiName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private double lon_ ;
+      /**
+       * <pre>
+       * 经度
+       * </pre>
+       *
+       * <code>double Lon = 4;</code>
+       * @return The lon.
+       */
+      public double getLon() {
+        return lon_;
+      }
+      /**
+       * <pre>
+       * 经度
+       * </pre>
+       *
+       * <code>double Lon = 4;</code>
+       * @param value The lon to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLon(double value) {
+        
+        lon_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 经度
+       * </pre>
+       *
+       * <code>double Lon = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLon() {
+        
+        lon_ = 0D;
+        onChanged();
+        return this;
+      }
+
+      private double lat_ ;
+      /**
+       * <pre>
+       * 纬度
+       * </pre>
+       *
+       * <code>double Lat = 5;</code>
+       * @return The lat.
+       */
+      public double getLat() {
+        return lat_;
+      }
+      /**
+       * <pre>
+       * 纬度
+       * </pre>
+       *
+       * <code>double Lat = 5;</code>
+       * @param value The lat to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLat(double value) {
+        
+        lat_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 纬度
+       * </pre>
+       *
+       * <code>double Lat = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLat() {
+        
+        lat_ = 0D;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PoiMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PoiMessage)
+    private static final Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PoiMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PoiMessage>() {
+      @java.lang.Override
+      public PoiMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PoiMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PoiMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PoiMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostSnsTask.PoiMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_MediaMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_MediaMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_VisibleMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_VisibleMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PoiMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PoiMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\022WPostSnsTask.proto\022\020Im.Scrm.Ww.Proto\"\341" +
+      "\001\n\022PostSnsTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007C" +
+      "ontent\030\002 \001(\t\022-\n\005Media\030\003 \001(\0132\036.Im.Scrm.Ww" +
+      ".Proto.MediaMessage\022\017\n\007Comment\030\004 \001(\t\0221\n\007" +
+      "Visible\030\005 \001(\0132 .Im.Scrm.Ww.Proto.Visible" +
+      "Message\022\016\n\006TaskId\030\006 \001(\003\022)\n\003Poi\030\007 \001(\0132\034.I" +
+      "m.Scrm.Ww.Proto.PoiMessage\"\220\001\n\014MediaMess" +
+      "age\022;\n\004Type\030\001 \001(\0162-.Im.Scrm.Ww.Proto.Med" +
+      "iaMessage.EnumAttachType\022\017\n\007Content\030\002 \003(" +
+      "\t\"2\n\016EnumAttachType\022\013\n\007Picture\020\000\022\t\n\005Vide" +
+      "o\020\001\022\010\n\004Link\020\002\"3\n\016VisibleMessage\022\017\n\007userI" +
+      "ds\030\001 \003(\003\022\020\n\010labelIds\030\002 \003(\003\"V\n\nPoiMessage" +
+      "\022\014\n\004City\030\001 \001(\t\022\017\n\007Address\030\002 \001(\t\022\017\n\007PoiNa" +
+      "me\030\003 \001(\t\022\013\n\003Lon\030\004 \001(\001\022\013\n\003Lat\030\005 \001(\001b\006prot" +
+      "o3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PostSnsTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Content", "Media", "Comment", "Visible", "TaskId", "Poi", });
+    internal_static_Im_Scrm_Ww_Proto_MediaMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_MediaMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_MediaMessage_descriptor,
+        new java.lang.String[] { "Type", "Content", });
+    internal_static_Im_Scrm_Ww_Proto_VisibleMessage_descriptor =
+      getDescriptor().getMessageTypes().get(2);
+    internal_static_Im_Scrm_Ww_Proto_VisibleMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_VisibleMessage_descriptor,
+        new java.lang.String[] { "UserIds", "LabelIds", });
+    internal_static_Im_Scrm_Ww_Proto_PoiMessage_descriptor =
+      getDescriptor().getMessageTypes().get(3);
+    internal_static_Im_Scrm_Ww_Proto_PoiMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PoiMessage_descriptor,
+        new java.lang.String[] { "City", "Address", "PoiName", "Lon", "Lat", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1243 - 0
src/main/java/Im/Scrm/Ww/Proto/WPostSnsTaskResultNotice.java

@@ -0,0 +1,1243 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPostSnsTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPostSnsTaskResultNotice {
+  private WPostSnsTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PostSnsTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 SnsId = 5;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string PostId = 6;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string PostId = 6;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <code>int64 CommentId = 7;</code>
+     * @return The commentId.
+     */
+    long getCommentId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage}
+   */
+  public  static final class PostSnsTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage)
+      PostSnsTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PostSnsTaskResultNoticeMessage.newBuilder() to construct.
+    private PostSnsTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PostSnsTaskResultNoticeMessage() {
+      errMsg_ = "";
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PostSnsTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PostSnsTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 56: {
+
+              commentId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 5;
+    private long snsId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 SnsId = 5;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 6;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string PostId = 6;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string PostId = 6;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int COMMENTID_FIELD_NUMBER = 7;
+    private long commentId_;
+    /**
+     * <code>int64 CommentId = 7;</code>
+     * @return The commentId.
+     */
+    public long getCommentId() {
+      return commentId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(5, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, postId_);
+      }
+      if (commentId_ != 0L) {
+        output.writeInt64(7, commentId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, postId_);
+      }
+      if (commentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, commentId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (getCommentId()
+          != other.getCommentId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + COMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCommentId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        taskId_ = 0L;
+
+        snsId_ = 0L;
+
+        postId_ = "";
+
+        commentId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        result.taskId_ = taskId_;
+        result.snsId_ = snsId_;
+        result.postId_ = postId_;
+        result.commentId_ = commentId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (other.getCommentId() != 0L) {
+          setCommentId(other.getCommentId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 SnsId = 5;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 SnsId = 5;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 SnsId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string PostId = 6;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string PostId = 6;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string PostId = 6;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string PostId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string PostId = 6;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long commentId_ ;
+      /**
+       * <code>int64 CommentId = 7;</code>
+       * @return The commentId.
+       */
+      public long getCommentId() {
+        return commentId_;
+      }
+      /**
+       * <code>int64 CommentId = 7;</code>
+       * @param value The commentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentId(long value) {
+        
+        commentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 CommentId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCommentId() {
+        
+        commentId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PostSnsTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PostSnsTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PostSnsTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public PostSnsTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PostSnsTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PostSnsTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PostSnsTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostSnsTaskResultNotice.PostSnsTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\036WPostSnsTaskResultNotice.proto\022\020Im.Scr" +
+      "m.Ww.Proto\"\221\001\n\036PostSnsTaskResultNoticeMe" +
+      "ssage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010\022\016\n\006" +
+      "ErrMsg\030\003 \001(\t\022\016\n\006TaskId\030\004 \001(\003\022\r\n\005SnsId\030\005 " +
+      "\001(\003\022\016\n\006PostId\030\006 \001(\t\022\021\n\tCommentId\030\007 \001(\003b\006" +
+      "proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PostSnsTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "TaskId", "SnsId", "PostId", "CommentId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 734 - 0
src/main/java/Im/Scrm/Ww/Proto/WPostSnsTaskTask.java

@@ -0,0 +1,734 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPostSnsTaskTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPostSnsTaskTask {
+  private WPostSnsTaskTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PostSnsTaskTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *发布的企业朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage}
+   */
+  public  static final class PostSnsTaskTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage)
+      PostSnsTaskTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PostSnsTaskTaskMessage.newBuilder() to construct.
+    private PostSnsTaskTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PostSnsTaskTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PostSnsTaskTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PostSnsTaskTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPostSnsTaskTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPostSnsTaskTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.class, Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 2;
+    private long snsId_;
+    /**
+     * <pre>
+     *发布的企业朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(2, snsId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, snsId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage other = (Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage)
+        Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.class, Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        snsId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskTask.internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage result = new Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.snsId_ = snsId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       *发布的企业朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       *发布的企业朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *发布的企业朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PostSnsTaskTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PostSnsTaskTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PostSnsTaskTaskMessage>() {
+      @java.lang.Override
+      public PostSnsTaskTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PostSnsTaskTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PostSnsTaskTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PostSnsTaskTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPostSnsTaskTask.PostSnsTaskTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\026WPostSnsTaskTask.proto\022\020Im.Scrm.Ww.Pro" +
+      "to\"E\n\026PostSnsTaskTaskMessage\022\014\n\004WxId\030\001 \001" +
+      "(\003\022\r\n\005SnsId\030\002 \001(\003\022\016\n\006TaskId\030\006 \001(\003b\006proto" +
+      "3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PostSnsTaskTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "SnsId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 558 - 0
src/main/java/Im/Scrm/Ww/Proto/WPullMyQrCodeTask.java

@@ -0,0 +1,558 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPullMyQrCodeTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPullMyQrCodeTask {
+  private WPullMyQrCodeTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PullMyQrCodeTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+  }
+  /**
+   * <pre>
+   * 通用Trigger任务消息
+   * </pre>
+   *
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage}
+   */
+  public  static final class PullMyQrCodeTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage)
+      PullMyQrCodeTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PullMyQrCodeTaskMessage.newBuilder() to construct.
+    private PullMyQrCodeTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PullMyQrCodeTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PullMyQrCodeTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PullMyQrCodeTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMyQrCodeTask.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMyQrCodeTask.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.class, Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage other = (Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * <pre>
+     * 通用Trigger任务消息
+     * </pre>
+     *
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage)
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTask.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTask.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.class, Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTask.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage result = new Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage(this);
+        result.wxId_ = wxId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PullMyQrCodeTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PullMyQrCodeTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PullMyQrCodeTaskMessage>() {
+      @java.lang.Override
+      public PullMyQrCodeTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PullMyQrCodeTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PullMyQrCodeTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PullMyQrCodeTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMyQrCodeTask.PullMyQrCodeTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WPullMyQrCodeTask.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\"\'\n\027PullMyQrCodeTaskMessage\022\014\n\004WxId\030\001" +
+      " \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1008 - 0
src/main/java/Im/Scrm/Ww/Proto/WPullMyQrCodeTaskResultNotice.java

@@ -0,0 +1,1008 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPullMyQrCodeTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPullMyQrCodeTaskResultNotice {
+  private WPullMyQrCodeTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PullMyQrCodeTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The url.
+     */
+    java.lang.String getUrl();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The bytes for url.
+     */
+    com.google.protobuf.ByteString
+        getUrlBytes();
+  }
+  /**
+   * <pre>
+   * 通用Trigger任务消息
+   * </pre>
+   *
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage}
+   */
+  public  static final class PullMyQrCodeTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage)
+      PullMyQrCodeTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PullMyQrCodeTaskResultNoticeMessage.newBuilder() to construct.
+    private PullMyQrCodeTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PullMyQrCodeTaskResultNoticeMessage() {
+      errMsg_ = "";
+      url_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PullMyQrCodeTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PullMyQrCodeTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              url_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int URL_FIELD_NUMBER = 5;
+    private volatile java.lang.Object url_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The url.
+     */
+    public java.lang.String getUrl() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        url_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Url = 5;</code>
+     * @return The bytes for url.
+     */
+    public com.google.protobuf.ByteString
+        getUrlBytes() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        url_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, errMsg_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, url_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, errMsg_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, url_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getUrl()
+          .equals(other.getUrl())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + URL_FIELD_NUMBER;
+      hash = (53 * hash) + getUrl().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * <pre>
+     * 通用Trigger任务消息
+     * </pre>
+     *
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        url_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        result.url_ = url_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (!other.getUrl().isEmpty()) {
+          url_ = other.url_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object url_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @return The url.
+       */
+      public java.lang.String getUrl() {
+        java.lang.Object ref = url_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          url_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @return The bytes for url.
+       */
+      public com.google.protobuf.ByteString
+          getUrlBytes() {
+        java.lang.Object ref = url_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          url_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @param value The url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        url_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUrl() {
+        
+        url_ = getDefaultInstance().getUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Url = 5;</code>
+       * @param value The bytes for url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        url_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PullMyQrCodeTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PullMyQrCodeTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PullMyQrCodeTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public PullMyQrCodeTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PullMyQrCodeTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PullMyQrCodeTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PullMyQrCodeTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMyQrCodeTaskResultNotice.PullMyQrCodeTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n#WPullMyQrCodeTaskResultNotice.proto\022\020I" +
+      "m.Scrm.Ww.Proto\"a\n#PullMyQrCodeTaskResul" +
+      "tNoticeMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030" +
+      "\002 \001(\010\022\016\n\006ErrMsg\030\004 \001(\t\022\013\n\003Url\030\005 \001(\tb\006prot" +
+      "o3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PullMyQrCodeTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "Url", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 709 - 0
src/main/java/Im/Scrm/Ww/Proto/WPullMySnsListTask.java

@@ -0,0 +1,709 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPullMySnsListTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPullMySnsListTask {
+  private WPullMySnsListTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PullMySnsListTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PullMySnsListTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 起始位置上一条朋友圈的序列号,第一次拉取为-1
+     * </pre>
+     *
+     * <code>int64 Seq = 2;</code>
+     * @return The seq.
+     */
+    long getSeq();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PullMySnsListTaskMessage}
+   */
+  public  static final class PullMySnsListTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PullMySnsListTaskMessage)
+      PullMySnsListTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PullMySnsListTaskMessage.newBuilder() to construct.
+    private PullMySnsListTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PullMySnsListTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PullMySnsListTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PullMySnsListTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              seq_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTask.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTask.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SEQ_FIELD_NUMBER = 2;
+    private long seq_;
+    /**
+     * <pre>
+     * 起始位置上一条朋友圈的序列号,第一次拉取为-1
+     * </pre>
+     *
+     * <code>int64 Seq = 2;</code>
+     * @return The seq.
+     */
+    public long getSeq() {
+      return seq_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (seq_ != 0L) {
+        output.writeInt64(2, seq_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (seq_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, seq_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage other = (Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSeq()
+          != other.getSeq()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SEQ_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSeq());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PullMySnsListTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PullMySnsListTaskMessage)
+        Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTask.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTask.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        seq_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTask.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage result = new Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.seq_ = seq_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSeq() != 0L) {
+          setSeq(other.getSeq());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long seq_ ;
+      /**
+       * <pre>
+       * 起始位置上一条朋友圈的序列号,第一次拉取为-1
+       * </pre>
+       *
+       * <code>int64 Seq = 2;</code>
+       * @return The seq.
+       */
+      public long getSeq() {
+        return seq_;
+      }
+      /**
+       * <pre>
+       * 起始位置上一条朋友圈的序列号,第一次拉取为-1
+       * </pre>
+       *
+       * <code>int64 Seq = 2;</code>
+       * @param value The seq to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSeq(long value) {
+        
+        seq_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 起始位置上一条朋友圈的序列号,第一次拉取为-1
+       * </pre>
+       *
+       * <code>int64 Seq = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSeq() {
+        
+        seq_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PullMySnsListTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PullMySnsListTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PullMySnsListTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PullMySnsListTaskMessage>() {
+      @java.lang.Override
+      public PullMySnsListTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PullMySnsListTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PullMySnsListTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PullMySnsListTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMySnsListTask.PullMySnsListTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\030WPullMySnsListTask.proto\022\020Im.Scrm.Ww.P" +
+      "roto\"E\n\030PullMySnsListTaskMessage\022\014\n\004WxId" +
+      "\030\001 \001(\003\022\013\n\003Seq\030\002 \001(\003\022\016\n\006TaskId\030\003 \001(\003b\006pro" +
+      "to3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Seq", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 6645 - 0
src/main/java/Im/Scrm/Ww/Proto/WPullMySnsListTaskResultNotice.java

@@ -0,0 +1,6645 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPullMySnsListTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPullMySnsListTaskResultNotice {
+  private WPullMySnsListTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PullMySnsListTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage> 
+        getSnsListList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsList(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    int getSnsListCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+        getSnsListOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsListOrBuilder(
+        int index);
+
+    /**
+     * <pre>
+     * 下一页起始Seq
+     * </pre>
+     *
+     * <code>int64 NextSeq = 5;</code>
+     * @return The nextSeq.
+     */
+    long getNextSeq();
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage}
+   */
+  public  static final class PullMySnsListTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage)
+      PullMySnsListTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PullMySnsListTaskResultNoticeMessage.newBuilder() to construct.
+    private PullMySnsListTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PullMySnsListTaskResultNoticeMessage() {
+      errMsg_ = "";
+      snsList_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PullMySnsListTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PullMySnsListTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                snsList_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              snsList_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 40: {
+
+              nextSeq_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          snsList_ = java.util.Collections.unmodifiableList(snsList_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SNSLIST_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage> snsList_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage> getSnsListList() {
+      return snsList_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+        getSnsListOrBuilderList() {
+      return snsList_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    public int getSnsListCount() {
+      return snsList_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsList(int index) {
+      return snsList_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsListOrBuilder(
+        int index) {
+      return snsList_.get(index);
+    }
+
+    public static final int NEXTSEQ_FIELD_NUMBER = 5;
+    private long nextSeq_;
+    /**
+     * <pre>
+     * 下一页起始Seq
+     * </pre>
+     *
+     * <code>int64 NextSeq = 5;</code>
+     * @return The nextSeq.
+     */
+    public long getNextSeq() {
+      return nextSeq_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      for (int i = 0; i < snsList_.size(); i++) {
+        output.writeMessage(4, snsList_.get(i));
+      }
+      if (nextSeq_ != 0L) {
+        output.writeInt64(5, nextSeq_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      for (int i = 0; i < snsList_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, snsList_.get(i));
+      }
+      if (nextSeq_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, nextSeq_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getSnsListList()
+          .equals(other.getSnsListList())) return false;
+      if (getNextSeq()
+          != other.getNextSeq()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      if (getSnsListCount() > 0) {
+        hash = (37 * hash) + SNSLIST_FIELD_NUMBER;
+        hash = (53 * hash) + getSnsListList().hashCode();
+      }
+      hash = (37 * hash) + NEXTSEQ_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getNextSeq());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getSnsListFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        if (snsListBuilder_ == null) {
+          snsList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          snsListBuilder_.clear();
+        }
+        nextSeq_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        if (snsListBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            snsList_ = java.util.Collections.unmodifiableList(snsList_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.snsList_ = snsList_;
+        } else {
+          result.snsList_ = snsListBuilder_.build();
+        }
+        result.nextSeq_ = nextSeq_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (snsListBuilder_ == null) {
+          if (!other.snsList_.isEmpty()) {
+            if (snsList_.isEmpty()) {
+              snsList_ = other.snsList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureSnsListIsMutable();
+              snsList_.addAll(other.snsList_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.snsList_.isEmpty()) {
+            if (snsListBuilder_.isEmpty()) {
+              snsListBuilder_.dispose();
+              snsListBuilder_ = null;
+              snsList_ = other.snsList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              snsListBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getSnsListFieldBuilder() : null;
+            } else {
+              snsListBuilder_.addAllMessages(other.snsList_);
+            }
+          }
+        }
+        if (other.getNextSeq() != 0L) {
+          setNextSeq(other.getNextSeq());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage> snsList_ =
+        java.util.Collections.emptyList();
+      private void ensureSnsListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          snsList_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage>(snsList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> snsListBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage> getSnsListList() {
+        if (snsListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(snsList_);
+        } else {
+          return snsListBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public int getSnsListCount() {
+        if (snsListBuilder_ == null) {
+          return snsList_.size();
+        } else {
+          return snsListBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsList(int index) {
+        if (snsListBuilder_ == null) {
+          return snsList_.get(index);
+        } else {
+          return snsListBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder setSnsList(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureSnsListIsMutable();
+          snsList_.set(index, value);
+          onChanged();
+        } else {
+          snsListBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder setSnsList(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder builderForValue) {
+        if (snsListBuilder_ == null) {
+          ensureSnsListIsMutable();
+          snsList_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          snsListBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder addSnsList(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureSnsListIsMutable();
+          snsList_.add(value);
+          onChanged();
+        } else {
+          snsListBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder addSnsList(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureSnsListIsMutable();
+          snsList_.add(index, value);
+          onChanged();
+        } else {
+          snsListBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder addSnsList(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder builderForValue) {
+        if (snsListBuilder_ == null) {
+          ensureSnsListIsMutable();
+          snsList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          snsListBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder addSnsList(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder builderForValue) {
+        if (snsListBuilder_ == null) {
+          ensureSnsListIsMutable();
+          snsList_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          snsListBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder addAllSnsList(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage> values) {
+        if (snsListBuilder_ == null) {
+          ensureSnsListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, snsList_);
+          onChanged();
+        } else {
+          snsListBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder clearSnsList() {
+        if (snsListBuilder_ == null) {
+          snsList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          snsListBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Builder removeSnsList(int index) {
+        if (snsListBuilder_ == null) {
+          ensureSnsListIsMutable();
+          snsList_.remove(index);
+          onChanged();
+        } else {
+          snsListBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder getSnsListBuilder(
+          int index) {
+        return getSnsListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsListOrBuilder(
+          int index) {
+        if (snsListBuilder_ == null) {
+          return snsList_.get(index);  } else {
+          return snsListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+           getSnsListOrBuilderList() {
+        if (snsListBuilder_ != null) {
+          return snsListBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(snsList_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder addSnsListBuilder() {
+        return getSnsListFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder addSnsListBuilder(
+          int index) {
+        return getSnsListFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsInfoMessage SnsList = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder> 
+           getSnsListBuilderList() {
+        return getSnsListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+          getSnsListFieldBuilder() {
+        if (snsListBuilder_ == null) {
+          snsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder>(
+                  snsList_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          snsList_ = null;
+        }
+        return snsListBuilder_;
+      }
+
+      private long nextSeq_ ;
+      /**
+       * <pre>
+       * 下一页起始Seq
+       * </pre>
+       *
+       * <code>int64 NextSeq = 5;</code>
+       * @return The nextSeq.
+       */
+      public long getNextSeq() {
+        return nextSeq_;
+      }
+      /**
+       * <pre>
+       * 下一页起始Seq
+       * </pre>
+       *
+       * <code>int64 NextSeq = 5;</code>
+       * @param value The nextSeq to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNextSeq(long value) {
+        
+        nextSeq_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 下一页起始Seq
+       * </pre>
+       *
+       * <code>int64 NextSeq = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearNextSeq() {
+        
+        nextSeq_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PullMySnsListTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PullMySnsListTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PullMySnsListTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public PullMySnsListTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PullMySnsListTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PullMySnsListTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PullMySnsListTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.PullMySnsListTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SnsInfoMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsInfoMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 Author = 1;</code>
+     * @return The author.
+     */
+    long getAuthor();
+
+    /**
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    java.lang.String getContent();
+    /**
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage> 
+        getImagesList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getImages(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    int getImagesCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> 
+        getImagesOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getImagesOrBuilder(
+        int index);
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+     * @return Whether the link field is set.
+     */
+    boolean hasLink();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+     * @return The link.
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getLink();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getLinkOrBuilder();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+     * @return Whether the video field is set.
+     */
+    boolean hasVideo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+     * @return The video.
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getVideo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getVideoOrBuilder();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage> 
+        getCommentsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage getComments(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    int getCommentsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder> 
+        getCommentsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder getCommentsOrBuilder(
+        int index);
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage> 
+        getLikesList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage getLikes(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    int getLikesCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder> 
+        getLikesOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder getLikesOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 SnsId = 8;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <code>int32 Time = 9;</code>
+     * @return The time.
+     */
+    int getTime();
+
+    /**
+     * <code>string PostId = 10;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <code>string PostId = 10;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <pre>
+     * 0 员工发表,2 企业发表
+     * </pre>
+     *
+     * <code>int32 Type = 11;</code>
+     * @return The type.
+     */
+    int getType();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsInfoMessage}
+   */
+  public  static final class SnsInfoMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsInfoMessage)
+      SnsInfoMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsInfoMessage.newBuilder() to construct.
+    private SnsInfoMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsInfoMessage() {
+      content_ = "";
+      images_ = java.util.Collections.emptyList();
+      comments_ = java.util.Collections.emptyList();
+      likes_ = java.util.Collections.emptyList();
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsInfoMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsInfoMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              author_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              content_ = s;
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                images_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              images_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 34: {
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder subBuilder = null;
+              if (link_ != null) {
+                subBuilder = link_.toBuilder();
+              }
+              link_ = input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(link_);
+                link_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 42: {
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder subBuilder = null;
+              if (video_ != null) {
+                subBuilder = video_.toBuilder();
+              }
+              video_ = input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(video_);
+                video_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 50: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                comments_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage>();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              comments_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 58: {
+              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
+                likes_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage>();
+                mutable_bitField0_ |= 0x00000004;
+              }
+              likes_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 64: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              time_ = input.readInt32();
+              break;
+            }
+            case 82: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 88: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          images_ = java.util.Collections.unmodifiableList(images_);
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          comments_ = java.util.Collections.unmodifiableList(comments_);
+        }
+        if (((mutable_bitField0_ & 0x00000004) != 0)) {
+          likes_ = java.util.Collections.unmodifiableList(likes_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder.class);
+    }
+
+    public static final int AUTHOR_FIELD_NUMBER = 1;
+    private long author_;
+    /**
+     * <code>int64 Author = 1;</code>
+     * @return The author.
+     */
+    public long getAuthor() {
+      return author_;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 2;
+    private volatile java.lang.Object content_;
+    /**
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    public java.lang.String getContent() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        content_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        content_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int IMAGES_FIELD_NUMBER = 3;
+    private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage> images_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage> getImagesList() {
+      return images_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> 
+        getImagesOrBuilderList() {
+      return images_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    public int getImagesCount() {
+      return images_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getImages(int index) {
+      return images_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getImagesOrBuilder(
+        int index) {
+      return images_.get(index);
+    }
+
+    public static final int LINK_FIELD_NUMBER = 4;
+    private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage link_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+     * @return Whether the link field is set.
+     */
+    public boolean hasLink() {
+      return link_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+     * @return The link.
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getLink() {
+      return link_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance() : link_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getLinkOrBuilder() {
+      return getLink();
+    }
+
+    public static final int VIDEO_FIELD_NUMBER = 5;
+    private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage video_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+     * @return Whether the video field is set.
+     */
+    public boolean hasVideo() {
+      return video_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+     * @return The video.
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getVideo() {
+      return video_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance() : video_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getVideoOrBuilder() {
+      return getVideo();
+    }
+
+    public static final int COMMENTS_FIELD_NUMBER = 6;
+    private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage> comments_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage> getCommentsList() {
+      return comments_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder> 
+        getCommentsOrBuilderList() {
+      return comments_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    public int getCommentsCount() {
+      return comments_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage getComments(int index) {
+      return comments_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder getCommentsOrBuilder(
+        int index) {
+      return comments_.get(index);
+    }
+
+    public static final int LIKES_FIELD_NUMBER = 7;
+    private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage> likes_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage> getLikesList() {
+      return likes_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder> 
+        getLikesOrBuilderList() {
+      return likes_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    public int getLikesCount() {
+      return likes_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage getLikes(int index) {
+      return likes_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder getLikesOrBuilder(
+        int index) {
+      return likes_.get(index);
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 8;
+    private long snsId_;
+    /**
+     * <code>int64 SnsId = 8;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int TIME_FIELD_NUMBER = 9;
+    private int time_;
+    /**
+     * <code>int32 Time = 9;</code>
+     * @return The time.
+     */
+    public int getTime() {
+      return time_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 10;
+    private volatile java.lang.Object postId_;
+    /**
+     * <code>string PostId = 10;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string PostId = 10;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 11;
+    private int type_;
+    /**
+     * <pre>
+     * 0 员工发表,2 企业发表
+     * </pre>
+     *
+     * <code>int32 Type = 11;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (author_ != 0L) {
+        output.writeInt64(1, author_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
+      }
+      for (int i = 0; i < images_.size(); i++) {
+        output.writeMessage(3, images_.get(i));
+      }
+      if (link_ != null) {
+        output.writeMessage(4, getLink());
+      }
+      if (video_ != null) {
+        output.writeMessage(5, getVideo());
+      }
+      for (int i = 0; i < comments_.size(); i++) {
+        output.writeMessage(6, comments_.get(i));
+      }
+      for (int i = 0; i < likes_.size(); i++) {
+        output.writeMessage(7, likes_.get(i));
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(8, snsId_);
+      }
+      if (time_ != 0) {
+        output.writeInt32(9, time_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, postId_);
+      }
+      if (type_ != 0) {
+        output.writeInt32(11, type_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (author_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, author_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
+      }
+      for (int i = 0; i < images_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, images_.get(i));
+      }
+      if (link_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, getLink());
+      }
+      if (video_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, getVideo());
+      }
+      for (int i = 0; i < comments_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(6, comments_.get(i));
+      }
+      for (int i = 0; i < likes_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(7, likes_.get(i));
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, snsId_);
+      }
+      if (time_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(9, time_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, postId_);
+      }
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(11, type_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage other = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage) obj;
+
+      if (getAuthor()
+          != other.getAuthor()) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (!getImagesList()
+          .equals(other.getImagesList())) return false;
+      if (hasLink() != other.hasLink()) return false;
+      if (hasLink()) {
+        if (!getLink()
+            .equals(other.getLink())) return false;
+      }
+      if (hasVideo() != other.hasVideo()) return false;
+      if (hasVideo()) {
+        if (!getVideo()
+            .equals(other.getVideo())) return false;
+      }
+      if (!getCommentsList()
+          .equals(other.getCommentsList())) return false;
+      if (!getLikesList()
+          .equals(other.getLikesList())) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (getTime()
+          != other.getTime()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (getType()
+          != other.getType()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + AUTHOR_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getAuthor());
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      if (getImagesCount() > 0) {
+        hash = (37 * hash) + IMAGES_FIELD_NUMBER;
+        hash = (53 * hash) + getImagesList().hashCode();
+      }
+      if (hasLink()) {
+        hash = (37 * hash) + LINK_FIELD_NUMBER;
+        hash = (53 * hash) + getLink().hashCode();
+      }
+      if (hasVideo()) {
+        hash = (37 * hash) + VIDEO_FIELD_NUMBER;
+        hash = (53 * hash) + getVideo().hashCode();
+      }
+      if (getCommentsCount() > 0) {
+        hash = (37 * hash) + COMMENTS_FIELD_NUMBER;
+        hash = (53 * hash) + getCommentsList().hashCode();
+      }
+      if (getLikesCount() > 0) {
+        hash = (37 * hash) + LIKES_FIELD_NUMBER;
+        hash = (53 * hash) + getLikesList().hashCode();
+      }
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getTime();
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsInfoMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsInfoMessage)
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getImagesFieldBuilder();
+          getCommentsFieldBuilder();
+          getLikesFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        author_ = 0L;
+
+        content_ = "";
+
+        if (imagesBuilder_ == null) {
+          images_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          imagesBuilder_.clear();
+        }
+        if (linkBuilder_ == null) {
+          link_ = null;
+        } else {
+          link_ = null;
+          linkBuilder_ = null;
+        }
+        if (videoBuilder_ == null) {
+          video_ = null;
+        } else {
+          video_ = null;
+          videoBuilder_ = null;
+        }
+        if (commentsBuilder_ == null) {
+          comments_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        } else {
+          commentsBuilder_.clear();
+        }
+        if (likesBuilder_ == null) {
+          likes_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+        } else {
+          likesBuilder_.clear();
+        }
+        snsId_ = 0L;
+
+        time_ = 0;
+
+        postId_ = "";
+
+        type_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage build() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage result = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.author_ = author_;
+        result.content_ = content_;
+        if (imagesBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            images_ = java.util.Collections.unmodifiableList(images_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.images_ = images_;
+        } else {
+          result.images_ = imagesBuilder_.build();
+        }
+        if (linkBuilder_ == null) {
+          result.link_ = link_;
+        } else {
+          result.link_ = linkBuilder_.build();
+        }
+        if (videoBuilder_ == null) {
+          result.video_ = video_;
+        } else {
+          result.video_ = videoBuilder_.build();
+        }
+        if (commentsBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) != 0)) {
+            comments_ = java.util.Collections.unmodifiableList(comments_);
+            bitField0_ = (bitField0_ & ~0x00000002);
+          }
+          result.comments_ = comments_;
+        } else {
+          result.comments_ = commentsBuilder_.build();
+        }
+        if (likesBuilder_ == null) {
+          if (((bitField0_ & 0x00000004) != 0)) {
+            likes_ = java.util.Collections.unmodifiableList(likes_);
+            bitField0_ = (bitField0_ & ~0x00000004);
+          }
+          result.likes_ = likes_;
+        } else {
+          result.likes_ = likesBuilder_.build();
+        }
+        result.snsId_ = snsId_;
+        result.time_ = time_;
+        result.postId_ = postId_;
+        result.type_ = type_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance()) return this;
+        if (other.getAuthor() != 0L) {
+          setAuthor(other.getAuthor());
+        }
+        if (!other.getContent().isEmpty()) {
+          content_ = other.content_;
+          onChanged();
+        }
+        if (imagesBuilder_ == null) {
+          if (!other.images_.isEmpty()) {
+            if (images_.isEmpty()) {
+              images_ = other.images_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureImagesIsMutable();
+              images_.addAll(other.images_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.images_.isEmpty()) {
+            if (imagesBuilder_.isEmpty()) {
+              imagesBuilder_.dispose();
+              imagesBuilder_ = null;
+              images_ = other.images_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              imagesBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getImagesFieldBuilder() : null;
+            } else {
+              imagesBuilder_.addAllMessages(other.images_);
+            }
+          }
+        }
+        if (other.hasLink()) {
+          mergeLink(other.getLink());
+        }
+        if (other.hasVideo()) {
+          mergeVideo(other.getVideo());
+        }
+        if (commentsBuilder_ == null) {
+          if (!other.comments_.isEmpty()) {
+            if (comments_.isEmpty()) {
+              comments_ = other.comments_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+            } else {
+              ensureCommentsIsMutable();
+              comments_.addAll(other.comments_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.comments_.isEmpty()) {
+            if (commentsBuilder_.isEmpty()) {
+              commentsBuilder_.dispose();
+              commentsBuilder_ = null;
+              comments_ = other.comments_;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              commentsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getCommentsFieldBuilder() : null;
+            } else {
+              commentsBuilder_.addAllMessages(other.comments_);
+            }
+          }
+        }
+        if (likesBuilder_ == null) {
+          if (!other.likes_.isEmpty()) {
+            if (likes_.isEmpty()) {
+              likes_ = other.likes_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+            } else {
+              ensureLikesIsMutable();
+              likes_.addAll(other.likes_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.likes_.isEmpty()) {
+            if (likesBuilder_.isEmpty()) {
+              likesBuilder_.dispose();
+              likesBuilder_ = null;
+              likes_ = other.likes_;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              likesBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getLikesFieldBuilder() : null;
+            } else {
+              likesBuilder_.addAllMessages(other.likes_);
+            }
+          }
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (other.getTime() != 0) {
+          setTime(other.getTime());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long author_ ;
+      /**
+       * <code>int64 Author = 1;</code>
+       * @return The author.
+       */
+      public long getAuthor() {
+        return author_;
+      }
+      /**
+       * <code>int64 Author = 1;</code>
+       * @param value The author to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAuthor(long value) {
+        
+        author_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 Author = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAuthor() {
+        
+        author_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object content_ = "";
+      /**
+       * <code>string Content = 2;</code>
+       * @return The content.
+       */
+      public java.lang.String getContent() {
+        java.lang.Object ref = content_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          content_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Content = 2;</code>
+       * @return The bytes for content.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes() {
+        java.lang.Object ref = content_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          content_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Content = 2;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Content = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Content = 2;</code>
+       * @param value The bytes for content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        content_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage> images_ =
+        java.util.Collections.emptyList();
+      private void ensureImagesIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          images_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage>(images_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> imagesBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage> getImagesList() {
+        if (imagesBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(images_);
+        } else {
+          return imagesBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public int getImagesCount() {
+        if (imagesBuilder_ == null) {
+          return images_.size();
+        } else {
+          return imagesBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getImages(int index) {
+        if (imagesBuilder_ == null) {
+          return images_.get(index);
+        } else {
+          return imagesBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder setImages(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (imagesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureImagesIsMutable();
+          images_.set(index, value);
+          onChanged();
+        } else {
+          imagesBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder setImages(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder builderForValue) {
+        if (imagesBuilder_ == null) {
+          ensureImagesIsMutable();
+          images_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          imagesBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder addImages(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (imagesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureImagesIsMutable();
+          images_.add(value);
+          onChanged();
+        } else {
+          imagesBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder addImages(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (imagesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureImagesIsMutable();
+          images_.add(index, value);
+          onChanged();
+        } else {
+          imagesBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder addImages(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder builderForValue) {
+        if (imagesBuilder_ == null) {
+          ensureImagesIsMutable();
+          images_.add(builderForValue.build());
+          onChanged();
+        } else {
+          imagesBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder addImages(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder builderForValue) {
+        if (imagesBuilder_ == null) {
+          ensureImagesIsMutable();
+          images_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          imagesBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder addAllImages(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage> values) {
+        if (imagesBuilder_ == null) {
+          ensureImagesIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, images_);
+          onChanged();
+        } else {
+          imagesBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder clearImages() {
+        if (imagesBuilder_ == null) {
+          images_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          imagesBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Builder removeImages(int index) {
+        if (imagesBuilder_ == null) {
+          ensureImagesIsMutable();
+          images_.remove(index);
+          onChanged();
+        } else {
+          imagesBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder getImagesBuilder(
+          int index) {
+        return getImagesFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getImagesOrBuilder(
+          int index) {
+        if (imagesBuilder_ == null) {
+          return images_.get(index);  } else {
+          return imagesBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> 
+           getImagesOrBuilderList() {
+        if (imagesBuilder_ != null) {
+          return imagesBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(images_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder addImagesBuilder() {
+        return getImagesFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder addImagesBuilder(
+          int index) {
+        return getImagesFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsMediaInfoMessage Images = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder> 
+           getImagesBuilderList() {
+        return getImagesFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> 
+          getImagesFieldBuilder() {
+        if (imagesBuilder_ == null) {
+          imagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder>(
+                  images_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          images_ = null;
+        }
+        return imagesBuilder_;
+      }
+
+      private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage link_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> linkBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       * @return Whether the link field is set.
+       */
+      public boolean hasLink() {
+        return linkBuilder_ != null || link_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       * @return The link.
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getLink() {
+        if (linkBuilder_ == null) {
+          return link_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance() : link_;
+        } else {
+          return linkBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      public Builder setLink(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (linkBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          link_ = value;
+          onChanged();
+        } else {
+          linkBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      public Builder setLink(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder builderForValue) {
+        if (linkBuilder_ == null) {
+          link_ = builderForValue.build();
+          onChanged();
+        } else {
+          linkBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      public Builder mergeLink(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (linkBuilder_ == null) {
+          if (link_ != null) {
+            link_ =
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.newBuilder(link_).mergeFrom(value).buildPartial();
+          } else {
+            link_ = value;
+          }
+          onChanged();
+        } else {
+          linkBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      public Builder clearLink() {
+        if (linkBuilder_ == null) {
+          link_ = null;
+          onChanged();
+        } else {
+          link_ = null;
+          linkBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder getLinkBuilder() {
+        
+        onChanged();
+        return getLinkFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getLinkOrBuilder() {
+        if (linkBuilder_ != null) {
+          return linkBuilder_.getMessageOrBuilder();
+        } else {
+          return link_ == null ?
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance() : link_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Link = 4;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> 
+          getLinkFieldBuilder() {
+        if (linkBuilder_ == null) {
+          linkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder>(
+                  getLink(),
+                  getParentForChildren(),
+                  isClean());
+          link_ = null;
+        }
+        return linkBuilder_;
+      }
+
+      private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage video_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> videoBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       * @return Whether the video field is set.
+       */
+      public boolean hasVideo() {
+        return videoBuilder_ != null || video_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       * @return The video.
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getVideo() {
+        if (videoBuilder_ == null) {
+          return video_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance() : video_;
+        } else {
+          return videoBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      public Builder setVideo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (videoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          video_ = value;
+          onChanged();
+        } else {
+          videoBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      public Builder setVideo(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder builderForValue) {
+        if (videoBuilder_ == null) {
+          video_ = builderForValue.build();
+          onChanged();
+        } else {
+          videoBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      public Builder mergeVideo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage value) {
+        if (videoBuilder_ == null) {
+          if (video_ != null) {
+            video_ =
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.newBuilder(video_).mergeFrom(value).buildPartial();
+          } else {
+            video_ = value;
+          }
+          onChanged();
+        } else {
+          videoBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      public Builder clearVideo() {
+        if (videoBuilder_ == null) {
+          video_ = null;
+          onChanged();
+        } else {
+          video_ = null;
+          videoBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder getVideoBuilder() {
+        
+        onChanged();
+        return getVideoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder getVideoOrBuilder() {
+        if (videoBuilder_ != null) {
+          return videoBuilder_.getMessageOrBuilder();
+        } else {
+          return video_ == null ?
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance() : video_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsMediaInfoMessage Video = 5;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder> 
+          getVideoFieldBuilder() {
+        if (videoBuilder_ == null) {
+          videoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder>(
+                  getVideo(),
+                  getParentForChildren(),
+                  isClean());
+          video_ = null;
+        }
+        return videoBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage> comments_ =
+        java.util.Collections.emptyList();
+      private void ensureCommentsIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          comments_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage>(comments_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder> commentsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage> getCommentsList() {
+        if (commentsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(comments_);
+        } else {
+          return commentsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public int getCommentsCount() {
+        if (commentsBuilder_ == null) {
+          return comments_.size();
+        } else {
+          return commentsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage getComments(int index) {
+        if (commentsBuilder_ == null) {
+          return comments_.get(index);
+        } else {
+          return commentsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder setComments(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage value) {
+        if (commentsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCommentsIsMutable();
+          comments_.set(index, value);
+          onChanged();
+        } else {
+          commentsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder setComments(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder builderForValue) {
+        if (commentsBuilder_ == null) {
+          ensureCommentsIsMutable();
+          comments_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          commentsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder addComments(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage value) {
+        if (commentsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCommentsIsMutable();
+          comments_.add(value);
+          onChanged();
+        } else {
+          commentsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder addComments(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage value) {
+        if (commentsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureCommentsIsMutable();
+          comments_.add(index, value);
+          onChanged();
+        } else {
+          commentsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder addComments(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder builderForValue) {
+        if (commentsBuilder_ == null) {
+          ensureCommentsIsMutable();
+          comments_.add(builderForValue.build());
+          onChanged();
+        } else {
+          commentsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder addComments(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder builderForValue) {
+        if (commentsBuilder_ == null) {
+          ensureCommentsIsMutable();
+          comments_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          commentsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder addAllComments(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage> values) {
+        if (commentsBuilder_ == null) {
+          ensureCommentsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, comments_);
+          onChanged();
+        } else {
+          commentsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder clearComments() {
+        if (commentsBuilder_ == null) {
+          comments_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000002);
+          onChanged();
+        } else {
+          commentsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Builder removeComments(int index) {
+        if (commentsBuilder_ == null) {
+          ensureCommentsIsMutable();
+          comments_.remove(index);
+          onChanged();
+        } else {
+          commentsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder getCommentsBuilder(
+          int index) {
+        return getCommentsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder getCommentsOrBuilder(
+          int index) {
+        if (commentsBuilder_ == null) {
+          return comments_.get(index);  } else {
+          return commentsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder> 
+           getCommentsOrBuilderList() {
+        if (commentsBuilder_ != null) {
+          return commentsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(comments_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder addCommentsBuilder() {
+        return getCommentsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder addCommentsBuilder(
+          int index) {
+        return getCommentsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsCommentMessage Comments = 6;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder> 
+           getCommentsBuilderList() {
+        return getCommentsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder> 
+          getCommentsFieldBuilder() {
+        if (commentsBuilder_ == null) {
+          commentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder>(
+                  comments_,
+                  ((bitField0_ & 0x00000002) != 0),
+                  getParentForChildren(),
+                  isClean());
+          comments_ = null;
+        }
+        return commentsBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage> likes_ =
+        java.util.Collections.emptyList();
+      private void ensureLikesIsMutable() {
+        if (!((bitField0_ & 0x00000004) != 0)) {
+          likes_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage>(likes_);
+          bitField0_ |= 0x00000004;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder> likesBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage> getLikesList() {
+        if (likesBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(likes_);
+        } else {
+          return likesBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public int getLikesCount() {
+        if (likesBuilder_ == null) {
+          return likes_.size();
+        } else {
+          return likesBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage getLikes(int index) {
+        if (likesBuilder_ == null) {
+          return likes_.get(index);
+        } else {
+          return likesBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder setLikes(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage value) {
+        if (likesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureLikesIsMutable();
+          likes_.set(index, value);
+          onChanged();
+        } else {
+          likesBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder setLikes(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder builderForValue) {
+        if (likesBuilder_ == null) {
+          ensureLikesIsMutable();
+          likes_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          likesBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder addLikes(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage value) {
+        if (likesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureLikesIsMutable();
+          likes_.add(value);
+          onChanged();
+        } else {
+          likesBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder addLikes(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage value) {
+        if (likesBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureLikesIsMutable();
+          likes_.add(index, value);
+          onChanged();
+        } else {
+          likesBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder addLikes(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder builderForValue) {
+        if (likesBuilder_ == null) {
+          ensureLikesIsMutable();
+          likes_.add(builderForValue.build());
+          onChanged();
+        } else {
+          likesBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder addLikes(
+          int index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder builderForValue) {
+        if (likesBuilder_ == null) {
+          ensureLikesIsMutable();
+          likes_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          likesBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder addAllLikes(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage> values) {
+        if (likesBuilder_ == null) {
+          ensureLikesIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, likes_);
+          onChanged();
+        } else {
+          likesBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder clearLikes() {
+        if (likesBuilder_ == null) {
+          likes_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000004);
+          onChanged();
+        } else {
+          likesBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Builder removeLikes(int index) {
+        if (likesBuilder_ == null) {
+          ensureLikesIsMutable();
+          likes_.remove(index);
+          onChanged();
+        } else {
+          likesBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder getLikesBuilder(
+          int index) {
+        return getLikesFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder getLikesOrBuilder(
+          int index) {
+        if (likesBuilder_ == null) {
+          return likes_.get(index);  } else {
+          return likesBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder> 
+           getLikesOrBuilderList() {
+        if (likesBuilder_ != null) {
+          return likesBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(likes_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder addLikesBuilder() {
+        return getLikesFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder addLikesBuilder(
+          int index) {
+        return getLikesFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsLikeMessage Likes = 7;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder> 
+           getLikesBuilderList() {
+        return getLikesFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder> 
+          getLikesFieldBuilder() {
+        if (likesBuilder_ == null) {
+          likesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder>(
+                  likes_,
+                  ((bitField0_ & 0x00000004) != 0),
+                  getParentForChildren(),
+                  isClean());
+          likes_ = null;
+        }
+        return likesBuilder_;
+      }
+
+      private long snsId_ ;
+      /**
+       * <code>int64 SnsId = 8;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <code>int64 SnsId = 8;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 SnsId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int time_ ;
+      /**
+       * <code>int32 Time = 9;</code>
+       * @return The time.
+       */
+      public int getTime() {
+        return time_;
+      }
+      /**
+       * <code>int32 Time = 9;</code>
+       * @param value The time to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTime(int value) {
+        
+        time_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Time = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTime() {
+        
+        time_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <code>string PostId = 10;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string PostId = 10;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string PostId = 10;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string PostId = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string PostId = 10;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int type_ ;
+      /**
+       * <pre>
+       * 0 员工发表,2 企业发表
+       * </pre>
+       *
+       * <code>int32 Type = 11;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <pre>
+       * 0 员工发表,2 企业发表
+       * </pre>
+       *
+       * <code>int32 Type = 11;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 0 员工发表,2 企业发表
+       * </pre>
+       *
+       * <code>int32 Type = 11;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsInfoMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsInfoMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsInfoMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsInfoMessage>() {
+      @java.lang.Override
+      public SnsInfoMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsInfoMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsInfoMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsInfoMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SnsMediaInfoMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsMediaInfoMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 缩略图地址
+     * </pre>
+     *
+     * <code>string ThumbImg = 1;</code>
+     * @return The thumbImg.
+     */
+    java.lang.String getThumbImg();
+    /**
+     * <pre>
+     * 缩略图地址
+     * </pre>
+     *
+     * <code>string ThumbImg = 1;</code>
+     * @return The bytes for thumbImg.
+     */
+    com.google.protobuf.ByteString
+        getThumbImgBytes();
+
+    /**
+     * <pre>
+     * 大图地址,链接地址 视频地址等
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The url.
+     */
+    java.lang.String getUrl();
+    /**
+     * <pre>
+     * 大图地址,链接地址 视频地址等
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The bytes for url.
+     */
+    com.google.protobuf.ByteString
+        getUrlBytes();
+
+    /**
+     * <pre>
+     * 描述,标题等
+     * </pre>
+     *
+     * <code>string Desc = 3;</code>
+     * @return The desc.
+     */
+    java.lang.String getDesc();
+    /**
+     * <pre>
+     * 描述,标题等
+     * </pre>
+     *
+     * <code>string Desc = 3;</code>
+     * @return The bytes for desc.
+     */
+    com.google.protobuf.ByteString
+        getDescBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsMediaInfoMessage}
+   */
+  public  static final class SnsMediaInfoMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsMediaInfoMessage)
+      SnsMediaInfoMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsMediaInfoMessage.newBuilder() to construct.
+    private SnsMediaInfoMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsMediaInfoMessage() {
+      thumbImg_ = "";
+      url_ = "";
+      desc_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsMediaInfoMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsMediaInfoMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              thumbImg_ = s;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              url_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              desc_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder.class);
+    }
+
+    public static final int THUMBIMG_FIELD_NUMBER = 1;
+    private volatile java.lang.Object thumbImg_;
+    /**
+     * <pre>
+     * 缩略图地址
+     * </pre>
+     *
+     * <code>string ThumbImg = 1;</code>
+     * @return The thumbImg.
+     */
+    public java.lang.String getThumbImg() {
+      java.lang.Object ref = thumbImg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        thumbImg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 缩略图地址
+     * </pre>
+     *
+     * <code>string ThumbImg = 1;</code>
+     * @return The bytes for thumbImg.
+     */
+    public com.google.protobuf.ByteString
+        getThumbImgBytes() {
+      java.lang.Object ref = thumbImg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        thumbImg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int URL_FIELD_NUMBER = 2;
+    private volatile java.lang.Object url_;
+    /**
+     * <pre>
+     * 大图地址,链接地址 视频地址等
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The url.
+     */
+    public java.lang.String getUrl() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        url_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 大图地址,链接地址 视频地址等
+     * </pre>
+     *
+     * <code>string Url = 2;</code>
+     * @return The bytes for url.
+     */
+    public com.google.protobuf.ByteString
+        getUrlBytes() {
+      java.lang.Object ref = url_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        url_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int DESC_FIELD_NUMBER = 3;
+    private volatile java.lang.Object desc_;
+    /**
+     * <pre>
+     * 描述,标题等
+     * </pre>
+     *
+     * <code>string Desc = 3;</code>
+     * @return The desc.
+     */
+    public java.lang.String getDesc() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        desc_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 描述,标题等
+     * </pre>
+     *
+     * <code>string Desc = 3;</code>
+     * @return The bytes for desc.
+     */
+    public com.google.protobuf.ByteString
+        getDescBytes() {
+      java.lang.Object ref = desc_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        desc_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getThumbImgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, thumbImg_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, desc_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getThumbImgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, thumbImg_);
+      }
+      if (!getUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_);
+      }
+      if (!getDescBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, desc_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage other = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage) obj;
+
+      if (!getThumbImg()
+          .equals(other.getThumbImg())) return false;
+      if (!getUrl()
+          .equals(other.getUrl())) return false;
+      if (!getDesc()
+          .equals(other.getDesc())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + THUMBIMG_FIELD_NUMBER;
+      hash = (53 * hash) + getThumbImg().hashCode();
+      hash = (37 * hash) + URL_FIELD_NUMBER;
+      hash = (53 * hash) + getUrl().hashCode();
+      hash = (37 * hash) + DESC_FIELD_NUMBER;
+      hash = (53 * hash) + getDesc().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsMediaInfoMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsMediaInfoMessage)
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        thumbImg_ = "";
+
+        url_ = "";
+
+        desc_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage build() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage result = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage(this);
+        result.thumbImg_ = thumbImg_;
+        result.url_ = url_;
+        result.desc_ = desc_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage.getDefaultInstance()) return this;
+        if (!other.getThumbImg().isEmpty()) {
+          thumbImg_ = other.thumbImg_;
+          onChanged();
+        }
+        if (!other.getUrl().isEmpty()) {
+          url_ = other.url_;
+          onChanged();
+        }
+        if (!other.getDesc().isEmpty()) {
+          desc_ = other.desc_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private java.lang.Object thumbImg_ = "";
+      /**
+       * <pre>
+       * 缩略图地址
+       * </pre>
+       *
+       * <code>string ThumbImg = 1;</code>
+       * @return The thumbImg.
+       */
+      public java.lang.String getThumbImg() {
+        java.lang.Object ref = thumbImg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          thumbImg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 缩略图地址
+       * </pre>
+       *
+       * <code>string ThumbImg = 1;</code>
+       * @return The bytes for thumbImg.
+       */
+      public com.google.protobuf.ByteString
+          getThumbImgBytes() {
+        java.lang.Object ref = thumbImg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          thumbImg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 缩略图地址
+       * </pre>
+       *
+       * <code>string ThumbImg = 1;</code>
+       * @param value The thumbImg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setThumbImg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        thumbImg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 缩略图地址
+       * </pre>
+       *
+       * <code>string ThumbImg = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearThumbImg() {
+        
+        thumbImg_ = getDefaultInstance().getThumbImg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 缩略图地址
+       * </pre>
+       *
+       * <code>string ThumbImg = 1;</code>
+       * @param value The bytes for thumbImg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setThumbImgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        thumbImg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object url_ = "";
+      /**
+       * <pre>
+       * 大图地址,链接地址 视频地址等
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @return The url.
+       */
+      public java.lang.String getUrl() {
+        java.lang.Object ref = url_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          url_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 大图地址,链接地址 视频地址等
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @return The bytes for url.
+       */
+      public com.google.protobuf.ByteString
+          getUrlBytes() {
+        java.lang.Object ref = url_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          url_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 大图地址,链接地址 视频地址等
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @param value The url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        url_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 大图地址,链接地址 视频地址等
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearUrl() {
+        
+        url_ = getDefaultInstance().getUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 大图地址,链接地址 视频地址等
+       * </pre>
+       *
+       * <code>string Url = 2;</code>
+       * @param value The bytes for url to set.
+       * @return This builder for chaining.
+       */
+      public Builder setUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        url_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object desc_ = "";
+      /**
+       * <pre>
+       * 描述,标题等
+       * </pre>
+       *
+       * <code>string Desc = 3;</code>
+       * @return The desc.
+       */
+      public java.lang.String getDesc() {
+        java.lang.Object ref = desc_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          desc_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 描述,标题等
+       * </pre>
+       *
+       * <code>string Desc = 3;</code>
+       * @return The bytes for desc.
+       */
+      public com.google.protobuf.ByteString
+          getDescBytes() {
+        java.lang.Object ref = desc_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          desc_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 描述,标题等
+       * </pre>
+       *
+       * <code>string Desc = 3;</code>
+       * @param value The desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDesc(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 描述,标题等
+       * </pre>
+       *
+       * <code>string Desc = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearDesc() {
+        
+        desc_ = getDefaultInstance().getDesc();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 描述,标题等
+       * </pre>
+       *
+       * <code>string Desc = 3;</code>
+       * @param value The bytes for desc to set.
+       * @return This builder for chaining.
+       */
+      public Builder setDescBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        desc_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsMediaInfoMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsMediaInfoMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsMediaInfoMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsMediaInfoMessage>() {
+      @java.lang.Override
+      public SnsMediaInfoMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsMediaInfoMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsMediaInfoMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsMediaInfoMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsMediaInfoMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SnsCommentMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsCommentMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 评论人的微信号
+     * </pre>
+     *
+     * <code>int64 FriendId = 1;</code>
+     * @return The friendId.
+     */
+    long getFriendId();
+
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    java.lang.String getContent();
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes();
+
+    /**
+     * <pre>
+     * 微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 CommentId = 3;</code>
+     * @return The commentId.
+     */
+    long getCommentId();
+
+    /**
+     * <pre>
+     * 回复的微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 ReplyCommentId = 4;</code>
+     * @return The replyCommentId.
+     */
+    long getReplyCommentId();
+
+    /**
+     * <pre>
+     * 评论对象的微信号
+     * </pre>
+     *
+     * <code>int64 ReplyWxId = 5;</code>
+     * @return The replyWxId.
+     */
+    long getReplyWxId();
+
+    /**
+     * <pre>
+     * 评论时间
+     * </pre>
+     *
+     * <code>int32 Time = 6;</code>
+     * @return The time.
+     */
+    int getTime();
+
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsCommentMessage}
+   */
+  public  static final class SnsCommentMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsCommentMessage)
+      SnsCommentMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsCommentMessage.newBuilder() to construct.
+    private SnsCommentMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsCommentMessage() {
+      content_ = "";
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsCommentMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsCommentMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              friendId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              content_ = s;
+              break;
+            }
+            case 24: {
+
+              commentId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              replyCommentId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+
+              replyWxId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              time_ = input.readInt32();
+              break;
+            }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder.class);
+    }
+
+    public static final int FRIENDID_FIELD_NUMBER = 1;
+    private long friendId_;
+    /**
+     * <pre>
+     * 评论人的微信号
+     * </pre>
+     *
+     * <code>int64 FriendId = 1;</code>
+     * @return The friendId.
+     */
+    public long getFriendId() {
+      return friendId_;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 2;
+    private volatile java.lang.Object content_;
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    public java.lang.String getContent() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        content_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        content_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int COMMENTID_FIELD_NUMBER = 3;
+    private long commentId_;
+    /**
+     * <pre>
+     * 微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 CommentId = 3;</code>
+     * @return The commentId.
+     */
+    public long getCommentId() {
+      return commentId_;
+    }
+
+    public static final int REPLYCOMMENTID_FIELD_NUMBER = 4;
+    private long replyCommentId_;
+    /**
+     * <pre>
+     * 回复的微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 ReplyCommentId = 4;</code>
+     * @return The replyCommentId.
+     */
+    public long getReplyCommentId() {
+      return replyCommentId_;
+    }
+
+    public static final int REPLYWXID_FIELD_NUMBER = 5;
+    private long replyWxId_;
+    /**
+     * <pre>
+     * 评论对象的微信号
+     * </pre>
+     *
+     * <code>int64 ReplyWxId = 5;</code>
+     * @return The replyWxId.
+     */
+    public long getReplyWxId() {
+      return replyWxId_;
+    }
+
+    public static final int TIME_FIELD_NUMBER = 6;
+    private int time_;
+    /**
+     * <pre>
+     * 评论时间
+     * </pre>
+     *
+     * <code>int32 Time = 6;</code>
+     * @return The time.
+     */
+    public int getTime() {
+      return time_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 7;
+    private volatile java.lang.Object postId_;
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (friendId_ != 0L) {
+        output.writeInt64(1, friendId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
+      }
+      if (commentId_ != 0L) {
+        output.writeInt64(3, commentId_);
+      }
+      if (replyCommentId_ != 0L) {
+        output.writeInt64(4, replyCommentId_);
+      }
+      if (replyWxId_ != 0L) {
+        output.writeInt64(5, replyWxId_);
+      }
+      if (time_ != 0) {
+        output.writeInt32(6, time_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, postId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (friendId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, friendId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
+      }
+      if (commentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, commentId_);
+      }
+      if (replyCommentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, replyCommentId_);
+      }
+      if (replyWxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, replyWxId_);
+      }
+      if (time_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(6, time_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, postId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage other = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage) obj;
+
+      if (getFriendId()
+          != other.getFriendId()) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (getCommentId()
+          != other.getCommentId()) return false;
+      if (getReplyCommentId()
+          != other.getReplyCommentId()) return false;
+      if (getReplyWxId()
+          != other.getReplyWxId()) return false;
+      if (getTime()
+          != other.getTime()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + FRIENDID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getFriendId());
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (37 * hash) + COMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCommentId());
+      hash = (37 * hash) + REPLYCOMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getReplyCommentId());
+      hash = (37 * hash) + REPLYWXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getReplyWxId());
+      hash = (37 * hash) + TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getTime();
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsCommentMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsCommentMessage)
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        friendId_ = 0L;
+
+        content_ = "";
+
+        commentId_ = 0L;
+
+        replyCommentId_ = 0L;
+
+        replyWxId_ = 0L;
+
+        time_ = 0;
+
+        postId_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage build() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage result = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage(this);
+        result.friendId_ = friendId_;
+        result.content_ = content_;
+        result.commentId_ = commentId_;
+        result.replyCommentId_ = replyCommentId_;
+        result.replyWxId_ = replyWxId_;
+        result.time_ = time_;
+        result.postId_ = postId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage.getDefaultInstance()) return this;
+        if (other.getFriendId() != 0L) {
+          setFriendId(other.getFriendId());
+        }
+        if (!other.getContent().isEmpty()) {
+          content_ = other.content_;
+          onChanged();
+        }
+        if (other.getCommentId() != 0L) {
+          setCommentId(other.getCommentId());
+        }
+        if (other.getReplyCommentId() != 0L) {
+          setReplyCommentId(other.getReplyCommentId());
+        }
+        if (other.getReplyWxId() != 0L) {
+          setReplyWxId(other.getReplyWxId());
+        }
+        if (other.getTime() != 0) {
+          setTime(other.getTime());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long friendId_ ;
+      /**
+       * <pre>
+       * 评论人的微信号
+       * </pre>
+       *
+       * <code>int64 FriendId = 1;</code>
+       * @return The friendId.
+       */
+      public long getFriendId() {
+        return friendId_;
+      }
+      /**
+       * <pre>
+       * 评论人的微信号
+       * </pre>
+       *
+       * <code>int64 FriendId = 1;</code>
+       * @param value The friendId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFriendId(long value) {
+        
+        friendId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论人的微信号
+       * </pre>
+       *
+       * <code>int64 FriendId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFriendId() {
+        
+        friendId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object content_ = "";
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return The content.
+       */
+      public java.lang.String getContent() {
+        java.lang.Object ref = content_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          content_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return The bytes for content.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes() {
+        java.lang.Object ref = content_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          content_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @param value The bytes for content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        content_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long commentId_ ;
+      /**
+       * <pre>
+       * 微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 CommentId = 3;</code>
+       * @return The commentId.
+       */
+      public long getCommentId() {
+        return commentId_;
+      }
+      /**
+       * <pre>
+       * 微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 CommentId = 3;</code>
+       * @param value The commentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentId(long value) {
+        
+        commentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 CommentId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCommentId() {
+        
+        commentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long replyCommentId_ ;
+      /**
+       * <pre>
+       * 回复的微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 ReplyCommentId = 4;</code>
+       * @return The replyCommentId.
+       */
+      public long getReplyCommentId() {
+        return replyCommentId_;
+      }
+      /**
+       * <pre>
+       * 回复的微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 ReplyCommentId = 4;</code>
+       * @param value The replyCommentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReplyCommentId(long value) {
+        
+        replyCommentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 回复的微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 ReplyCommentId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReplyCommentId() {
+        
+        replyCommentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long replyWxId_ ;
+      /**
+       * <pre>
+       * 评论对象的微信号
+       * </pre>
+       *
+       * <code>int64 ReplyWxId = 5;</code>
+       * @return The replyWxId.
+       */
+      public long getReplyWxId() {
+        return replyWxId_;
+      }
+      /**
+       * <pre>
+       * 评论对象的微信号
+       * </pre>
+       *
+       * <code>int64 ReplyWxId = 5;</code>
+       * @param value The replyWxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReplyWxId(long value) {
+        
+        replyWxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论对象的微信号
+       * </pre>
+       *
+       * <code>int64 ReplyWxId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReplyWxId() {
+        
+        replyWxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int time_ ;
+      /**
+       * <pre>
+       * 评论时间
+       * </pre>
+       *
+       * <code>int32 Time = 6;</code>
+       * @return The time.
+       */
+      public int getTime() {
+        return time_;
+      }
+      /**
+       * <pre>
+       * 评论时间
+       * </pre>
+       *
+       * <code>int32 Time = 6;</code>
+       * @param value The time to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTime(int value) {
+        
+        time_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论时间
+       * </pre>
+       *
+       * <code>int32 Time = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTime() {
+        
+        time_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <code>string PostId = 7;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsCommentMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsCommentMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsCommentMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsCommentMessage>() {
+      @java.lang.Override
+      public SnsCommentMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsCommentMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsCommentMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsCommentMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsCommentMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SnsLikeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsLikeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 FriendId = 1;</code>
+     * @return The friendId.
+     */
+    long getFriendId();
+
+    /**
+     * <code>int32 Time = 2;</code>
+     * @return The time.
+     */
+    int getTime();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsLikeMessage}
+   */
+  public  static final class SnsLikeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsLikeMessage)
+      SnsLikeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsLikeMessage.newBuilder() to construct.
+    private SnsLikeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsLikeMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsLikeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsLikeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              friendId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              time_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder.class);
+    }
+
+    public static final int FRIENDID_FIELD_NUMBER = 1;
+    private long friendId_;
+    /**
+     * <code>int64 FriendId = 1;</code>
+     * @return The friendId.
+     */
+    public long getFriendId() {
+      return friendId_;
+    }
+
+    public static final int TIME_FIELD_NUMBER = 2;
+    private int time_;
+    /**
+     * <code>int32 Time = 2;</code>
+     * @return The time.
+     */
+    public int getTime() {
+      return time_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (friendId_ != 0L) {
+        output.writeInt64(1, friendId_);
+      }
+      if (time_ != 0) {
+        output.writeInt32(2, time_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (friendId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, friendId_);
+      }
+      if (time_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, time_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage other = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage) obj;
+
+      if (getFriendId()
+          != other.getFriendId()) return false;
+      if (getTime()
+          != other.getTime()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + FRIENDID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getFriendId());
+      hash = (37 * hash) + TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getTime();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsLikeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsLikeMessage)
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.class, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        friendId_ = 0L;
+
+        time_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage build() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage result = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage(this);
+        result.friendId_ = friendId_;
+        result.time_ = time_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage.getDefaultInstance()) return this;
+        if (other.getFriendId() != 0L) {
+          setFriendId(other.getFriendId());
+        }
+        if (other.getTime() != 0) {
+          setTime(other.getTime());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long friendId_ ;
+      /**
+       * <code>int64 FriendId = 1;</code>
+       * @return The friendId.
+       */
+      public long getFriendId() {
+        return friendId_;
+      }
+      /**
+       * <code>int64 FriendId = 1;</code>
+       * @param value The friendId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFriendId(long value) {
+        
+        friendId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 FriendId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFriendId() {
+        
+        friendId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int time_ ;
+      /**
+       * <code>int32 Time = 2;</code>
+       * @return The time.
+       */
+      public int getTime() {
+        return time_;
+      }
+      /**
+       * <code>int32 Time = 2;</code>
+       * @param value The time to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTime(int value) {
+        
+        time_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Time = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTime() {
+        
+        time_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsLikeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsLikeMessage)
+    private static final Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsLikeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsLikeMessage>() {
+      @java.lang.Override
+      public SnsLikeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsLikeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsLikeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsLikeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsLikeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n$WPullMySnsListTaskResultNotice.proto\022\020" +
+      "Im.Scrm.Ww.Proto\"\251\001\n$PullMySnsListTaskRe" +
+      "sultNoticeMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Succe" +
+      "ss\030\002 \001(\010\022\016\n\006ErrMsg\030\003 \001(\t\0221\n\007SnsList\030\004 \003(" +
+      "\0132 .Im.Scrm.Ww.Proto.SnsInfoMessage\022\017\n\007N" +
+      "extSeq\030\005 \001(\003\022\016\n\006TaskId\030\006 \001(\003\"\366\002\n\016SnsInfo" +
+      "Message\022\016\n\006Author\030\001 \001(\003\022\017\n\007Content\030\002 \001(\t" +
+      "\0225\n\006Images\030\003 \003(\0132%.Im.Scrm.Ww.Proto.SnsM" +
+      "ediaInfoMessage\0223\n\004Link\030\004 \001(\0132%.Im.Scrm." +
+      "Ww.Proto.SnsMediaInfoMessage\0224\n\005Video\030\005 " +
+      "\001(\0132%.Im.Scrm.Ww.Proto.SnsMediaInfoMessa" +
+      "ge\0225\n\010Comments\030\006 \003(\0132#.Im.Scrm.Ww.Proto." +
+      "SnsCommentMessage\022/\n\005Likes\030\007 \003(\0132 .Im.Sc" +
+      "rm.Ww.Proto.SnsLikeMessage\022\r\n\005SnsId\030\010 \001(" +
+      "\003\022\014\n\004Time\030\t \001(\005\022\016\n\006PostId\030\n \001(\t\022\014\n\004Type\030" +
+      "\013 \001(\005\"B\n\023SnsMediaInfoMessage\022\020\n\010ThumbImg" +
+      "\030\001 \001(\t\022\013\n\003Url\030\002 \001(\t\022\014\n\004Desc\030\003 \001(\t\"\222\001\n\021Sn" +
+      "sCommentMessage\022\020\n\010FriendId\030\001 \001(\003\022\017\n\007Con" +
+      "tent\030\002 \001(\t\022\021\n\tCommentId\030\003 \001(\003\022\026\n\016ReplyCo" +
+      "mmentId\030\004 \001(\003\022\021\n\tReplyWxId\030\005 \001(\003\022\014\n\004Time" +
+      "\030\006 \001(\005\022\016\n\006PostId\030\007 \001(\t\"0\n\016SnsLikeMessage" +
+      "\022\020\n\010FriendId\030\001 \001(\003\022\014\n\004Time\030\002 \001(\005b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PullMySnsListTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "SnsList", "NextSeq", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsInfoMessage_descriptor,
+        new java.lang.String[] { "Author", "Content", "Images", "Link", "Video", "Comments", "Likes", "SnsId", "Time", "PostId", "Type", });
+    internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_descriptor =
+      getDescriptor().getMessageTypes().get(2);
+    internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsMediaInfoMessage_descriptor,
+        new java.lang.String[] { "ThumbImg", "Url", "Desc", });
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_descriptor =
+      getDescriptor().getMessageTypes().get(3);
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsCommentMessage_descriptor,
+        new java.lang.String[] { "FriendId", "Content", "CommentId", "ReplyCommentId", "ReplyWxId", "Time", "PostId", });
+    internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(4);
+    internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsLikeMessage_descriptor,
+        new java.lang.String[] { "FriendId", "Time", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 709 - 0
src/main/java/Im/Scrm/Ww/Proto/WPullSnsTaskListTask.java

@@ -0,0 +1,709 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPullSnsTaskListTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPullSnsTaskListTask {
+  private WPullSnsTaskListTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PullSnsTaskListTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 只有未发表 或 全部
+     * </pre>
+     *
+     * <code>bool ShowAll = 2;</code>
+     * @return The showAll.
+     */
+    boolean getShowAll();
+
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage}
+   */
+  public  static final class PullSnsTaskListTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage)
+      PullSnsTaskListTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PullSnsTaskListTaskMessage.newBuilder() to construct.
+    private PullSnsTaskListTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PullSnsTaskListTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PullSnsTaskListTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PullSnsTaskListTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              showAll_ = input.readBool();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullSnsTaskListTask.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullSnsTaskListTask.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.class, Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SHOWALL_FIELD_NUMBER = 2;
+    private boolean showAll_;
+    /**
+     * <pre>
+     * 只有未发表 或 全部
+     * </pre>
+     *
+     * <code>bool ShowAll = 2;</code>
+     * @return The showAll.
+     */
+    public boolean getShowAll() {
+      return showAll_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (showAll_ != false) {
+        output.writeBool(2, showAll_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (showAll_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, showAll_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage other = (Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getShowAll()
+          != other.getShowAll()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SHOWALL_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getShowAll());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage)
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTask.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTask.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.class, Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        showAll_ = false;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTask.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage result = new Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.showAll_ = showAll_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getShowAll() != false) {
+          setShowAll(other.getShowAll());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean showAll_ ;
+      /**
+       * <pre>
+       * 只有未发表 或 全部
+       * </pre>
+       *
+       * <code>bool ShowAll = 2;</code>
+       * @return The showAll.
+       */
+      public boolean getShowAll() {
+        return showAll_;
+      }
+      /**
+       * <pre>
+       * 只有未发表 或 全部
+       * </pre>
+       *
+       * <code>bool ShowAll = 2;</code>
+       * @param value The showAll to set.
+       * @return This builder for chaining.
+       */
+      public Builder setShowAll(boolean value) {
+        
+        showAll_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 只有未发表 或 全部
+       * </pre>
+       *
+       * <code>bool ShowAll = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearShowAll() {
+        
+        showAll_ = false;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PullSnsTaskListTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PullSnsTaskListTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PullSnsTaskListTaskMessage>() {
+      @java.lang.Override
+      public PullSnsTaskListTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PullSnsTaskListTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PullSnsTaskListTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PullSnsTaskListTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullSnsTaskListTask.PullSnsTaskListTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\032WPullSnsTaskListTask.proto\022\020Im.Scrm.Ww" +
+      ".Proto\"K\n\032PullSnsTaskListTaskMessage\022\014\n\004" +
+      "WxId\030\001 \001(\003\022\017\n\007ShowAll\030\002 \001(\010\022\016\n\006TaskId\030\003 " +
+      "\001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ShowAll", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 2058 - 0
src/main/java/Im/Scrm/Ww/Proto/WPullSnsTaskListTaskResultNotice.java

@@ -0,0 +1,2058 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WPullSnsTaskListTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WPullSnsTaskListTaskResultNotice {
+  private WPullSnsTaskListTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PullSnsTaskListTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage> 
+        getTaskListList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage getTaskList(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    int getTaskListCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder> 
+        getTaskListOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder getTaskListOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage}
+   */
+  public  static final class PullSnsTaskListTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage)
+      PullSnsTaskListTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use PullSnsTaskListTaskResultNoticeMessage.newBuilder() to construct.
+    private PullSnsTaskListTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private PullSnsTaskListTaskResultNoticeMessage() {
+      errMsg_ = "";
+      taskList_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new PullSnsTaskListTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private PullSnsTaskListTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                taskList_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              taskList_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          taskList_ = java.util.Collections.unmodifiableList(taskList_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKLIST_FIELD_NUMBER = 4;
+    private java.util.List<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage> taskList_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage> getTaskListList() {
+      return taskList_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder> 
+        getTaskListOrBuilderList() {
+      return taskList_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    public int getTaskListCount() {
+      return taskList_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage getTaskList(int index) {
+      return taskList_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder getTaskListOrBuilder(
+        int index) {
+      return taskList_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      for (int i = 0; i < taskList_.size(); i++) {
+        output.writeMessage(4, taskList_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      for (int i = 0; i < taskList_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, taskList_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getTaskListList()
+          .equals(other.getTaskListList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      if (getTaskListCount() > 0) {
+        hash = (37 * hash) + TASKLIST_FIELD_NUMBER;
+        hash = (53 * hash) + getTaskListList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getTaskListFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        if (taskListBuilder_ == null) {
+          taskList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          taskListBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        if (taskListBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            taskList_ = java.util.Collections.unmodifiableList(taskList_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.taskList_ = taskList_;
+        } else {
+          result.taskList_ = taskListBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (taskListBuilder_ == null) {
+          if (!other.taskList_.isEmpty()) {
+            if (taskList_.isEmpty()) {
+              taskList_ = other.taskList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureTaskListIsMutable();
+              taskList_.addAll(other.taskList_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.taskList_.isEmpty()) {
+            if (taskListBuilder_.isEmpty()) {
+              taskListBuilder_.dispose();
+              taskListBuilder_ = null;
+              taskList_ = other.taskList_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              taskListBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getTaskListFieldBuilder() : null;
+            } else {
+              taskListBuilder_.addAllMessages(other.taskList_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage> taskList_ =
+        java.util.Collections.emptyList();
+      private void ensureTaskListIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          taskList_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage>(taskList_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder> taskListBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage> getTaskListList() {
+        if (taskListBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(taskList_);
+        } else {
+          return taskListBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public int getTaskListCount() {
+        if (taskListBuilder_ == null) {
+          return taskList_.size();
+        } else {
+          return taskListBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage getTaskList(int index) {
+        if (taskListBuilder_ == null) {
+          return taskList_.get(index);
+        } else {
+          return taskListBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder setTaskList(
+          int index, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage value) {
+        if (taskListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureTaskListIsMutable();
+          taskList_.set(index, value);
+          onChanged();
+        } else {
+          taskListBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder setTaskList(
+          int index, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder builderForValue) {
+        if (taskListBuilder_ == null) {
+          ensureTaskListIsMutable();
+          taskList_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          taskListBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder addTaskList(Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage value) {
+        if (taskListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureTaskListIsMutable();
+          taskList_.add(value);
+          onChanged();
+        } else {
+          taskListBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder addTaskList(
+          int index, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage value) {
+        if (taskListBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureTaskListIsMutable();
+          taskList_.add(index, value);
+          onChanged();
+        } else {
+          taskListBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder addTaskList(
+          Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder builderForValue) {
+        if (taskListBuilder_ == null) {
+          ensureTaskListIsMutable();
+          taskList_.add(builderForValue.build());
+          onChanged();
+        } else {
+          taskListBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder addTaskList(
+          int index, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder builderForValue) {
+        if (taskListBuilder_ == null) {
+          ensureTaskListIsMutable();
+          taskList_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          taskListBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder addAllTaskList(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage> values) {
+        if (taskListBuilder_ == null) {
+          ensureTaskListIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, taskList_);
+          onChanged();
+        } else {
+          taskListBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder clearTaskList() {
+        if (taskListBuilder_ == null) {
+          taskList_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          taskListBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Builder removeTaskList(int index) {
+        if (taskListBuilder_ == null) {
+          ensureTaskListIsMutable();
+          taskList_.remove(index);
+          onChanged();
+        } else {
+          taskListBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder getTaskListBuilder(
+          int index) {
+        return getTaskListFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder getTaskListOrBuilder(
+          int index) {
+        if (taskListBuilder_ == null) {
+          return taskList_.get(index);  } else {
+          return taskListBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder> 
+           getTaskListOrBuilderList() {
+        if (taskListBuilder_ != null) {
+          return taskListBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(taskList_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder addTaskListBuilder() {
+        return getTaskListFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder addTaskListBuilder(
+          int index) {
+        return getTaskListFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SnsTaskMessage TaskList = 4;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder> 
+           getTaskListBuilderList() {
+        return getTaskListFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder> 
+          getTaskListFieldBuilder() {
+        if (taskListBuilder_ == null) {
+          taskListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder>(
+                  taskList_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          taskList_ = null;
+        }
+        return taskListBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.PullSnsTaskListTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<PullSnsTaskListTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<PullSnsTaskListTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public PullSnsTaskListTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new PullSnsTaskListTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<PullSnsTaskListTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<PullSnsTaskListTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.PullSnsTaskListTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SnsTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>int64 Author = 1;</code>
+     * @return The author.
+     */
+    long getAuthor();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+     * @return Whether the snsInfo field is set.
+     */
+    boolean hasSnsInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+     * @return The snsInfo.
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder();
+
+    /**
+     * <pre>
+     * 是否已发表
+     * </pre>
+     *
+     * <code>bool Posted = 3;</code>
+     * @return The posted.
+     */
+    boolean getPosted();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsTaskMessage}
+   */
+  public  static final class SnsTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsTaskMessage)
+      SnsTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsTaskMessage.newBuilder() to construct.
+    private SnsTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              author_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder subBuilder = null;
+              if (snsInfo_ != null) {
+                subBuilder = snsInfo_.toBuilder();
+              }
+              snsInfo_ = input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(snsInfo_);
+                snsInfo_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 24: {
+
+              posted_ = input.readBool();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.class, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder.class);
+    }
+
+    public static final int AUTHOR_FIELD_NUMBER = 1;
+    private long author_;
+    /**
+     * <code>int64 Author = 1;</code>
+     * @return The author.
+     */
+    public long getAuthor() {
+      return author_;
+    }
+
+    public static final int SNSINFO_FIELD_NUMBER = 2;
+    private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage snsInfo_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+     * @return Whether the snsInfo field is set.
+     */
+    public boolean hasSnsInfo() {
+      return snsInfo_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+     * @return The snsInfo.
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo() {
+      return snsInfo_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder() {
+      return getSnsInfo();
+    }
+
+    public static final int POSTED_FIELD_NUMBER = 3;
+    private boolean posted_;
+    /**
+     * <pre>
+     * 是否已发表
+     * </pre>
+     *
+     * <code>bool Posted = 3;</code>
+     * @return The posted.
+     */
+    public boolean getPosted() {
+      return posted_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (author_ != 0L) {
+        output.writeInt64(1, author_);
+      }
+      if (snsInfo_ != null) {
+        output.writeMessage(2, getSnsInfo());
+      }
+      if (posted_ != false) {
+        output.writeBool(3, posted_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (author_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, author_);
+      }
+      if (snsInfo_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getSnsInfo());
+      }
+      if (posted_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(3, posted_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage other = (Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage) obj;
+
+      if (getAuthor()
+          != other.getAuthor()) return false;
+      if (hasSnsInfo() != other.hasSnsInfo()) return false;
+      if (hasSnsInfo()) {
+        if (!getSnsInfo()
+            .equals(other.getSnsInfo())) return false;
+      }
+      if (getPosted()
+          != other.getPosted()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + AUTHOR_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getAuthor());
+      if (hasSnsInfo()) {
+        hash = (37 * hash) + SNSINFO_FIELD_NUMBER;
+        hash = (53 * hash) + getSnsInfo().hashCode();
+      }
+      hash = (37 * hash) + POSTED_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getPosted());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsTaskMessage)
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.class, Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        author_ = 0L;
+
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = null;
+        } else {
+          snsInfo_ = null;
+          snsInfoBuilder_ = null;
+        }
+        posted_ = false;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage build() {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage result = new Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage(this);
+        result.author_ = author_;
+        if (snsInfoBuilder_ == null) {
+          result.snsInfo_ = snsInfo_;
+        } else {
+          result.snsInfo_ = snsInfoBuilder_.build();
+        }
+        result.posted_ = posted_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage.getDefaultInstance()) return this;
+        if (other.getAuthor() != 0L) {
+          setAuthor(other.getAuthor());
+        }
+        if (other.hasSnsInfo()) {
+          mergeSnsInfo(other.getSnsInfo());
+        }
+        if (other.getPosted() != false) {
+          setPosted(other.getPosted());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long author_ ;
+      /**
+       * <code>int64 Author = 1;</code>
+       * @return The author.
+       */
+      public long getAuthor() {
+        return author_;
+      }
+      /**
+       * <code>int64 Author = 1;</code>
+       * @param value The author to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAuthor(long value) {
+        
+        author_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 Author = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAuthor() {
+        
+        author_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage snsInfo_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> snsInfoBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       * @return Whether the snsInfo field is set.
+       */
+      public boolean hasSnsInfo() {
+        return snsInfoBuilder_ != null || snsInfo_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       * @return The snsInfo.
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo() {
+        if (snsInfoBuilder_ == null) {
+          return snsInfo_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+        } else {
+          return snsInfoBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      public Builder setSnsInfo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          snsInfo_ = value;
+          onChanged();
+        } else {
+          snsInfoBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      public Builder setSnsInfo(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder builderForValue) {
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = builderForValue.build();
+          onChanged();
+        } else {
+          snsInfoBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      public Builder mergeSnsInfo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsInfoBuilder_ == null) {
+          if (snsInfo_ != null) {
+            snsInfo_ =
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.newBuilder(snsInfo_).mergeFrom(value).buildPartial();
+          } else {
+            snsInfo_ = value;
+          }
+          onChanged();
+        } else {
+          snsInfoBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      public Builder clearSnsInfo() {
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = null;
+          onChanged();
+        } else {
+          snsInfo_ = null;
+          snsInfoBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder getSnsInfoBuilder() {
+        
+        onChanged();
+        return getSnsInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder() {
+        if (snsInfoBuilder_ != null) {
+          return snsInfoBuilder_.getMessageOrBuilder();
+        } else {
+          return snsInfo_ == null ?
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 2;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+          getSnsInfoFieldBuilder() {
+        if (snsInfoBuilder_ == null) {
+          snsInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder>(
+                  getSnsInfo(),
+                  getParentForChildren(),
+                  isClean());
+          snsInfo_ = null;
+        }
+        return snsInfoBuilder_;
+      }
+
+      private boolean posted_ ;
+      /**
+       * <pre>
+       * 是否已发表
+       * </pre>
+       *
+       * <code>bool Posted = 3;</code>
+       * @return The posted.
+       */
+      public boolean getPosted() {
+        return posted_;
+      }
+      /**
+       * <pre>
+       * 是否已发表
+       * </pre>
+       *
+       * <code>bool Posted = 3;</code>
+       * @param value The posted to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPosted(boolean value) {
+        
+        posted_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否已发表
+       * </pre>
+       *
+       * <code>bool Posted = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPosted() {
+        
+        posted_ = false;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsTaskMessage>() {
+      @java.lang.Override
+      public SnsTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WPullSnsTaskListTaskResultNotice.SnsTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n&WPullSnsTaskListTaskResultNotice.proto" +
+      "\022\020Im.Scrm.Ww.Proto\032$WPullMySnsListTaskRe" +
+      "sultNotice.proto\"\233\001\n&PullSnsTaskListTask" +
+      "ResultNoticeMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Suc" +
+      "cess\030\002 \001(\010\022\016\n\006ErrMsg\030\003 \001(\t\0222\n\010TaskList\030\004" +
+      " \003(\0132 .Im.Scrm.Ww.Proto.SnsTaskMessage\022\016" +
+      "\n\006TaskId\030\006 \001(\003\"c\n\016SnsTaskMessage\022\016\n\006Auth" +
+      "or\030\001 \001(\003\0221\n\007SnsInfo\030\002 \001(\0132 .Im.Scrm.Ww.P" +
+      "roto.SnsInfoMessage\022\016\n\006Posted\030\003 \001(\010b\006pro" +
+      "to3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_PullSnsTaskListTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "TaskList", "TaskId", });
+    internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsTaskMessage_descriptor,
+        new java.lang.String[] { "Author", "SnsInfo", "Posted", });
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1922 - 0
src/main/java/Im/Scrm/Ww/Proto/WQunFaTask.java

@@ -0,0 +1,1922 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WQunFaTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WQunFaTask {
+  private WQunFaTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface TalkMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TalkMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    int getContentTypeValue();
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+     * @return The contentType.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType();
+
+    /**
+     * <pre>
+     * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+     * </pre>
+     *
+     * <code>bytes Content = 2;</code>
+     * @return The content.
+     */
+    com.google.protobuf.ByteString getContent();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TalkMessage}
+   */
+  public  static final class TalkMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TalkMessage)
+      TalkMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TalkMessage.newBuilder() to construct.
+    private TalkMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TalkMessage() {
+      contentType_ = 0;
+      content_ = com.google.protobuf.ByteString.EMPTY;
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TalkMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TalkMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+              int rawValue = input.readEnum();
+
+              contentType_ = rawValue;
+              break;
+            }
+            case 18: {
+
+              content_ = input.readBytes();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_TalkMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_TalkMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.class, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder.class);
+    }
+
+    public static final int CONTENTTYPE_FIELD_NUMBER = 1;
+    private int contentType_;
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    public int getContentTypeValue() {
+      return contentType_;
+    }
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+     * @return The contentType.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 2;
+    private com.google.protobuf.ByteString content_;
+    /**
+     * <pre>
+     * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+     * </pre>
+     *
+     * <code>bytes Content = 2;</code>
+     * @return The content.
+     */
+    public com.google.protobuf.ByteString getContent() {
+      return content_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        output.writeEnum(1, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        output.writeBytes(2, content_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(2, content_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage other = (Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage) obj;
+
+      if (contentType_ != other.contentType_) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + CONTENTTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + contentType_;
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TalkMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TalkMessage)
+        Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_TalkMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_TalkMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.class, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        contentType_ = 0;
+
+        content_ = com.google.protobuf.ByteString.EMPTY;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_TalkMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage build() {
+        Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage result = new Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage(this);
+        result.contentType_ = contentType_;
+        result.content_ = content_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.getDefaultInstance()) return this;
+        if (other.contentType_ != 0) {
+          setContentTypeValue(other.getContentTypeValue());
+        }
+        if (other.getContent() != com.google.protobuf.ByteString.EMPTY) {
+          setContent(other.getContent());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int contentType_ = 0;
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+       * @return The enum numeric value on the wire for contentType.
+       */
+      public int getContentTypeValue() {
+        return contentType_;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+       * @param value The enum numeric value on the wire for contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentTypeValue(int value) {
+        contentType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+       * @return The contentType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+       * @param value The contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentType(Im.Scrm.Ww.Proto.WTransport.EnumContentType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        contentType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContentType() {
+        
+        contentType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY;
+      /**
+       * <pre>
+       * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+       * </pre>
+       *
+       * <code>bytes Content = 2;</code>
+       * @return The content.
+       */
+      public com.google.protobuf.ByteString getContent() {
+        return content_;
+      }
+      /**
+       * <pre>
+       * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+       * </pre>
+       *
+       * <code>bytes Content = 2;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+       * </pre>
+       *
+       * <code>bytes Content = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TalkMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TalkMessage)
+    private static final Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TalkMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TalkMessage>() {
+      @java.lang.Override
+      public TalkMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TalkMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TalkMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TalkMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface QunFaTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.QunFaTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage> 
+        getMsgsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage getMsgs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    int getMsgsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder> 
+        getMsgsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder getMsgsOrBuilder(
+        int index);
+
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 ConvId = 3;</code>
+     * @return A list containing the convId.
+     */
+    java.util.List<java.lang.Long> getConvIdList();
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 ConvId = 3;</code>
+     * @return The count of convId.
+     */
+    int getConvIdCount();
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 ConvId = 3;</code>
+     * @param index The index of the element to return.
+     * @return The convId at the given index.
+     */
+    long getConvId(int index);
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.QunFaTaskMessage}
+   */
+  public  static final class QunFaTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.QunFaTaskMessage)
+      QunFaTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use QunFaTaskMessage.newBuilder() to construct.
+    private QunFaTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private QunFaTaskMessage() {
+      msgs_ = java.util.Collections.emptyList();
+      convId_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new QunFaTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private QunFaTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                msgs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              msgs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.parser(), extensionRegistry));
+              break;
+            }
+            case 24: {
+              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
+                convId_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              convId_.addLong(input.readInt64());
+              break;
+            }
+            case 26: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
+                convId_ = newLongList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                convId_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          msgs_ = java.util.Collections.unmodifiableList(msgs_);
+        }
+        if (((mutable_bitField0_ & 0x00000002) != 0)) {
+          convId_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.class, Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int MSGS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage> msgs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage> getMsgsList() {
+      return msgs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder> 
+        getMsgsOrBuilderList() {
+      return msgs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    public int getMsgsCount() {
+      return msgs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage getMsgs(int index) {
+      return msgs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder getMsgsOrBuilder(
+        int index) {
+      return msgs_.get(index);
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 3;
+    private com.google.protobuf.Internal.LongList convId_;
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 ConvId = 3;</code>
+     * @return A list containing the convId.
+     */
+    public java.util.List<java.lang.Long>
+        getConvIdList() {
+      return convId_;
+    }
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 ConvId = 3;</code>
+     * @return The count of convId.
+     */
+    public int getConvIdCount() {
+      return convId_.size();
+    }
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>repeated int64 ConvId = 3;</code>
+     * @param index The index of the element to return.
+     * @return The convId at the given index.
+     */
+    public long getConvId(int index) {
+      return convId_.getLong(index);
+    }
+    private int convIdMemoizedSerializedSize = -1;
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      for (int i = 0; i < msgs_.size(); i++) {
+        output.writeMessage(2, msgs_.get(i));
+      }
+      if (getConvIdList().size() > 0) {
+        output.writeUInt32NoTag(26);
+        output.writeUInt32NoTag(convIdMemoizedSerializedSize);
+      }
+      for (int i = 0; i < convId_.size(); i++) {
+        output.writeInt64NoTag(convId_.getLong(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      for (int i = 0; i < msgs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, msgs_.get(i));
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < convId_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(convId_.getLong(i));
+        }
+        size += dataSize;
+        if (!getConvIdList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        convIdMemoizedSerializedSize = dataSize;
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage other = (Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getMsgsList()
+          .equals(other.getMsgsList())) return false;
+      if (!getConvIdList()
+          .equals(other.getConvIdList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      if (getMsgsCount() > 0) {
+        hash = (37 * hash) + MSGS_FIELD_NUMBER;
+        hash = (53 * hash) + getMsgsList().hashCode();
+      }
+      if (getConvIdCount() > 0) {
+        hash = (37 * hash) + CONVID_FIELD_NUMBER;
+        hash = (53 * hash) + getConvIdList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.QunFaTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.QunFaTaskMessage)
+        Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.class, Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMsgsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        if (msgsBuilder_ == null) {
+          msgs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          msgsBuilder_.clear();
+        }
+        convId_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage build() {
+        Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage result = new Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        if (msgsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            msgs_ = java.util.Collections.unmodifiableList(msgs_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.msgs_ = msgs_;
+        } else {
+          result.msgs_ = msgsBuilder_.build();
+        }
+        if (((bitField0_ & 0x00000002) != 0)) {
+          convId_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.convId_ = convId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (msgsBuilder_ == null) {
+          if (!other.msgs_.isEmpty()) {
+            if (msgs_.isEmpty()) {
+              msgs_ = other.msgs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMsgsIsMutable();
+              msgs_.addAll(other.msgs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.msgs_.isEmpty()) {
+            if (msgsBuilder_.isEmpty()) {
+              msgsBuilder_.dispose();
+              msgsBuilder_ = null;
+              msgs_ = other.msgs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              msgsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMsgsFieldBuilder() : null;
+            } else {
+              msgsBuilder_.addAllMessages(other.msgs_);
+            }
+          }
+        }
+        if (!other.convId_.isEmpty()) {
+          if (convId_.isEmpty()) {
+            convId_ = other.convId_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureConvIdIsMutable();
+            convId_.addAll(other.convId_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage> msgs_ =
+        java.util.Collections.emptyList();
+      private void ensureMsgsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          msgs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage>(msgs_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder> msgsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage> getMsgsList() {
+        if (msgsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(msgs_);
+        } else {
+          return msgsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public int getMsgsCount() {
+        if (msgsBuilder_ == null) {
+          return msgs_.size();
+        } else {
+          return msgsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage getMsgs(int index) {
+        if (msgsBuilder_ == null) {
+          return msgs_.get(index);
+        } else {
+          return msgsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder setMsgs(
+          int index, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage value) {
+        if (msgsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMsgsIsMutable();
+          msgs_.set(index, value);
+          onChanged();
+        } else {
+          msgsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder setMsgs(
+          int index, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder builderForValue) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          msgsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage value) {
+        if (msgsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMsgsIsMutable();
+          msgs_.add(value);
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(
+          int index, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage value) {
+        if (msgsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMsgsIsMutable();
+          msgs_.add(index, value);
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(
+          Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder builderForValue) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(
+          int index, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder builderForValue) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder addAllMsgs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage> values) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, msgs_);
+          onChanged();
+        } else {
+          msgsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder clearMsgs() {
+        if (msgsBuilder_ == null) {
+          msgs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          msgsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Builder removeMsgs(int index) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.remove(index);
+          onChanged();
+        } else {
+          msgsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder getMsgsBuilder(
+          int index) {
+        return getMsgsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder getMsgsOrBuilder(
+          int index) {
+        if (msgsBuilder_ == null) {
+          return msgs_.get(index);  } else {
+          return msgsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder> 
+           getMsgsOrBuilderList() {
+        if (msgsBuilder_ != null) {
+          return msgsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(msgs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder addMsgsBuilder() {
+        return getMsgsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder addMsgsBuilder(
+          int index) {
+        return getMsgsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.TalkMessage Msgs = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder> 
+           getMsgsBuilderList() {
+        return getMsgsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder> 
+          getMsgsFieldBuilder() {
+        if (msgsBuilder_ == null) {
+          msgsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessage.Builder, Im.Scrm.Ww.Proto.WQunFaTask.TalkMessageOrBuilder>(
+                  msgs_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          msgs_ = null;
+        }
+        return msgsBuilder_;
+      }
+
+      private com.google.protobuf.Internal.LongList convId_ = emptyLongList();
+      private void ensureConvIdIsMutable() {
+        if (!((bitField0_ & 0x00000002) != 0)) {
+          convId_ = mutableCopy(convId_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @return A list containing the convId.
+       */
+      public java.util.List<java.lang.Long>
+          getConvIdList() {
+        return ((bitField0_ & 0x00000002) != 0) ?
+                 java.util.Collections.unmodifiableList(convId_) : convId_;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @return The count of convId.
+       */
+      public int getConvIdCount() {
+        return convId_.size();
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @param index The index of the element to return.
+       * @return The convId at the given index.
+       */
+      public long getConvId(int index) {
+        return convId_.getLong(index);
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @param index The index to set the value at.
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(
+          int index, long value) {
+        ensureConvIdIsMutable();
+        convId_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @param value The convId to add.
+       * @return This builder for chaining.
+       */
+      public Builder addConvId(long value) {
+        ensureConvIdIsMutable();
+        convId_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @param values The convId to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllConvId(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureConvIdIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, convId_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>repeated int64 ConvId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        convId_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.QunFaTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.QunFaTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<QunFaTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<QunFaTaskMessage>() {
+      @java.lang.Override
+      public QunFaTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new QunFaTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<QunFaTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<QunFaTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WQunFaTask.QunFaTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TalkMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TalkMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\020WQunFaTask.proto\022\020Im.Scrm.Ww.Proto\032\020WT" +
+      "ransport.proto\"V\n\013TalkMessage\0226\n\013Content" +
+      "Type\030\001 \001(\0162!.Im.Scrm.Ww.Proto.EnumConten" +
+      "tType\022\017\n\007Content\030\002 \001(\014\"m\n\020QunFaTaskMessa" +
+      "ge\022\014\n\004WxId\030\001 \001(\003\022+\n\004Msgs\030\002 \003(\0132\035.Im.Scrm" +
+      ".Ww.Proto.TalkMessage\022\016\n\006ConvId\030\003 \003(\003\022\016\n" +
+      "\006TaskId\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_TalkMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TalkMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TalkMessage_descriptor,
+        new java.lang.String[] { "ContentType", "Content", });
+    internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_QunFaTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "Msgs", "ConvId", "TaskId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 827 - 0
src/main/java/Im/Scrm/Ww/Proto/WRedirectNotice.java

@@ -0,0 +1,827 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WRedirectNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WRedirectNotice {
+  private WRedirectNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface RedirectNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.RedirectNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 类型,0:临时变更,1:永久变更
+     * </pre>
+     *
+     * <code>int32 Type = 1;</code>
+     * @return The type.
+     */
+    int getType();
+
+    /**
+     * <pre>
+     * 业务服务器地址
+     * </pre>
+     *
+     * <code>string ServerUrl = 2;</code>
+     * @return The serverUrl.
+     */
+    java.lang.String getServerUrl();
+    /**
+     * <pre>
+     * 业务服务器地址
+     * </pre>
+     *
+     * <code>string ServerUrl = 2;</code>
+     * @return The bytes for serverUrl.
+     */
+    com.google.protobuf.ByteString
+        getServerUrlBytes();
+
+    /**
+     * <pre>
+     * 业务服务器端口
+     * </pre>
+     *
+     * <code>int32 ServerPort = 3;</code>
+     * @return The serverPort.
+     */
+    int getServerPort();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.RedirectNoticeMessage}
+   */
+  public  static final class RedirectNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.RedirectNoticeMessage)
+      RedirectNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use RedirectNoticeMessage.newBuilder() to construct.
+    private RedirectNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private RedirectNoticeMessage() {
+      serverUrl_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new RedirectNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private RedirectNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              serverUrl_ = s;
+              break;
+            }
+            case 24: {
+
+              serverPort_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WRedirectNotice.internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WRedirectNotice.internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.class, Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.Builder.class);
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 1;
+    private int type_;
+    /**
+     * <pre>
+     * 类型,0:临时变更,1:永久变更
+     * </pre>
+     *
+     * <code>int32 Type = 1;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    public static final int SERVERURL_FIELD_NUMBER = 2;
+    private volatile java.lang.Object serverUrl_;
+    /**
+     * <pre>
+     * 业务服务器地址
+     * </pre>
+     *
+     * <code>string ServerUrl = 2;</code>
+     * @return The serverUrl.
+     */
+    public java.lang.String getServerUrl() {
+      java.lang.Object ref = serverUrl_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        serverUrl_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 业务服务器地址
+     * </pre>
+     *
+     * <code>string ServerUrl = 2;</code>
+     * @return The bytes for serverUrl.
+     */
+    public com.google.protobuf.ByteString
+        getServerUrlBytes() {
+      java.lang.Object ref = serverUrl_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        serverUrl_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SERVERPORT_FIELD_NUMBER = 3;
+    private int serverPort_;
+    /**
+     * <pre>
+     * 业务服务器端口
+     * </pre>
+     *
+     * <code>int32 ServerPort = 3;</code>
+     * @return The serverPort.
+     */
+    public int getServerPort() {
+      return serverPort_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (type_ != 0) {
+        output.writeInt32(1, type_);
+      }
+      if (!getServerUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serverUrl_);
+      }
+      if (serverPort_ != 0) {
+        output.writeInt32(3, serverPort_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(1, type_);
+      }
+      if (!getServerUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serverUrl_);
+      }
+      if (serverPort_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(3, serverPort_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage other = (Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage) obj;
+
+      if (getType()
+          != other.getType()) return false;
+      if (!getServerUrl()
+          .equals(other.getServerUrl())) return false;
+      if (getServerPort()
+          != other.getServerPort()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (37 * hash) + SERVERURL_FIELD_NUMBER;
+      hash = (53 * hash) + getServerUrl().hashCode();
+      hash = (37 * hash) + SERVERPORT_FIELD_NUMBER;
+      hash = (53 * hash) + getServerPort();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.RedirectNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.RedirectNoticeMessage)
+        Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WRedirectNotice.internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WRedirectNotice.internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.class, Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        type_ = 0;
+
+        serverUrl_ = "";
+
+        serverPort_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WRedirectNotice.internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage result = new Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage(this);
+        result.type_ = type_;
+        result.serverUrl_ = serverUrl_;
+        result.serverPort_ = serverPort_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage.getDefaultInstance()) return this;
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        if (!other.getServerUrl().isEmpty()) {
+          serverUrl_ = other.serverUrl_;
+          onChanged();
+        }
+        if (other.getServerPort() != 0) {
+          setServerPort(other.getServerPort());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int type_ ;
+      /**
+       * <pre>
+       * 类型,0:临时变更,1:永久变更
+       * </pre>
+       *
+       * <code>int32 Type = 1;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <pre>
+       * 类型,0:临时变更,1:永久变更
+       * </pre>
+       *
+       * <code>int32 Type = 1;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 类型,0:临时变更,1:永久变更
+       * </pre>
+       *
+       * <code>int32 Type = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object serverUrl_ = "";
+      /**
+       * <pre>
+       * 业务服务器地址
+       * </pre>
+       *
+       * <code>string ServerUrl = 2;</code>
+       * @return The serverUrl.
+       */
+      public java.lang.String getServerUrl() {
+        java.lang.Object ref = serverUrl_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          serverUrl_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 业务服务器地址
+       * </pre>
+       *
+       * <code>string ServerUrl = 2;</code>
+       * @return The bytes for serverUrl.
+       */
+      public com.google.protobuf.ByteString
+          getServerUrlBytes() {
+        java.lang.Object ref = serverUrl_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          serverUrl_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 业务服务器地址
+       * </pre>
+       *
+       * <code>string ServerUrl = 2;</code>
+       * @param value The serverUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setServerUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        serverUrl_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 业务服务器地址
+       * </pre>
+       *
+       * <code>string ServerUrl = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearServerUrl() {
+        
+        serverUrl_ = getDefaultInstance().getServerUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 业务服务器地址
+       * </pre>
+       *
+       * <code>string ServerUrl = 2;</code>
+       * @param value The bytes for serverUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setServerUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        serverUrl_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int serverPort_ ;
+      /**
+       * <pre>
+       * 业务服务器端口
+       * </pre>
+       *
+       * <code>int32 ServerPort = 3;</code>
+       * @return The serverPort.
+       */
+      public int getServerPort() {
+        return serverPort_;
+      }
+      /**
+       * <pre>
+       * 业务服务器端口
+       * </pre>
+       *
+       * <code>int32 ServerPort = 3;</code>
+       * @param value The serverPort to set.
+       * @return This builder for chaining.
+       */
+      public Builder setServerPort(int value) {
+        
+        serverPort_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 业务服务器端口
+       * </pre>
+       *
+       * <code>int32 ServerPort = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearServerPort() {
+        
+        serverPort_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.RedirectNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.RedirectNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<RedirectNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<RedirectNoticeMessage>() {
+      @java.lang.Override
+      public RedirectNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new RedirectNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<RedirectNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<RedirectNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WRedirectNotice.RedirectNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\025WRedirectNotice.proto\022\020Im.Scrm.Ww.Prot" +
+      "o\"L\n\025RedirectNoticeMessage\022\014\n\004Type\030\001 \001(\005" +
+      "\022\021\n\tServerUrl\030\002 \001(\t\022\022\n\nServerPort\030\003 \001(\005b" +
+      "\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_RedirectNoticeMessage_descriptor,
+        new java.lang.String[] { "Type", "ServerUrl", "ServerPort", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 733 - 0
src/main/java/Im/Scrm/Ww/Proto/WRunFunCardTask.java

@@ -0,0 +1,733 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WRunFunCardTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WRunFunCardTask {
+  private WRunFunCardTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface RunFunCardTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.RunFunCardTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>int64 MsgId = 2;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.RunFunCardTaskMessage}
+   */
+  public  static final class RunFunCardTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.RunFunCardTaskMessage)
+      RunFunCardTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use RunFunCardTaskMessage.newBuilder() to construct.
+    private RunFunCardTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private RunFunCardTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new RunFunCardTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private RunFunCardTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WRunFunCardTask.internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WRunFunCardTask.internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.class, Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 2;
+    private long msgId_;
+    /**
+     * <pre>
+     * 消息remoteid
+     * </pre>
+     *
+     * <code>int64 MsgId = 2;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(2, msgId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, msgId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage other = (Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.RunFunCardTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.RunFunCardTaskMessage)
+        Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WRunFunCardTask.internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WRunFunCardTask.internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.class, Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        msgId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WRunFunCardTask.internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage build() {
+        Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage result = new Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.msgId_ = msgId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>int64 MsgId = 2;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>int64 MsgId = 2;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息remoteid
+       * </pre>
+       *
+       * <code>int64 MsgId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.RunFunCardTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.RunFunCardTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<RunFunCardTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<RunFunCardTaskMessage>() {
+      @java.lang.Override
+      public RunFunCardTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new RunFunCardTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<RunFunCardTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<RunFunCardTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WRunFunCardTask.RunFunCardTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\025WRunFunCardTask.proto\022\020Im.Scrm.Ww.Prot" +
+      "o\"D\n\025RunFunCardTaskMessage\022\014\n\004WxId\030\001 \001(\003" +
+      "\022\r\n\005MsgId\030\002 \001(\003\022\016\n\006TaskId\030\003 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_RunFunCardTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "MsgId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 906 - 0
src/main/java/Im/Scrm/Ww/Proto/WSearchMsgTask.java

@@ -0,0 +1,906 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSearchMsgTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSearchMsgTask {
+  private WSearchMsgTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SearchMsgTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SearchMsgTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *会话Id
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 3;</code>
+     * @return The keyword.
+     */
+    java.lang.String getKeyword();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 3;</code>
+     * @return The bytes for keyword.
+     */
+    com.google.protobuf.ByteString
+        getKeywordBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SearchMsgTaskMessage}
+   */
+  public  static final class SearchMsgTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SearchMsgTaskMessage)
+      SearchMsgTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SearchMsgTaskMessage.newBuilder() to construct.
+    private SearchMsgTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SearchMsgTaskMessage() {
+      keyword_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SearchMsgTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SearchMsgTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              keyword_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTask.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTask.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.class, Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     *会话Id
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int KEYWORD_FIELD_NUMBER = 3;
+    private volatile java.lang.Object keyword_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 3;</code>
+     * @return The keyword.
+     */
+    public java.lang.String getKeyword() {
+      java.lang.Object ref = keyword_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        keyword_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 3;</code>
+     * @return The bytes for keyword.
+     */
+    public com.google.protobuf.ByteString
+        getKeywordBytes() {
+      java.lang.Object ref = keyword_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        keyword_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (!getKeywordBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, keyword_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (!getKeywordBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, keyword_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage other = (Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (!getKeyword()
+          .equals(other.getKeyword())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + KEYWORD_FIELD_NUMBER;
+      hash = (53 * hash) + getKeyword().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SearchMsgTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SearchMsgTaskMessage)
+        Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTask.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTask.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.class, Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        keyword_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTask.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage build() {
+        Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage result = new Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.keyword_ = keyword_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (!other.getKeyword().isEmpty()) {
+          keyword_ = other.keyword_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       *会话Id
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       *会话Id
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话Id
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object keyword_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 3;</code>
+       * @return The keyword.
+       */
+      public java.lang.String getKeyword() {
+        java.lang.Object ref = keyword_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          keyword_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 3;</code>
+       * @return The bytes for keyword.
+       */
+      public com.google.protobuf.ByteString
+          getKeywordBytes() {
+        java.lang.Object ref = keyword_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          keyword_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 3;</code>
+       * @param value The keyword to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeyword(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        keyword_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearKeyword() {
+        
+        keyword_ = getDefaultInstance().getKeyword();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 3;</code>
+       * @param value The bytes for keyword to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeywordBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        keyword_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SearchMsgTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SearchMsgTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SearchMsgTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SearchMsgTaskMessage>() {
+      @java.lang.Override
+      public SearchMsgTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SearchMsgTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SearchMsgTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SearchMsgTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSearchMsgTask.SearchMsgTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\024WSearchMsgTask.proto\022\020Im.Scrm.Ww.Proto" +
+      "\032\020WTransport.proto\"U\n\024SearchMsgTaskMessa" +
+      "ge\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022\017\n\007Keyw" +
+      "ord\030\003 \001(\t\022\016\n\006TaskId\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "Keyword", "TaskId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 3397 - 0
src/main/java/Im/Scrm/Ww/Proto/WSearchMsgTaskResultNotice.java

@@ -0,0 +1,3397 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSearchMsgTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSearchMsgTaskResultNotice {
+  private WSearchMsgTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface ConvMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.ConvMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    long getId();
+
+    /**
+     * <pre>
+     * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    java.lang.String getName();
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    com.google.protobuf.ByteString
+        getNameBytes();
+
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    java.lang.String getAvatar();
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    com.google.protobuf.ByteString
+        getAvatarBytes();
+
+    /**
+     * <pre>
+     * 0 单聊 1 群聊
+     * </pre>
+     *
+     * <code>int32 Type = 5;</code>
+     * @return The type.
+     */
+    int getType();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.ConvMessage}
+   */
+  public  static final class ConvMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.ConvMessage)
+      ConvMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use ConvMessage.newBuilder() to construct.
+    private ConvMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private ConvMessage() {
+      name_ = "";
+      avatar_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new ConvMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private ConvMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              id_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              name_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              avatar_ = s;
+              break;
+            }
+            case 40: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_ConvMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_ConvMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.class, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder.class);
+    }
+
+    public static final int ID_FIELD_NUMBER = 1;
+    private long id_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    public long getId() {
+      return id_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int NAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object name_;
+    /**
+     * <code>string Name = 3;</code>
+     * @return The name.
+     */
+    public java.lang.String getName() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        name_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Name = 3;</code>
+     * @return The bytes for name.
+     */
+    public com.google.protobuf.ByteString
+        getNameBytes() {
+      java.lang.Object ref = name_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        name_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int AVATAR_FIELD_NUMBER = 4;
+    private volatile java.lang.Object avatar_;
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The avatar.
+     */
+    public java.lang.String getAvatar() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        avatar_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string Avatar = 4;</code>
+     * @return The bytes for avatar.
+     */
+    public com.google.protobuf.ByteString
+        getAvatarBytes() {
+      java.lang.Object ref = avatar_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        avatar_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 5;
+    private int type_;
+    /**
+     * <pre>
+     * 0 单聊 1 群聊
+     * </pre>
+     *
+     * <code>int32 Type = 5;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (id_ != 0L) {
+        output.writeInt64(1, id_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, avatar_);
+      }
+      if (type_ != 0) {
+        output.writeInt32(5, type_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (id_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, id_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (!getNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
+      }
+      if (!getAvatarBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, avatar_);
+      }
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(5, type_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage other = (Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage) obj;
+
+      if (getId()
+          != other.getId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getName()
+          .equals(other.getName())) return false;
+      if (!getAvatar()
+          .equals(other.getAvatar())) return false;
+      if (getType()
+          != other.getType()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + NAME_FIELD_NUMBER;
+      hash = (53 * hash) + getName().hashCode();
+      hash = (37 * hash) + AVATAR_FIELD_NUMBER;
+      hash = (53 * hash) + getAvatar().hashCode();
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.ConvMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.ConvMessage)
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_ConvMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_ConvMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.class, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        id_ = 0L;
+
+        remoteId_ = 0L;
+
+        name_ = "";
+
+        avatar_ = "";
+
+        type_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_ConvMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage build() {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage result = new Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage(this);
+        result.id_ = id_;
+        result.remoteId_ = remoteId_;
+        result.name_ = name_;
+        result.avatar_ = avatar_;
+        result.type_ = type_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.getDefaultInstance()) return this;
+        if (other.getId() != 0L) {
+          setId(other.getId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getName().isEmpty()) {
+          name_ = other.name_;
+          onChanged();
+        }
+        if (!other.getAvatar().isEmpty()) {
+          avatar_ = other.avatar_;
+          onChanged();
+        }
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long id_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return The id.
+       */
+      public long getId() {
+        return id_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @param value The id to set.
+       * @return This builder for chaining.
+       */
+      public Builder setId(long value) {
+        
+        id_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearId() {
+        
+        id_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 单聊=联系人RemoteId, 群聊=公司id,部门id或其他
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object name_ = "";
+      /**
+       * <code>string Name = 3;</code>
+       * @return The name.
+       */
+      public java.lang.String getName() {
+        java.lang.Object ref = name_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          name_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return The bytes for name.
+       */
+      public com.google.protobuf.ByteString
+          getNameBytes() {
+        java.lang.Object ref = name_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          name_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        name_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearName() {
+        
+        name_ = getDefaultInstance().getName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Name = 3;</code>
+       * @param value The bytes for name to set.
+       * @return This builder for chaining.
+       */
+      public Builder setNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        name_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object avatar_ = "";
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The avatar.
+       */
+      public java.lang.String getAvatar() {
+        java.lang.Object ref = avatar_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          avatar_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return The bytes for avatar.
+       */
+      public com.google.protobuf.ByteString
+          getAvatarBytes() {
+        java.lang.Object ref = avatar_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          avatar_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatar(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAvatar() {
+        
+        avatar_ = getDefaultInstance().getAvatar();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string Avatar = 4;</code>
+       * @param value The bytes for avatar to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAvatarBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        avatar_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int type_ ;
+      /**
+       * <pre>
+       * 0 单聊 1 群聊
+       * </pre>
+       *
+       * <code>int32 Type = 5;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <pre>
+       * 0 单聊 1 群聊
+       * </pre>
+       *
+       * <code>int32 Type = 5;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 0 单聊 1 群聊
+       * </pre>
+       *
+       * <code>int32 Type = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.ConvMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.ConvMessage)
+    private static final Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<ConvMessage>
+        PARSER = new com.google.protobuf.AbstractParser<ConvMessage>() {
+      @java.lang.Override
+      public ConvMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new ConvMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<ConvMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<ConvMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SearchResultOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SearchResult)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+     * @return Whether the conv field is set.
+     */
+    boolean hasConv();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+     * @return The conv.
+     */
+    Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage getConv();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+     */
+    Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder getConvOrBuilder();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> 
+        getMsgsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getMsgs(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    int getMsgsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+        getMsgsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder getMsgsOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SearchResult}
+   */
+  public  static final class SearchResult extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SearchResult)
+      SearchResultOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SearchResult.newBuilder() to construct.
+    private SearchResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SearchResult() {
+      msgs_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SearchResult();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SearchResult(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder subBuilder = null;
+              if (conv_ != null) {
+                subBuilder = conv_.toBuilder();
+              }
+              conv_ = input.readMessage(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(conv_);
+                conv_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                msgs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              msgs_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          msgs_ = java.util.Collections.unmodifiableList(msgs_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchResult_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchResult_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.class, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder.class);
+    }
+
+    public static final int CONV_FIELD_NUMBER = 1;
+    private Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage conv_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+     * @return Whether the conv field is set.
+     */
+    public boolean hasConv() {
+      return conv_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+     * @return The conv.
+     */
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage getConv() {
+      return conv_ == null ? Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.getDefaultInstance() : conv_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+     */
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder getConvOrBuilder() {
+      return getConv();
+    }
+
+    public static final int MSGS_FIELD_NUMBER = 2;
+    private java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> msgs_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> getMsgsList() {
+      return msgs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+        getMsgsOrBuilderList() {
+      return msgs_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    public int getMsgsCount() {
+      return msgs_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getMsgs(int index) {
+      return msgs_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+     */
+    public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder getMsgsOrBuilder(
+        int index) {
+      return msgs_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (conv_ != null) {
+        output.writeMessage(1, getConv());
+      }
+      for (int i = 0; i < msgs_.size(); i++) {
+        output.writeMessage(2, msgs_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (conv_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(1, getConv());
+      }
+      for (int i = 0; i < msgs_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, msgs_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult other = (Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult) obj;
+
+      if (hasConv() != other.hasConv()) return false;
+      if (hasConv()) {
+        if (!getConv()
+            .equals(other.getConv())) return false;
+      }
+      if (!getMsgsList()
+          .equals(other.getMsgsList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasConv()) {
+        hash = (37 * hash) + CONV_FIELD_NUMBER;
+        hash = (53 * hash) + getConv().hashCode();
+      }
+      if (getMsgsCount() > 0) {
+        hash = (37 * hash) + MSGS_FIELD_NUMBER;
+        hash = (53 * hash) + getMsgsList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SearchResult}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SearchResult)
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchResult_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchResult_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.class, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getMsgsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        if (convBuilder_ == null) {
+          conv_ = null;
+        } else {
+          conv_ = null;
+          convBuilder_ = null;
+        }
+        if (msgsBuilder_ == null) {
+          msgs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          msgsBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchResult_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult build() {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult buildPartial() {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult result = new Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult(this);
+        int from_bitField0_ = bitField0_;
+        if (convBuilder_ == null) {
+          result.conv_ = conv_;
+        } else {
+          result.conv_ = convBuilder_.build();
+        }
+        if (msgsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            msgs_ = java.util.Collections.unmodifiableList(msgs_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.msgs_ = msgs_;
+        } else {
+          result.msgs_ = msgsBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult other) {
+        if (other == Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.getDefaultInstance()) return this;
+        if (other.hasConv()) {
+          mergeConv(other.getConv());
+        }
+        if (msgsBuilder_ == null) {
+          if (!other.msgs_.isEmpty()) {
+            if (msgs_.isEmpty()) {
+              msgs_ = other.msgs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureMsgsIsMutable();
+              msgs_.addAll(other.msgs_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.msgs_.isEmpty()) {
+            if (msgsBuilder_.isEmpty()) {
+              msgsBuilder_.dispose();
+              msgsBuilder_ = null;
+              msgs_ = other.msgs_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              msgsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getMsgsFieldBuilder() : null;
+            } else {
+              msgsBuilder_.addAllMessages(other.msgs_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage conv_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder> convBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       * @return Whether the conv field is set.
+       */
+      public boolean hasConv() {
+        return convBuilder_ != null || conv_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       * @return The conv.
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage getConv() {
+        if (convBuilder_ == null) {
+          return conv_ == null ? Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.getDefaultInstance() : conv_;
+        } else {
+          return convBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      public Builder setConv(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage value) {
+        if (convBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          conv_ = value;
+          onChanged();
+        } else {
+          convBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      public Builder setConv(
+          Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder builderForValue) {
+        if (convBuilder_ == null) {
+          conv_ = builderForValue.build();
+          onChanged();
+        } else {
+          convBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      public Builder mergeConv(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage value) {
+        if (convBuilder_ == null) {
+          if (conv_ != null) {
+            conv_ =
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.newBuilder(conv_).mergeFrom(value).buildPartial();
+          } else {
+            conv_ = value;
+          }
+          onChanged();
+        } else {
+          convBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      public Builder clearConv() {
+        if (convBuilder_ == null) {
+          conv_ = null;
+          onChanged();
+        } else {
+          conv_ = null;
+          convBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder getConvBuilder() {
+        
+        onChanged();
+        return getConvFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder getConvOrBuilder() {
+        if (convBuilder_ != null) {
+          return convBuilder_.getMessageOrBuilder();
+        } else {
+          return conv_ == null ?
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.getDefaultInstance() : conv_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.ConvMessage conv = 1;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder> 
+          getConvFieldBuilder() {
+        if (convBuilder_ == null) {
+          convBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessage.Builder, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.ConvMessageOrBuilder>(
+                  getConv(),
+                  getParentForChildren(),
+                  isClean());
+          conv_ = null;
+        }
+        return convBuilder_;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> msgs_ =
+        java.util.Collections.emptyList();
+      private void ensureMsgsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          msgs_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage>(msgs_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> msgsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> getMsgsList() {
+        if (msgsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(msgs_);
+        } else {
+          return msgsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public int getMsgsCount() {
+        if (msgsBuilder_ == null) {
+          return msgs_.size();
+        } else {
+          return msgsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage getMsgs(int index) {
+        if (msgsBuilder_ == null) {
+          return msgs_.get(index);
+        } else {
+          return msgsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder setMsgs(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage value) {
+        if (msgsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMsgsIsMutable();
+          msgs_.set(index, value);
+          onChanged();
+        } else {
+          msgsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder setMsgs(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder builderForValue) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          msgsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage value) {
+        if (msgsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMsgsIsMutable();
+          msgs_.add(value);
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage value) {
+        if (msgsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureMsgsIsMutable();
+          msgs_.add(index, value);
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder builderForValue) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.add(builderForValue.build());
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder addMsgs(
+          int index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder builderForValue) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          msgsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder addAllMsgs(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage> values) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, msgs_);
+          onChanged();
+        } else {
+          msgsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder clearMsgs() {
+        if (msgsBuilder_ == null) {
+          msgs_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          msgsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Builder removeMsgs(int index) {
+        if (msgsBuilder_ == null) {
+          ensureMsgsIsMutable();
+          msgs_.remove(index);
+          onChanged();
+        } else {
+          msgsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder getMsgsBuilder(
+          int index) {
+        return getMsgsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder getMsgsOrBuilder(
+          int index) {
+        if (msgsBuilder_ == null) {
+          return msgs_.get(index);  } else {
+          return msgsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+           getMsgsOrBuilderList() {
+        if (msgsBuilder_ != null) {
+          return msgsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(msgs_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder addMsgsBuilder() {
+        return getMsgsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder addMsgsBuilder(
+          int index) {
+        return getMsgsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.ChatMessage Msgs = 2;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder> 
+           getMsgsBuilderList() {
+        return getMsgsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder> 
+          getMsgsFieldBuilder() {
+        if (msgsBuilder_ == null) {
+          msgsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessage.Builder, Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.ChatMessageOrBuilder>(
+                  msgs_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          msgs_ = null;
+        }
+        return msgsBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SearchResult)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SearchResult)
+    private static final Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SearchResult>
+        PARSER = new com.google.protobuf.AbstractParser<SearchResult>() {
+      @java.lang.Override
+      public SearchResult parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SearchResult(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SearchResult> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SearchResult> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface SearchMsgTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 2;</code>
+     * @return The keyword.
+     */
+    java.lang.String getKeyword();
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 2;</code>
+     * @return The bytes for keyword.
+     */
+    com.google.protobuf.ByteString
+        getKeywordBytes();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>bool Success = 3;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult> 
+        getResultsList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult getResults(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    int getResultsCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder> 
+        getResultsOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder getResultsOrBuilder(
+        int index);
+
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage}
+   */
+  public  static final class SearchMsgTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage)
+      SearchMsgTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SearchMsgTaskResultNoticeMessage.newBuilder() to construct.
+    private SearchMsgTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SearchMsgTaskResultNoticeMessage() {
+      keyword_ = "";
+      errMsg_ = "";
+      results_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SearchMsgTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SearchMsgTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              keyword_ = s;
+              break;
+            }
+            case 24: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 42: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                results_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              results_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.parser(), extensionRegistry));
+              break;
+            }
+            case 48: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          results_ = java.util.Collections.unmodifiableList(results_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int KEYWORD_FIELD_NUMBER = 2;
+    private volatile java.lang.Object keyword_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 2;</code>
+     * @return The keyword.
+     */
+    public java.lang.String getKeyword() {
+      java.lang.Object ref = keyword_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        keyword_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>string Keyword = 2;</code>
+     * @return The bytes for keyword.
+     */
+    public com.google.protobuf.ByteString
+        getKeywordBytes() {
+      java.lang.Object ref = keyword_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        keyword_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 3;
+    private boolean success_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>bool Success = 3;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int RESULTS_FIELD_NUMBER = 5;
+    private java.util.List<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult> results_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult> getResultsList() {
+      return results_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder> 
+        getResultsOrBuilderList() {
+      return results_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    public int getResultsCount() {
+      return results_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult getResults(int index) {
+      return results_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+     */
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder getResultsOrBuilder(
+        int index) {
+      return results_.get(index);
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 6;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 6;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getKeywordBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, keyword_);
+      }
+      if (success_ != false) {
+        output.writeBool(3, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, errMsg_);
+      }
+      for (int i = 0; i < results_.size(); i++) {
+        output.writeMessage(5, results_.get(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(6, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getKeywordBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, keyword_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(3, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, errMsg_);
+      }
+      for (int i = 0; i < results_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, results_.get(i));
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getKeyword()
+          .equals(other.getKeyword())) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getResultsList()
+          .equals(other.getResultsList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + KEYWORD_FIELD_NUMBER;
+      hash = (53 * hash) + getKeyword().hashCode();
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      if (getResultsCount() > 0) {
+        hash = (37 * hash) + RESULTS_FIELD_NUMBER;
+        hash = (53 * hash) + getResultsList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getResultsFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        keyword_ = "";
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        if (resultsBuilder_ == null) {
+          results_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          resultsBuilder_.clear();
+        }
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.keyword_ = keyword_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        if (resultsBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            results_ = java.util.Collections.unmodifiableList(results_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.results_ = results_;
+        } else {
+          result.results_ = resultsBuilder_.build();
+        }
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getKeyword().isEmpty()) {
+          keyword_ = other.keyword_;
+          onChanged();
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (resultsBuilder_ == null) {
+          if (!other.results_.isEmpty()) {
+            if (results_.isEmpty()) {
+              results_ = other.results_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureResultsIsMutable();
+              results_.addAll(other.results_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.results_.isEmpty()) {
+            if (resultsBuilder_.isEmpty()) {
+              resultsBuilder_.dispose();
+              resultsBuilder_ = null;
+              results_ = other.results_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              resultsBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getResultsFieldBuilder() : null;
+            } else {
+              resultsBuilder_.addAllMessages(other.results_);
+            }
+          }
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object keyword_ = "";
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 2;</code>
+       * @return The keyword.
+       */
+      public java.lang.String getKeyword() {
+        java.lang.Object ref = keyword_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          keyword_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 2;</code>
+       * @return The bytes for keyword.
+       */
+      public com.google.protobuf.ByteString
+          getKeywordBytes() {
+        java.lang.Object ref = keyword_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          keyword_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 2;</code>
+       * @param value The keyword to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeyword(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        keyword_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearKeyword() {
+        
+        keyword_ = getDefaultInstance().getKeyword();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>string Keyword = 2;</code>
+       * @param value The bytes for keyword to set.
+       * @return This builder for chaining.
+       */
+      public Builder setKeywordBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        keyword_ = value;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>bool Success = 3;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>bool Success = 3;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>bool Success = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <code>string ErrMsg = 4;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string ErrMsg = 4;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string ErrMsg = 4;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ErrMsg = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string ErrMsg = 4;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult> results_ =
+        java.util.Collections.emptyList();
+      private void ensureResultsIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          results_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult>(results_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder> resultsBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult> getResultsList() {
+        if (resultsBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(results_);
+        } else {
+          return resultsBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public int getResultsCount() {
+        if (resultsBuilder_ == null) {
+          return results_.size();
+        } else {
+          return resultsBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult getResults(int index) {
+        if (resultsBuilder_ == null) {
+          return results_.get(index);
+        } else {
+          return resultsBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder setResults(
+          int index, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult value) {
+        if (resultsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureResultsIsMutable();
+          results_.set(index, value);
+          onChanged();
+        } else {
+          resultsBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder setResults(
+          int index, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder builderForValue) {
+        if (resultsBuilder_ == null) {
+          ensureResultsIsMutable();
+          results_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          resultsBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder addResults(Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult value) {
+        if (resultsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureResultsIsMutable();
+          results_.add(value);
+          onChanged();
+        } else {
+          resultsBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder addResults(
+          int index, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult value) {
+        if (resultsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureResultsIsMutable();
+          results_.add(index, value);
+          onChanged();
+        } else {
+          resultsBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder addResults(
+          Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder builderForValue) {
+        if (resultsBuilder_ == null) {
+          ensureResultsIsMutable();
+          results_.add(builderForValue.build());
+          onChanged();
+        } else {
+          resultsBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder addResults(
+          int index, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder builderForValue) {
+        if (resultsBuilder_ == null) {
+          ensureResultsIsMutable();
+          results_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          resultsBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder addAllResults(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult> values) {
+        if (resultsBuilder_ == null) {
+          ensureResultsIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, results_);
+          onChanged();
+        } else {
+          resultsBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder clearResults() {
+        if (resultsBuilder_ == null) {
+          results_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          resultsBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Builder removeResults(int index) {
+        if (resultsBuilder_ == null) {
+          ensureResultsIsMutable();
+          results_.remove(index);
+          onChanged();
+        } else {
+          resultsBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder getResultsBuilder(
+          int index) {
+        return getResultsFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder getResultsOrBuilder(
+          int index) {
+        if (resultsBuilder_ == null) {
+          return results_.get(index);  } else {
+          return resultsBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder> 
+           getResultsOrBuilderList() {
+        if (resultsBuilder_ != null) {
+          return resultsBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(results_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder addResultsBuilder() {
+        return getResultsFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder addResultsBuilder(
+          int index) {
+        return getResultsFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.SearchResult Results = 5;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder> 
+           getResultsBuilderList() {
+        return getResultsFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder> 
+          getResultsFieldBuilder() {
+        if (resultsBuilder_ == null) {
+          resultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResult.Builder, Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchResultOrBuilder>(
+                  results_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          results_ = null;
+        }
+        return resultsBuilder_;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SearchMsgTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SearchMsgTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SearchMsgTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public SearchMsgTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SearchMsgTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SearchMsgTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SearchMsgTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSearchMsgTaskResultNotice.SearchMsgTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_ConvMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_ConvMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SearchResult_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SearchResult_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n WSearchMsgTaskResultNotice.proto\022\020Im.S" +
+      "crm.Ww.Proto\032\033WHistoryMsgPushNotice.prot" +
+      "o\"W\n\013ConvMessage\022\n\n\002Id\030\001 \001(\003\022\020\n\010RemoteId" +
+      "\030\002 \001(\003\022\014\n\004Name\030\003 \001(\t\022\016\n\006Avatar\030\004 \001(\t\022\014\n\004" +
+      "Type\030\005 \001(\005\"h\n\014SearchResult\022+\n\004conv\030\001 \001(\013" +
+      "2\035.Im.Scrm.Ww.Proto.ConvMessage\022+\n\004Msgs\030" +
+      "\002 \003(\0132\035.Im.Scrm.Ww.Proto.ChatMessage\"\243\001\n" +
+      " SearchMsgTaskResultNoticeMessage\022\014\n\004WxI" +
+      "d\030\001 \001(\003\022\017\n\007Keyword\030\002 \001(\t\022\017\n\007Success\030\003 \001(" +
+      "\010\022\016\n\006ErrMsg\030\004 \001(\t\022/\n\007Results\030\005 \003(\0132\036.Im." +
+      "Scrm.Ww.Proto.SearchResult\022\016\n\006TaskId\030\006 \001" +
+      "(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_ConvMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_ConvMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_ConvMessage_descriptor,
+        new java.lang.String[] { "Id", "RemoteId", "Name", "Avatar", "Type", });
+    internal_static_Im_Scrm_Ww_Proto_SearchResult_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_SearchResult_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SearchResult_descriptor,
+        new java.lang.String[] { "Conv", "Msgs", });
+    internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(2);
+    internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SearchMsgTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Keyword", "Success", "ErrMsg", "Results", "TaskId", });
+    Im.Scrm.Ww.Proto.WHistoryMsgPushNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 893 - 0
src/main/java/Im/Scrm/Ww/Proto/WSendFriendVerifyTask.java

@@ -0,0 +1,893 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSendFriendVerifyTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSendFriendVerifyTask {
+  private WSendFriendVerifyTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SendFriendVerifyTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 客户RemoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The msg.
+     */
+    java.lang.String getMsg();
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The bytes for msg.
+     */
+    com.google.protobuf.ByteString
+        getMsgBytes();
+
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage}
+   */
+  public  static final class SendFriendVerifyTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage)
+      SendFriendVerifyTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SendFriendVerifyTaskMessage.newBuilder() to construct.
+    private SendFriendVerifyTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SendFriendVerifyTaskMessage() {
+      msg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SendFriendVerifyTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SendFriendVerifyTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              msg_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSendFriendVerifyTask.internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSendFriendVerifyTask.internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.class, Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 客户RemoteId
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int MSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object msg_;
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The msg.
+     */
+    public java.lang.String getMsg() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        msg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+     * </pre>
+     *
+     * <code>string Msg = 3;</code>
+     * @return The bytes for msg.
+     */
+    public com.google.protobuf.ByteString
+        getMsgBytes() {
+      java.lang.Object ref = msg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        msg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, msg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (!getMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, msg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage other = (Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getMsg()
+          .equals(other.getMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + MSG_FIELD_NUMBER;
+      hash = (53 * hash) + getMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage)
+        Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSendFriendVerifyTask.internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSendFriendVerifyTask.internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.class, Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        msg_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSendFriendVerifyTask.internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage build() {
+        Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage result = new Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        result.msg_ = msg_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getMsg().isEmpty()) {
+          msg_ = other.msg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 客户RemoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 客户RemoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 客户RemoteId
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object msg_ = "";
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return The msg.
+       */
+      public java.lang.String getMsg() {
+        java.lang.Object ref = msg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          msg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return The bytes for msg.
+       */
+      public com.google.protobuf.ByteString
+          getMsgBytes() {
+        java.lang.Object ref = msg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          msg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @param value The msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsg() {
+        
+        msg_ = getDefaultInstance().getMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 招呼语, 缺省:我是xxx公司的xxx,添加我的企业微信与我联系吧。
+       * </pre>
+       *
+       * <code>string Msg = 3;</code>
+       * @param value The bytes for msg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        msg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SendFriendVerifyTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SendFriendVerifyTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SendFriendVerifyTaskMessage>() {
+      @java.lang.Override
+      public SendFriendVerifyTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SendFriendVerifyTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SendFriendVerifyTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SendFriendVerifyTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSendFriendVerifyTask.SendFriendVerifyTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\033WSendFriendVerifyTask.proto\022\020Im.Scrm.W" +
+      "w.Proto\"Z\n\033SendFriendVerifyTaskMessage\022\014" +
+      "\n\004WxId\030\001 \001(\003\022\020\n\010RemoteId\030\002 \001(\003\022\013\n\003Msg\030\003 " +
+      "\001(\t\022\016\n\006TaskId\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SendFriendVerifyTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", "Msg", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 918 - 0
src/main/java/Im/Scrm/Ww/Proto/WSetUserMemoTask.java

@@ -0,0 +1,918 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSetUserMemoTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSetUserMemoTask {
+  private WSetUserMemoTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SetUserMemoTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SetUserMemoTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 联系人
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    long getRemoteId();
+
+    /**
+     * <pre>
+     * 备注
+     * </pre>
+     *
+     * <code>string Memo = 3;</code>
+     * @return The memo.
+     */
+    java.lang.String getMemo();
+    /**
+     * <pre>
+     * 备注
+     * </pre>
+     *
+     * <code>string Memo = 3;</code>
+     * @return The bytes for memo.
+     */
+    com.google.protobuf.ByteString
+        getMemoBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SetUserMemoTaskMessage}
+   */
+  public  static final class SetUserMemoTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SetUserMemoTaskMessage)
+      SetUserMemoTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SetUserMemoTaskMessage.newBuilder() to construct.
+    private SetUserMemoTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SetUserMemoTaskMessage() {
+      memo_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SetUserMemoTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SetUserMemoTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              remoteId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              memo_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSetUserMemoTask.internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSetUserMemoTask.internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.class, Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int REMOTEID_FIELD_NUMBER = 2;
+    private long remoteId_;
+    /**
+     * <pre>
+     * 联系人
+     * </pre>
+     *
+     * <code>int64 RemoteId = 2;</code>
+     * @return The remoteId.
+     */
+    public long getRemoteId() {
+      return remoteId_;
+    }
+
+    public static final int MEMO_FIELD_NUMBER = 3;
+    private volatile java.lang.Object memo_;
+    /**
+     * <pre>
+     * 备注
+     * </pre>
+     *
+     * <code>string Memo = 3;</code>
+     * @return The memo.
+     */
+    public java.lang.String getMemo() {
+      java.lang.Object ref = memo_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        memo_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 备注
+     * </pre>
+     *
+     * <code>string Memo = 3;</code>
+     * @return The bytes for memo.
+     */
+    public com.google.protobuf.ByteString
+        getMemoBytes() {
+      java.lang.Object ref = memo_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        memo_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        output.writeInt64(2, remoteId_);
+      }
+      if (!getMemoBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, memo_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (remoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, remoteId_);
+      }
+      if (!getMemoBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, memo_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage other = (Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getRemoteId()
+          != other.getRemoteId()) return false;
+      if (!getMemo()
+          .equals(other.getMemo())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + REMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRemoteId());
+      hash = (37 * hash) + MEMO_FIELD_NUMBER;
+      hash = (53 * hash) + getMemo().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SetUserMemoTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SetUserMemoTaskMessage)
+        Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSetUserMemoTask.internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSetUserMemoTask.internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.class, Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        remoteId_ = 0L;
+
+        memo_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSetUserMemoTask.internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage build() {
+        Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage result = new Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.remoteId_ = remoteId_;
+        result.memo_ = memo_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getRemoteId() != 0L) {
+          setRemoteId(other.getRemoteId());
+        }
+        if (!other.getMemo().isEmpty()) {
+          memo_ = other.memo_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long remoteId_ ;
+      /**
+       * <pre>
+       * 联系人
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return The remoteId.
+       */
+      public long getRemoteId() {
+        return remoteId_;
+      }
+      /**
+       * <pre>
+       * 联系人
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @param value The remoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRemoteId(long value) {
+        
+        remoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 联系人
+       * </pre>
+       *
+       * <code>int64 RemoteId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRemoteId() {
+        
+        remoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object memo_ = "";
+      /**
+       * <pre>
+       * 备注
+       * </pre>
+       *
+       * <code>string Memo = 3;</code>
+       * @return The memo.
+       */
+      public java.lang.String getMemo() {
+        java.lang.Object ref = memo_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          memo_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 备注
+       * </pre>
+       *
+       * <code>string Memo = 3;</code>
+       * @return The bytes for memo.
+       */
+      public com.google.protobuf.ByteString
+          getMemoBytes() {
+        java.lang.Object ref = memo_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          memo_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 备注
+       * </pre>
+       *
+       * <code>string Memo = 3;</code>
+       * @param value The memo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemo(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        memo_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 备注
+       * </pre>
+       *
+       * <code>string Memo = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMemo() {
+        
+        memo_ = getDefaultInstance().getMemo();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 备注
+       * </pre>
+       *
+       * <code>string Memo = 3;</code>
+       * @param value The bytes for memo to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMemoBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        memo_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SetUserMemoTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SetUserMemoTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SetUserMemoTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SetUserMemoTaskMessage>() {
+      @java.lang.Override
+      public SetUserMemoTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SetUserMemoTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SetUserMemoTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SetUserMemoTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSetUserMemoTask.SetUserMemoTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\026WSetUserMemoTask.proto\022\020Im.Scrm.Ww.Pro" +
+      "to\"V\n\026SetUserMemoTaskMessage\022\014\n\004WxId\030\001 \001" +
+      "(\003\022\020\n\010RemoteId\030\002 \001(\003\022\014\n\004Memo\030\003 \001(\t\022\016\n\006Ta" +
+      "skId\030\004 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SetUserMemoTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "RemoteId", "Memo", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1281 - 0
src/main/java/Im/Scrm/Ww/Proto/WSnsCommentTask.java

@@ -0,0 +1,1281 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSnsCommentTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSnsCommentTask {
+  private WSnsCommentTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SnsCommentTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsCommentTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <pre>
+     * 评论
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The comment.
+     */
+    java.lang.String getComment();
+    /**
+     * <pre>
+     * 评论
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The bytes for comment.
+     */
+    com.google.protobuf.ByteString
+        getCommentBytes();
+
+    /**
+     * <pre>
+     * 回复的好友id
+     * </pre>
+     *
+     * <code>int64 RefWxId = 5;</code>
+     * @return The refWxId.
+     */
+    long getRefWxId();
+
+    /**
+     * <pre>
+     * 回复的评论id
+     * </pre>
+     *
+     * <code>int64 RefCommentId = 6;</code>
+     * @return The refCommentId.
+     */
+    long getRefCommentId();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsCommentTaskMessage}
+   */
+  public  static final class SnsCommentTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsCommentTaskMessage)
+      SnsCommentTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsCommentTaskMessage.newBuilder() to construct.
+    private SnsCommentTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsCommentTaskMessage() {
+      postId_ = "";
+      comment_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsCommentTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsCommentTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              comment_ = s;
+              break;
+            }
+            case 40: {
+
+              refWxId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              refCommentId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.class, Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 2;
+    private long snsId_;
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 3;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int COMMENT_FIELD_NUMBER = 4;
+    private volatile java.lang.Object comment_;
+    /**
+     * <pre>
+     * 评论
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The comment.
+     */
+    public java.lang.String getComment() {
+      java.lang.Object ref = comment_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        comment_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 评论
+     * </pre>
+     *
+     * <code>string Comment = 4;</code>
+     * @return The bytes for comment.
+     */
+    public com.google.protobuf.ByteString
+        getCommentBytes() {
+      java.lang.Object ref = comment_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        comment_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int REFWXID_FIELD_NUMBER = 5;
+    private long refWxId_;
+    /**
+     * <pre>
+     * 回复的好友id
+     * </pre>
+     *
+     * <code>int64 RefWxId = 5;</code>
+     * @return The refWxId.
+     */
+    public long getRefWxId() {
+      return refWxId_;
+    }
+
+    public static final int REFCOMMENTID_FIELD_NUMBER = 6;
+    private long refCommentId_;
+    /**
+     * <pre>
+     * 回复的评论id
+     * </pre>
+     *
+     * <code>int64 RefCommentId = 6;</code>
+     * @return The refCommentId.
+     */
+    public long getRefCommentId() {
+      return refCommentId_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 7;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, postId_);
+      }
+      if (!getCommentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, comment_);
+      }
+      if (refWxId_ != 0L) {
+        output.writeInt64(5, refWxId_);
+      }
+      if (refCommentId_ != 0L) {
+        output.writeInt64(6, refCommentId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(7, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, postId_);
+      }
+      if (!getCommentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, comment_);
+      }
+      if (refWxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, refWxId_);
+      }
+      if (refCommentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, refCommentId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage other = (Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (!getComment()
+          .equals(other.getComment())) return false;
+      if (getRefWxId()
+          != other.getRefWxId()) return false;
+      if (getRefCommentId()
+          != other.getRefCommentId()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
+      hash = (53 * hash) + getComment().hashCode();
+      hash = (37 * hash) + REFWXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefWxId());
+      hash = (37 * hash) + REFCOMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefCommentId());
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsCommentTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsCommentTaskMessage)
+        Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.class, Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        snsId_ = 0L;
+
+        postId_ = "";
+
+        comment_ = "";
+
+        refWxId_ = 0L;
+
+        refCommentId_ = 0L;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTask.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage build() {
+        Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage result = new Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.snsId_ = snsId_;
+        result.postId_ = postId_;
+        result.comment_ = comment_;
+        result.refWxId_ = refWxId_;
+        result.refCommentId_ = refCommentId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (!other.getComment().isEmpty()) {
+          comment_ = other.comment_;
+          onChanged();
+        }
+        if (other.getRefWxId() != 0L) {
+          setRefWxId(other.getRefWxId());
+        }
+        if (other.getRefCommentId() != 0L) {
+          setRefCommentId(other.getRefCommentId());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object comment_ = "";
+      /**
+       * <pre>
+       * 评论
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @return The comment.
+       */
+      public java.lang.String getComment() {
+        java.lang.Object ref = comment_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          comment_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @return The bytes for comment.
+       */
+      public com.google.protobuf.ByteString
+          getCommentBytes() {
+        java.lang.Object ref = comment_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          comment_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @param value The comment to set.
+       * @return This builder for chaining.
+       */
+      public Builder setComment(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        comment_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearComment() {
+        
+        comment_ = getDefaultInstance().getComment();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论
+       * </pre>
+       *
+       * <code>string Comment = 4;</code>
+       * @param value The bytes for comment to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        comment_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long refWxId_ ;
+      /**
+       * <pre>
+       * 回复的好友id
+       * </pre>
+       *
+       * <code>int64 RefWxId = 5;</code>
+       * @return The refWxId.
+       */
+      public long getRefWxId() {
+        return refWxId_;
+      }
+      /**
+       * <pre>
+       * 回复的好友id
+       * </pre>
+       *
+       * <code>int64 RefWxId = 5;</code>
+       * @param value The refWxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefWxId(long value) {
+        
+        refWxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 回复的好友id
+       * </pre>
+       *
+       * <code>int64 RefWxId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefWxId() {
+        
+        refWxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long refCommentId_ ;
+      /**
+       * <pre>
+       * 回复的评论id
+       * </pre>
+       *
+       * <code>int64 RefCommentId = 6;</code>
+       * @return The refCommentId.
+       */
+      public long getRefCommentId() {
+        return refCommentId_;
+      }
+      /**
+       * <pre>
+       * 回复的评论id
+       * </pre>
+       *
+       * <code>int64 RefCommentId = 6;</code>
+       * @param value The refCommentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefCommentId(long value) {
+        
+        refCommentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 回复的评论id
+       * </pre>
+       *
+       * <code>int64 RefCommentId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefCommentId() {
+        
+        refCommentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 7;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 7;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsCommentTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsCommentTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsCommentTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsCommentTaskMessage>() {
+      @java.lang.Override
+      public SnsCommentTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsCommentTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsCommentTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsCommentTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSnsCommentTask.SnsCommentTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\025WSnsCommentTask.proto\022\020Im.Scrm.Ww.Prot" +
+      "o\"\214\001\n\025SnsCommentTaskMessage\022\014\n\004WxId\030\001 \001(" +
+      "\003\022\r\n\005SnsId\030\002 \001(\003\022\016\n\006PostId\030\003 \001(\t\022\017\n\007Comm" +
+      "ent\030\004 \001(\t\022\017\n\007RefWxId\030\005 \001(\003\022\024\n\014RefComment" +
+      "Id\030\006 \001(\003\022\016\n\006TaskId\030\007 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "SnsId", "PostId", "Comment", "RefWxId", "RefCommentId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1216 - 0
src/main/java/Im/Scrm/Ww/Proto/WSnsCommentTaskResultNotice.java

@@ -0,0 +1,1216 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSnsCommentTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSnsCommentTaskResultNotice {
+  private WSnsCommentTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SnsCommentTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 SnsId = 5;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <code>int64 CommentId = 6;</code>
+     * @return The commentId.
+     */
+    long getCommentId();
+
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage}
+   */
+  public  static final class SnsCommentTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage)
+      SnsCommentTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsCommentTaskResultNoticeMessage.newBuilder() to construct.
+    private SnsCommentTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsCommentTaskResultNoticeMessage() {
+      errMsg_ = "";
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsCommentTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsCommentTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 40: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              commentId_ = input.readInt64();
+              break;
+            }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 3;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 3;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 5;
+    private long snsId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 SnsId = 5;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int COMMENTID_FIELD_NUMBER = 6;
+    private long commentId_;
+    /**
+     * <code>int64 CommentId = 6;</code>
+     * @return The commentId.
+     */
+    public long getCommentId() {
+      return commentId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 7;
+    private volatile java.lang.Object postId_;
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string PostId = 7;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(5, snsId_);
+      }
+      if (commentId_ != 0L) {
+        output.writeInt64(6, commentId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, postId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, snsId_);
+      }
+      if (commentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, commentId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, postId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (getCommentId()
+          != other.getCommentId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + COMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCommentId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        errMsg_ = "";
+
+        taskId_ = 0L;
+
+        snsId_ = 0L;
+
+        commentId_ = 0L;
+
+        postId_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.errMsg_ = errMsg_;
+        result.taskId_ = taskId_;
+        result.snsId_ = snsId_;
+        result.commentId_ = commentId_;
+        result.postId_ = postId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (other.getCommentId() != 0L) {
+          setCommentId(other.getCommentId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 3;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 SnsId = 5;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 SnsId = 5;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 SnsId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long commentId_ ;
+      /**
+       * <code>int64 CommentId = 6;</code>
+       * @return The commentId.
+       */
+      public long getCommentId() {
+        return commentId_;
+      }
+      /**
+       * <code>int64 CommentId = 6;</code>
+       * @param value The commentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentId(long value) {
+        
+        commentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 CommentId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCommentId() {
+        
+        commentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <code>string PostId = 7;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string PostId = 7;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsCommentTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsCommentTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsCommentTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public SnsCommentTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsCommentTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsCommentTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsCommentTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSnsCommentTaskResultNotice.SnsCommentTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n!WSnsCommentTaskResultNotice.proto\022\020Im." +
+      "Scrm.Ww.Proto\"\224\001\n!SnsCommentTaskResultNo" +
+      "ticeMessage\022\014\n\004WxId\030\001 \001(\003\022\017\n\007Success\030\002 \001" +
+      "(\010\022\016\n\006ErrMsg\030\003 \001(\t\022\016\n\006TaskId\030\004 \001(\003\022\r\n\005Sn" +
+      "sId\030\005 \001(\003\022\021\n\tCommentId\030\006 \001(\003\022\016\n\006PostId\030\007" +
+      " \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsCommentTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "ErrMsg", "TaskId", "SnsId", "CommentId", "PostId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 918 - 0
src/main/java/Im/Scrm/Ww/Proto/WSnsLikeTask.java

@@ -0,0 +1,918 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSnsLikeTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSnsLikeTask {
+  private WSnsLikeTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SnsLikeTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsLikeTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsLikeTaskMessage}
+   */
+  public  static final class SnsLikeTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsLikeTaskMessage)
+      SnsLikeTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsLikeTaskMessage.newBuilder() to construct.
+    private SnsLikeTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsLikeTaskMessage() {
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsLikeTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsLikeTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            case 32: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSnsLikeTask.internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSnsLikeTask.internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.class, Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 2;
+    private long snsId_;
+    /**
+     * <pre>
+     * 朋友圈id
+     * </pre>
+     *
+     * <code>int64 SnsId = 2;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 3;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 朋友圈postid
+     * </pre>
+     *
+     * <code>string PostId = 3;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 4;
+    private long taskId_;
+    /**
+     * <pre>
+     *任务id 在TaskResult中回传
+     * </pre>
+     *
+     * <code>int64 TaskId = 4;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, postId_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(4, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, snsId_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, postId_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage other = (Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsLikeTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsLikeTaskMessage)
+        Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSnsLikeTask.internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSnsLikeTask.internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.class, Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        snsId_ = 0L;
+
+        postId_ = "";
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSnsLikeTask.internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage build() {
+        Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage result = new Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.snsId_ = snsId_;
+        result.postId_ = postId_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈id
+       * </pre>
+       *
+       * <code>int64 SnsId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 朋友圈postid
+       * </pre>
+       *
+       * <code>string PostId = 3;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *任务id 在TaskResult中回传
+       * </pre>
+       *
+       * <code>int64 TaskId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsLikeTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsLikeTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsLikeTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsLikeTaskMessage>() {
+      @java.lang.Override
+      public SnsLikeTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsLikeTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsLikeTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsLikeTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSnsLikeTask.SnsLikeTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\022WSnsLikeTask.proto\022\020Im.Scrm.Ww.Proto\"Q" +
+      "\n\022SnsLikeTaskMessage\022\014\n\004WxId\030\001 \001(\003\022\r\n\005Sn" +
+      "sId\030\002 \001(\003\022\016\n\006PostId\030\003 \001(\t\022\016\n\006TaskId\030\004 \001(" +
+      "\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsLikeTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "SnsId", "PostId", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1525 - 0
src/main/java/Im/Scrm/Ww/Proto/WSnsMsgNotice.java

@@ -0,0 +1,1525 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSnsMsgNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSnsMsgNotice {
+  private WSnsMsgNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SnsMsgNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsMsgNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 类型:1 评论,2 点赞
+     * </pre>
+     *
+     * <code>int32 Type = 2;</code>
+     * @return The type.
+     */
+    int getType();
+
+    /**
+     * <code>int64 SnsId = 3;</code>
+     * @return The snsId.
+     */
+    long getSnsId();
+
+    /**
+     * <pre>
+     * 评论人的微信号
+     * </pre>
+     *
+     * <code>int64 FriendId = 4;</code>
+     * @return The friendId.
+     */
+    long getFriendId();
+
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 5;</code>
+     * @return The content.
+     */
+    java.lang.String getContent();
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 5;</code>
+     * @return The bytes for content.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes();
+
+    /**
+     * <pre>
+     * 微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 CommentId = 6;</code>
+     * @return The commentId.
+     */
+    long getCommentId();
+
+    /**
+     * <pre>
+     * 回复的微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 ReplyCommentId = 7;</code>
+     * @return The replyCommentId.
+     */
+    long getReplyCommentId();
+
+    /**
+     * <pre>
+     * 评论对象的微信号
+     * </pre>
+     *
+     * <code>int64 ReplyWxId = 8;</code>
+     * @return The replyWxId.
+     */
+    long getReplyWxId();
+
+    /**
+     * <pre>
+     * 评论时间
+     * </pre>
+     *
+     * <code>int32 Time = 9;</code>
+     * @return The time.
+     */
+    int getTime();
+
+    /**
+     * <pre>
+     * sns postid
+     * </pre>
+     *
+     * <code>string PostId = 10;</code>
+     * @return The postId.
+     */
+    java.lang.String getPostId();
+    /**
+     * <pre>
+     * sns postid
+     * </pre>
+     *
+     * <code>string PostId = 10;</code>
+     * @return The bytes for postId.
+     */
+    com.google.protobuf.ByteString
+        getPostIdBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsMsgNoticeMessage}
+   */
+  public  static final class SnsMsgNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsMsgNoticeMessage)
+      SnsMsgNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsMsgNoticeMessage.newBuilder() to construct.
+    private SnsMsgNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsMsgNoticeMessage() {
+      content_ = "";
+      postId_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsMsgNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsMsgNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            case 24: {
+
+              snsId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              friendId_ = input.readInt64();
+              break;
+            }
+            case 42: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              content_ = s;
+              break;
+            }
+            case 48: {
+
+              commentId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              replyCommentId_ = input.readInt64();
+              break;
+            }
+            case 64: {
+
+              replyWxId_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              time_ = input.readInt32();
+              break;
+            }
+            case 82: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              postId_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSnsMsgNotice.internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSnsMsgNotice.internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.class, Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 2;
+    private int type_;
+    /**
+     * <pre>
+     * 类型:1 评论,2 点赞
+     * </pre>
+     *
+     * <code>int32 Type = 2;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    public static final int SNSID_FIELD_NUMBER = 3;
+    private long snsId_;
+    /**
+     * <code>int64 SnsId = 3;</code>
+     * @return The snsId.
+     */
+    public long getSnsId() {
+      return snsId_;
+    }
+
+    public static final int FRIENDID_FIELD_NUMBER = 4;
+    private long friendId_;
+    /**
+     * <pre>
+     * 评论人的微信号
+     * </pre>
+     *
+     * <code>int64 FriendId = 4;</code>
+     * @return The friendId.
+     */
+    public long getFriendId() {
+      return friendId_;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 5;
+    private volatile java.lang.Object content_;
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 5;</code>
+     * @return The content.
+     */
+    public java.lang.String getContent() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        content_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 评论内容
+     * </pre>
+     *
+     * <code>string Content = 5;</code>
+     * @return The bytes for content.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        content_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int COMMENTID_FIELD_NUMBER = 6;
+    private long commentId_;
+    /**
+     * <pre>
+     * 微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 CommentId = 6;</code>
+     * @return The commentId.
+     */
+    public long getCommentId() {
+      return commentId_;
+    }
+
+    public static final int REPLYCOMMENTID_FIELD_NUMBER = 7;
+    private long replyCommentId_;
+    /**
+     * <pre>
+     * 回复的微信本地数据库的id
+     * </pre>
+     *
+     * <code>int64 ReplyCommentId = 7;</code>
+     * @return The replyCommentId.
+     */
+    public long getReplyCommentId() {
+      return replyCommentId_;
+    }
+
+    public static final int REPLYWXID_FIELD_NUMBER = 8;
+    private long replyWxId_;
+    /**
+     * <pre>
+     * 评论对象的微信号
+     * </pre>
+     *
+     * <code>int64 ReplyWxId = 8;</code>
+     * @return The replyWxId.
+     */
+    public long getReplyWxId() {
+      return replyWxId_;
+    }
+
+    public static final int TIME_FIELD_NUMBER = 9;
+    private int time_;
+    /**
+     * <pre>
+     * 评论时间
+     * </pre>
+     *
+     * <code>int32 Time = 9;</code>
+     * @return The time.
+     */
+    public int getTime() {
+      return time_;
+    }
+
+    public static final int POSTID_FIELD_NUMBER = 10;
+    private volatile java.lang.Object postId_;
+    /**
+     * <pre>
+     * sns postid
+     * </pre>
+     *
+     * <code>string PostId = 10;</code>
+     * @return The postId.
+     */
+    public java.lang.String getPostId() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        postId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * sns postid
+     * </pre>
+     *
+     * <code>string PostId = 10;</code>
+     * @return The bytes for postId.
+     */
+    public com.google.protobuf.ByteString
+        getPostIdBytes() {
+      java.lang.Object ref = postId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        postId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (type_ != 0) {
+        output.writeInt32(2, type_);
+      }
+      if (snsId_ != 0L) {
+        output.writeInt64(3, snsId_);
+      }
+      if (friendId_ != 0L) {
+        output.writeInt64(4, friendId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, content_);
+      }
+      if (commentId_ != 0L) {
+        output.writeInt64(6, commentId_);
+      }
+      if (replyCommentId_ != 0L) {
+        output.writeInt64(7, replyCommentId_);
+      }
+      if (replyWxId_ != 0L) {
+        output.writeInt64(8, replyWxId_);
+      }
+      if (time_ != 0) {
+        output.writeInt32(9, time_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, postId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(2, type_);
+      }
+      if (snsId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, snsId_);
+      }
+      if (friendId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, friendId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, content_);
+      }
+      if (commentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, commentId_);
+      }
+      if (replyCommentId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, replyCommentId_);
+      }
+      if (replyWxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, replyWxId_);
+      }
+      if (time_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(9, time_);
+      }
+      if (!getPostIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, postId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage other = (Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getType()
+          != other.getType()) return false;
+      if (getSnsId()
+          != other.getSnsId()) return false;
+      if (getFriendId()
+          != other.getFriendId()) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (getCommentId()
+          != other.getCommentId()) return false;
+      if (getReplyCommentId()
+          != other.getReplyCommentId()) return false;
+      if (getReplyWxId()
+          != other.getReplyWxId()) return false;
+      if (getTime()
+          != other.getTime()) return false;
+      if (!getPostId()
+          .equals(other.getPostId())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (37 * hash) + SNSID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getSnsId());
+      hash = (37 * hash) + FRIENDID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getFriendId());
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (37 * hash) + COMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCommentId());
+      hash = (37 * hash) + REPLYCOMMENTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getReplyCommentId());
+      hash = (37 * hash) + REPLYWXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getReplyWxId());
+      hash = (37 * hash) + TIME_FIELD_NUMBER;
+      hash = (53 * hash) + getTime();
+      hash = (37 * hash) + POSTID_FIELD_NUMBER;
+      hash = (53 * hash) + getPostId().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsMsgNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsMsgNoticeMessage)
+        Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSnsMsgNotice.internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSnsMsgNotice.internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.class, Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        type_ = 0;
+
+        snsId_ = 0L;
+
+        friendId_ = 0L;
+
+        content_ = "";
+
+        commentId_ = 0L;
+
+        replyCommentId_ = 0L;
+
+        replyWxId_ = 0L;
+
+        time_ = 0;
+
+        postId_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSnsMsgNotice.internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage result = new Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.type_ = type_;
+        result.snsId_ = snsId_;
+        result.friendId_ = friendId_;
+        result.content_ = content_;
+        result.commentId_ = commentId_;
+        result.replyCommentId_ = replyCommentId_;
+        result.replyWxId_ = replyWxId_;
+        result.time_ = time_;
+        result.postId_ = postId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        if (other.getSnsId() != 0L) {
+          setSnsId(other.getSnsId());
+        }
+        if (other.getFriendId() != 0L) {
+          setFriendId(other.getFriendId());
+        }
+        if (!other.getContent().isEmpty()) {
+          content_ = other.content_;
+          onChanged();
+        }
+        if (other.getCommentId() != 0L) {
+          setCommentId(other.getCommentId());
+        }
+        if (other.getReplyCommentId() != 0L) {
+          setReplyCommentId(other.getReplyCommentId());
+        }
+        if (other.getReplyWxId() != 0L) {
+          setReplyWxId(other.getReplyWxId());
+        }
+        if (other.getTime() != 0) {
+          setTime(other.getTime());
+        }
+        if (!other.getPostId().isEmpty()) {
+          postId_ = other.postId_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int type_ ;
+      /**
+       * <pre>
+       * 类型:1 评论,2 点赞
+       * </pre>
+       *
+       * <code>int32 Type = 2;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <pre>
+       * 类型:1 评论,2 点赞
+       * </pre>
+       *
+       * <code>int32 Type = 2;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 类型:1 评论,2 点赞
+       * </pre>
+       *
+       * <code>int32 Type = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long snsId_ ;
+      /**
+       * <code>int64 SnsId = 3;</code>
+       * @return The snsId.
+       */
+      public long getSnsId() {
+        return snsId_;
+      }
+      /**
+       * <code>int64 SnsId = 3;</code>
+       * @param value The snsId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSnsId(long value) {
+        
+        snsId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 SnsId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSnsId() {
+        
+        snsId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long friendId_ ;
+      /**
+       * <pre>
+       * 评论人的微信号
+       * </pre>
+       *
+       * <code>int64 FriendId = 4;</code>
+       * @return The friendId.
+       */
+      public long getFriendId() {
+        return friendId_;
+      }
+      /**
+       * <pre>
+       * 评论人的微信号
+       * </pre>
+       *
+       * <code>int64 FriendId = 4;</code>
+       * @param value The friendId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFriendId(long value) {
+        
+        friendId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论人的微信号
+       * </pre>
+       *
+       * <code>int64 FriendId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFriendId() {
+        
+        friendId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object content_ = "";
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 5;</code>
+       * @return The content.
+       */
+      public java.lang.String getContent() {
+        java.lang.Object ref = content_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          content_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 5;</code>
+       * @return The bytes for content.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes() {
+        java.lang.Object ref = content_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          content_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 5;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论内容
+       * </pre>
+       *
+       * <code>string Content = 5;</code>
+       * @param value The bytes for content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        content_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long commentId_ ;
+      /**
+       * <pre>
+       * 微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 CommentId = 6;</code>
+       * @return The commentId.
+       */
+      public long getCommentId() {
+        return commentId_;
+      }
+      /**
+       * <pre>
+       * 微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 CommentId = 6;</code>
+       * @param value The commentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCommentId(long value) {
+        
+        commentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 CommentId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCommentId() {
+        
+        commentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long replyCommentId_ ;
+      /**
+       * <pre>
+       * 回复的微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 ReplyCommentId = 7;</code>
+       * @return The replyCommentId.
+       */
+      public long getReplyCommentId() {
+        return replyCommentId_;
+      }
+      /**
+       * <pre>
+       * 回复的微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 ReplyCommentId = 7;</code>
+       * @param value The replyCommentId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReplyCommentId(long value) {
+        
+        replyCommentId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 回复的微信本地数据库的id
+       * </pre>
+       *
+       * <code>int64 ReplyCommentId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReplyCommentId() {
+        
+        replyCommentId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long replyWxId_ ;
+      /**
+       * <pre>
+       * 评论对象的微信号
+       * </pre>
+       *
+       * <code>int64 ReplyWxId = 8;</code>
+       * @return The replyWxId.
+       */
+      public long getReplyWxId() {
+        return replyWxId_;
+      }
+      /**
+       * <pre>
+       * 评论对象的微信号
+       * </pre>
+       *
+       * <code>int64 ReplyWxId = 8;</code>
+       * @param value The replyWxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setReplyWxId(long value) {
+        
+        replyWxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论对象的微信号
+       * </pre>
+       *
+       * <code>int64 ReplyWxId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearReplyWxId() {
+        
+        replyWxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int time_ ;
+      /**
+       * <pre>
+       * 评论时间
+       * </pre>
+       *
+       * <code>int32 Time = 9;</code>
+       * @return The time.
+       */
+      public int getTime() {
+        return time_;
+      }
+      /**
+       * <pre>
+       * 评论时间
+       * </pre>
+       *
+       * <code>int32 Time = 9;</code>
+       * @param value The time to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTime(int value) {
+        
+        time_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 评论时间
+       * </pre>
+       *
+       * <code>int32 Time = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTime() {
+        
+        time_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object postId_ = "";
+      /**
+       * <pre>
+       * sns postid
+       * </pre>
+       *
+       * <code>string PostId = 10;</code>
+       * @return The postId.
+       */
+      public java.lang.String getPostId() {
+        java.lang.Object ref = postId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          postId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * sns postid
+       * </pre>
+       *
+       * <code>string PostId = 10;</code>
+       * @return The bytes for postId.
+       */
+      public com.google.protobuf.ByteString
+          getPostIdBytes() {
+        java.lang.Object ref = postId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          postId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * sns postid
+       * </pre>
+       *
+       * <code>string PostId = 10;</code>
+       * @param value The postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * sns postid
+       * </pre>
+       *
+       * <code>string PostId = 10;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPostId() {
+        
+        postId_ = getDefaultInstance().getPostId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * sns postid
+       * </pre>
+       *
+       * <code>string PostId = 10;</code>
+       * @param value The bytes for postId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPostIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        postId_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsMsgNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsMsgNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsMsgNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsMsgNoticeMessage>() {
+      @java.lang.Override
+      public SnsMsgNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsMsgNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsMsgNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsMsgNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSnsMsgNotice.SnsMsgNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\023WSnsMsgNotice.proto\022\020Im.Scrm.Ww.Proto\032" +
+      "\020WTransport.proto\"\277\001\n\023SnsMsgNoticeMessag" +
+      "e\022\014\n\004WxId\030\001 \001(\003\022\014\n\004Type\030\002 \001(\005\022\r\n\005SnsId\030\003" +
+      " \001(\003\022\020\n\010FriendId\030\004 \001(\003\022\017\n\007Content\030\005 \001(\t\022" +
+      "\021\n\tCommentId\030\006 \001(\003\022\026\n\016ReplyCommentId\030\007 \001" +
+      "(\003\022\021\n\tReplyWxId\030\010 \001(\003\022\014\n\004Time\030\t \001(\005\022\016\n\006P" +
+      "ostId\030\n \001(\tb\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsMsgNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Type", "SnsId", "FriendId", "Content", "CommentId", "ReplyCommentId", "ReplyWxId", "Time", "PostId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1007 - 0
src/main/java/Im/Scrm/Ww/Proto/WSnsNotifyNotice.java

@@ -0,0 +1,1007 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WSnsNotifyNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WSnsNotifyNotice {
+  private WSnsNotifyNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface SnsNotifyNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    java.lang.String getContent();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    com.google.protobuf.ByteString
+        getContentBytes();
+
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+     * @return Whether the snsInfo field is set.
+     */
+    boolean hasSnsInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+     * @return The snsInfo.
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo();
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder();
+
+    /**
+     * <code>int32 Type = 4;</code>
+     * @return The type.
+     */
+    int getType();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage}
+   */
+  public  static final class SnsNotifyNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage)
+      SnsNotifyNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use SnsNotifyNoticeMessage.newBuilder() to construct.
+    private SnsNotifyNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private SnsNotifyNoticeMessage() {
+      content_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new SnsNotifyNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private SnsNotifyNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              content_ = s;
+              break;
+            }
+            case 26: {
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder subBuilder = null;
+              if (snsInfo_ != null) {
+                subBuilder = snsInfo_.toBuilder();
+              }
+              snsInfo_ = input.readMessage(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(snsInfo_);
+                snsInfo_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 32: {
+
+              type_ = input.readInt32();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WSnsNotifyNotice.internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WSnsNotifyNotice.internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.class, Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 2;
+    private volatile java.lang.Object content_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The content.
+     */
+    public java.lang.String getContent() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        content_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string Content = 2;</code>
+     * @return The bytes for content.
+     */
+    public com.google.protobuf.ByteString
+        getContentBytes() {
+      java.lang.Object ref = content_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        content_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int SNSINFO_FIELD_NUMBER = 3;
+    private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage snsInfo_;
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+     * @return Whether the snsInfo field is set.
+     */
+    public boolean hasSnsInfo() {
+      return snsInfo_ != null;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+     * @return The snsInfo.
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo() {
+      return snsInfo_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+    }
+    /**
+     * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder() {
+      return getSnsInfo();
+    }
+
+    public static final int TYPE_FIELD_NUMBER = 4;
+    private int type_;
+    /**
+     * <code>int32 Type = 4;</code>
+     * @return The type.
+     */
+    public int getType() {
+      return type_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_);
+      }
+      if (snsInfo_ != null) {
+        output.writeMessage(3, getSnsInfo());
+      }
+      if (type_ != 0) {
+        output.writeInt32(4, type_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (!getContentBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_);
+      }
+      if (snsInfo_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getSnsInfo());
+      }
+      if (type_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(4, type_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage other = (Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (hasSnsInfo() != other.hasSnsInfo()) return false;
+      if (hasSnsInfo()) {
+        if (!getSnsInfo()
+            .equals(other.getSnsInfo())) return false;
+      }
+      if (getType()
+          != other.getType()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      if (hasSnsInfo()) {
+        hash = (37 * hash) + SNSINFO_FIELD_NUMBER;
+        hash = (53 * hash) + getSnsInfo().hashCode();
+      }
+      hash = (37 * hash) + TYPE_FIELD_NUMBER;
+      hash = (53 * hash) + getType();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage)
+        Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WSnsNotifyNotice.internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WSnsNotifyNotice.internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.class, Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        content_ = "";
+
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = null;
+        } else {
+          snsInfo_ = null;
+          snsInfoBuilder_ = null;
+        }
+        type_ = 0;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WSnsNotifyNotice.internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage result = new Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.content_ = content_;
+        if (snsInfoBuilder_ == null) {
+          result.snsInfo_ = snsInfo_;
+        } else {
+          result.snsInfo_ = snsInfoBuilder_.build();
+        }
+        result.type_ = type_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (!other.getContent().isEmpty()) {
+          content_ = other.content_;
+          onChanged();
+        }
+        if (other.hasSnsInfo()) {
+          mergeSnsInfo(other.getSnsInfo());
+        }
+        if (other.getType() != 0) {
+          setType(other.getType());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object content_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return The content.
+       */
+      public java.lang.String getContent() {
+        java.lang.Object ref = content_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          content_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return The bytes for content.
+       */
+      public com.google.protobuf.ByteString
+          getContentBytes() {
+        java.lang.Object ref = content_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          content_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string Content = 2;</code>
+       * @param value The bytes for content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        content_ = value;
+        onChanged();
+        return this;
+      }
+
+      private Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage snsInfo_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> snsInfoBuilder_;
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       * @return Whether the snsInfo field is set.
+       */
+      public boolean hasSnsInfo() {
+        return snsInfoBuilder_ != null || snsInfo_ != null;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       * @return The snsInfo.
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage getSnsInfo() {
+        if (snsInfoBuilder_ == null) {
+          return snsInfo_ == null ? Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+        } else {
+          return snsInfoBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      public Builder setSnsInfo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsInfoBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          snsInfo_ = value;
+          onChanged();
+        } else {
+          snsInfoBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      public Builder setSnsInfo(
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder builderForValue) {
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = builderForValue.build();
+          onChanged();
+        } else {
+          snsInfoBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      public Builder mergeSnsInfo(Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage value) {
+        if (snsInfoBuilder_ == null) {
+          if (snsInfo_ != null) {
+            snsInfo_ =
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.newBuilder(snsInfo_).mergeFrom(value).buildPartial();
+          } else {
+            snsInfo_ = value;
+          }
+          onChanged();
+        } else {
+          snsInfoBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      public Builder clearSnsInfo() {
+        if (snsInfoBuilder_ == null) {
+          snsInfo_ = null;
+          onChanged();
+        } else {
+          snsInfo_ = null;
+          snsInfoBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder getSnsInfoBuilder() {
+        
+        onChanged();
+        return getSnsInfoFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder getSnsInfoOrBuilder() {
+        if (snsInfoBuilder_ != null) {
+          return snsInfoBuilder_.getMessageOrBuilder();
+        } else {
+          return snsInfo_ == null ?
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.getDefaultInstance() : snsInfo_;
+        }
+      }
+      /**
+       * <code>.Im.Scrm.Ww.Proto.SnsInfoMessage SnsInfo = 3;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder> 
+          getSnsInfoFieldBuilder() {
+        if (snsInfoBuilder_ == null) {
+          snsInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessage.Builder, Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.SnsInfoMessageOrBuilder>(
+                  getSnsInfo(),
+                  getParentForChildren(),
+                  isClean());
+          snsInfo_ = null;
+        }
+        return snsInfoBuilder_;
+      }
+
+      private int type_ ;
+      /**
+       * <code>int32 Type = 4;</code>
+       * @return The type.
+       */
+      public int getType() {
+        return type_;
+      }
+      /**
+       * <code>int32 Type = 4;</code>
+       * @param value The type to set.
+       * @return This builder for chaining.
+       */
+      public Builder setType(int value) {
+        
+        type_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int32 Type = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearType() {
+        
+        type_ = 0;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.SnsNotifyNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<SnsNotifyNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<SnsNotifyNoticeMessage>() {
+      @java.lang.Override
+      public SnsNotifyNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new SnsNotifyNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<SnsNotifyNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<SnsNotifyNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WSnsNotifyNotice.SnsNotifyNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\026WSnsNotifyNotice.proto\022\020Im.Scrm.Ww.Pro" +
+      "to\032$WPullMySnsListTaskResultNotice.proto" +
+      "\"x\n\026SnsNotifyNoticeMessage\022\014\n\004WxId\030\001 \001(\003" +
+      "\022\017\n\007Content\030\002 \001(\t\0221\n\007SnsInfo\030\003 \001(\0132 .Im." +
+      "Scrm.Ww.Proto.SnsInfoMessage\022\014\n\004Type\030\004 \001" +
+      "(\005b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_SnsNotifyNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Content", "SnsInfo", "Type", });
+    Im.Scrm.Ww.Proto.WPullMySnsListTaskResultNotice.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1398 - 0
src/main/java/Im/Scrm/Ww/Proto/WTalkToFriendTask.java

@@ -0,0 +1,1398 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WTalkToFriendTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WTalkToFriendTask {
+  private WTalkToFriendTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface TalkToFriendTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TalkToFriendTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     *会话id
+     * </pre>
+     *
+     * <code>int64 LocalId = 3;</code>
+     * @return The localId.
+     */
+    long getLocalId();
+
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    int getContentTypeValue();
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The contentType.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType();
+
+    /**
+     * <pre>
+     * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+     * </pre>
+     *
+     * <code>bytes Content = 5;</code>
+     * @return The content.
+     */
+    com.google.protobuf.ByteString getContent();
+
+    /**
+     * <pre>
+     * 引用消息id
+     * </pre>
+     *
+     * <code>int64 RefId = 6;</code>
+     * @return The refId.
+     */
+    long getRefId();
+
+    /**
+     * <pre>
+     * 群聊&#64;某人 0表示&#64;所有人
+     * </pre>
+     *
+     * <code>repeated int64 AtSomeOne = 7;</code>
+     * @return A list containing the atSomeOne.
+     */
+    java.util.List<java.lang.Long> getAtSomeOneList();
+    /**
+     * <pre>
+     * 群聊&#64;某人 0表示&#64;所有人
+     * </pre>
+     *
+     * <code>repeated int64 AtSomeOne = 7;</code>
+     * @return The count of atSomeOne.
+     */
+    int getAtSomeOneCount();
+    /**
+     * <pre>
+     * 群聊&#64;某人 0表示&#64;所有人
+     * </pre>
+     *
+     * <code>repeated int64 AtSomeOne = 7;</code>
+     * @param index The index of the element to return.
+     * @return The atSomeOne at the given index.
+     */
+    long getAtSomeOne(int index);
+
+    /**
+     * <pre>
+     * 发送给手机端的时候需要赋值,
+     * </pre>
+     *
+     * <code>int64 TaskId = 9;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TalkToFriendTaskMessage}
+   */
+  public  static final class TalkToFriendTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TalkToFriendTaskMessage)
+      TalkToFriendTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TalkToFriendTaskMessage.newBuilder() to construct.
+    private TalkToFriendTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TalkToFriendTaskMessage() {
+      contentType_ = 0;
+      content_ = com.google.protobuf.ByteString.EMPTY;
+      atSomeOne_ = emptyLongList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TalkToFriendTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TalkToFriendTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              localId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+              int rawValue = input.readEnum();
+
+              contentType_ = rawValue;
+              break;
+            }
+            case 42: {
+
+              content_ = input.readBytes();
+              break;
+            }
+            case 48: {
+
+              refId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                atSomeOne_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              atSomeOne_.addLong(input.readInt64());
+              break;
+            }
+            case 58: {
+              int length = input.readRawVarint32();
+              int limit = input.pushLimit(length);
+              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
+                atSomeOne_ = newLongList();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              while (input.getBytesUntilLimit() > 0) {
+                atSomeOne_.addLong(input.readInt64());
+              }
+              input.popLimit(limit);
+              break;
+            }
+            case 72: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          atSomeOne_.makeImmutable(); // C
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTalkToFriendTask.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WTalkToFriendTask.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.class, Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     *会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int LOCALID_FIELD_NUMBER = 3;
+    private long localId_;
+    /**
+     * <pre>
+     *会话id
+     * </pre>
+     *
+     * <code>int64 LocalId = 3;</code>
+     * @return The localId.
+     */
+    public long getLocalId() {
+      return localId_;
+    }
+
+    public static final int CONTENTTYPE_FIELD_NUMBER = 4;
+    private int contentType_;
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The enum numeric value on the wire for contentType.
+     */
+    public int getContentTypeValue() {
+      return contentType_;
+    }
+    /**
+     * <pre>
+     * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+     * @return The contentType.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 5;
+    private com.google.protobuf.ByteString content_;
+    /**
+     * <pre>
+     * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+     * </pre>
+     *
+     * <code>bytes Content = 5;</code>
+     * @return The content.
+     */
+    public com.google.protobuf.ByteString getContent() {
+      return content_;
+    }
+
+    public static final int REFID_FIELD_NUMBER = 6;
+    private long refId_;
+    /**
+     * <pre>
+     * 引用消息id
+     * </pre>
+     *
+     * <code>int64 RefId = 6;</code>
+     * @return The refId.
+     */
+    public long getRefId() {
+      return refId_;
+    }
+
+    public static final int ATSOMEONE_FIELD_NUMBER = 7;
+    private com.google.protobuf.Internal.LongList atSomeOne_;
+    /**
+     * <pre>
+     * 群聊&#64;某人 0表示&#64;所有人
+     * </pre>
+     *
+     * <code>repeated int64 AtSomeOne = 7;</code>
+     * @return A list containing the atSomeOne.
+     */
+    public java.util.List<java.lang.Long>
+        getAtSomeOneList() {
+      return atSomeOne_;
+    }
+    /**
+     * <pre>
+     * 群聊&#64;某人 0表示&#64;所有人
+     * </pre>
+     *
+     * <code>repeated int64 AtSomeOne = 7;</code>
+     * @return The count of atSomeOne.
+     */
+    public int getAtSomeOneCount() {
+      return atSomeOne_.size();
+    }
+    /**
+     * <pre>
+     * 群聊&#64;某人 0表示&#64;所有人
+     * </pre>
+     *
+     * <code>repeated int64 AtSomeOne = 7;</code>
+     * @param index The index of the element to return.
+     * @return The atSomeOne at the given index.
+     */
+    public long getAtSomeOne(int index) {
+      return atSomeOne_.getLong(index);
+    }
+    private int atSomeOneMemoizedSerializedSize = -1;
+
+    public static final int TASKID_FIELD_NUMBER = 9;
+    private long taskId_;
+    /**
+     * <pre>
+     * 发送给手机端的时候需要赋值,
+     * </pre>
+     *
+     * <code>int64 TaskId = 9;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (localId_ != 0L) {
+        output.writeInt64(3, localId_);
+      }
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        output.writeEnum(4, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        output.writeBytes(5, content_);
+      }
+      if (refId_ != 0L) {
+        output.writeInt64(6, refId_);
+      }
+      if (getAtSomeOneList().size() > 0) {
+        output.writeUInt32NoTag(58);
+        output.writeUInt32NoTag(atSomeOneMemoizedSerializedSize);
+      }
+      for (int i = 0; i < atSomeOne_.size(); i++) {
+        output.writeInt64NoTag(atSomeOne_.getLong(i));
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(9, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (localId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, localId_);
+      }
+      if (contentType_ != Im.Scrm.Ww.Proto.WTransport.EnumContentType.UnknownContent.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(4, contentType_);
+      }
+      if (!content_.isEmpty()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(5, content_);
+      }
+      if (refId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, refId_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < atSomeOne_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeInt64SizeNoTag(atSomeOne_.getLong(i));
+        }
+        size += dataSize;
+        if (!getAtSomeOneList().isEmpty()) {
+          size += 1;
+          size += com.google.protobuf.CodedOutputStream
+              .computeInt32SizeNoTag(dataSize);
+        }
+        atSomeOneMemoizedSerializedSize = dataSize;
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(9, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage other = (Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getLocalId()
+          != other.getLocalId()) return false;
+      if (contentType_ != other.contentType_) return false;
+      if (!getContent()
+          .equals(other.getContent())) return false;
+      if (getRefId()
+          != other.getRefId()) return false;
+      if (!getAtSomeOneList()
+          .equals(other.getAtSomeOneList())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + LOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getLocalId());
+      hash = (37 * hash) + CONTENTTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + contentType_;
+      hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+      hash = (53 * hash) + getContent().hashCode();
+      hash = (37 * hash) + REFID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefId());
+      if (getAtSomeOneCount() > 0) {
+        hash = (37 * hash) + ATSOMEONE_FIELD_NUMBER;
+        hash = (53 * hash) + getAtSomeOneList().hashCode();
+      }
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TalkToFriendTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TalkToFriendTaskMessage)
+        Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTask.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTask.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.class, Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        localId_ = 0L;
+
+        contentType_ = 0;
+
+        content_ = com.google.protobuf.ByteString.EMPTY;
+
+        refId_ = 0L;
+
+        atSomeOne_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTask.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage build() {
+        Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage result = new Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.localId_ = localId_;
+        result.contentType_ = contentType_;
+        result.content_ = content_;
+        result.refId_ = refId_;
+        if (((bitField0_ & 0x00000001) != 0)) {
+          atSomeOne_.makeImmutable();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        }
+        result.atSomeOne_ = atSomeOne_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getLocalId() != 0L) {
+          setLocalId(other.getLocalId());
+        }
+        if (other.contentType_ != 0) {
+          setContentTypeValue(other.getContentTypeValue());
+        }
+        if (other.getContent() != com.google.protobuf.ByteString.EMPTY) {
+          setContent(other.getContent());
+        }
+        if (other.getRefId() != 0L) {
+          setRefId(other.getRefId());
+        }
+        if (!other.atSomeOne_.isEmpty()) {
+          if (atSomeOne_.isEmpty()) {
+            atSomeOne_ = other.atSomeOne_;
+            bitField0_ = (bitField0_ & ~0x00000001);
+          } else {
+            ensureAtSomeOneIsMutable();
+            atSomeOne_.addAll(other.atSomeOne_);
+          }
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long localId_ ;
+      /**
+       * <pre>
+       *会话id
+       * </pre>
+       *
+       * <code>int64 LocalId = 3;</code>
+       * @return The localId.
+       */
+      public long getLocalId() {
+        return localId_;
+      }
+      /**
+       * <pre>
+       *会话id
+       * </pre>
+       *
+       * <code>int64 LocalId = 3;</code>
+       * @param value The localId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLocalId(long value) {
+        
+        localId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话id
+       * </pre>
+       *
+       * <code>int64 LocalId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLocalId() {
+        
+        localId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int contentType_ = 0;
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @return The enum numeric value on the wire for contentType.
+       */
+      public int getContentTypeValue() {
+        return contentType_;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @param value The enum numeric value on the wire for contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentTypeValue(int value) {
+        contentType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @return The contentType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumContentType getContentType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumContentType result = Im.Scrm.Ww.Proto.WTransport.EnumContentType.valueOf(contentType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumContentType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @param value The contentType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContentType(Im.Scrm.Ww.Proto.WTransport.EnumContentType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        contentType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息类型 Text Picture Voice Video Link File NameCard WeApp Location Quote
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumContentType ContentType = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContentType() {
+        
+        contentType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY;
+      /**
+       * <pre>
+       * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+       * </pre>
+       *
+       * <code>bytes Content = 5;</code>
+       * @return The content.
+       */
+      public com.google.protobuf.ByteString getContent() {
+        return content_;
+      }
+      /**
+       * <pre>
+       * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+       * </pre>
+       *
+       * <code>bytes Content = 5;</code>
+       * @param value The content to set.
+       * @return This builder for chaining.
+       */
+      public Builder setContent(com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        content_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息内容 文本,url(图片 视频 语音 文件),名片wxid,json(语音 文件 链接 小程序 位置)
+       * </pre>
+       *
+       * <code>bytes Content = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearContent() {
+        
+        content_ = getDefaultInstance().getContent();
+        onChanged();
+        return this;
+      }
+
+      private long refId_ ;
+      /**
+       * <pre>
+       * 引用消息id
+       * </pre>
+       *
+       * <code>int64 RefId = 6;</code>
+       * @return The refId.
+       */
+      public long getRefId() {
+        return refId_;
+      }
+      /**
+       * <pre>
+       * 引用消息id
+       * </pre>
+       *
+       * <code>int64 RefId = 6;</code>
+       * @param value The refId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefId(long value) {
+        
+        refId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 引用消息id
+       * </pre>
+       *
+       * <code>int64 RefId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefId() {
+        
+        refId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Internal.LongList atSomeOne_ = emptyLongList();
+      private void ensureAtSomeOneIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          atSomeOne_ = mutableCopy(atSomeOne_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @return A list containing the atSomeOne.
+       */
+      public java.util.List<java.lang.Long>
+          getAtSomeOneList() {
+        return ((bitField0_ & 0x00000001) != 0) ?
+                 java.util.Collections.unmodifiableList(atSomeOne_) : atSomeOne_;
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @return The count of atSomeOne.
+       */
+      public int getAtSomeOneCount() {
+        return atSomeOne_.size();
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @param index The index of the element to return.
+       * @return The atSomeOne at the given index.
+       */
+      public long getAtSomeOne(int index) {
+        return atSomeOne_.getLong(index);
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @param index The index to set the value at.
+       * @param value The atSomeOne to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAtSomeOne(
+          int index, long value) {
+        ensureAtSomeOneIsMutable();
+        atSomeOne_.setLong(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @param value The atSomeOne to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAtSomeOne(long value) {
+        ensureAtSomeOneIsMutable();
+        atSomeOne_.addLong(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @param values The atSomeOne to add.
+       * @return This builder for chaining.
+       */
+      public Builder addAllAtSomeOne(
+          java.lang.Iterable<? extends java.lang.Long> values) {
+        ensureAtSomeOneIsMutable();
+        com.google.protobuf.AbstractMessageLite.Builder.addAll(
+            values, atSomeOne_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 群聊&#64;某人 0表示&#64;所有人
+       * </pre>
+       *
+       * <code>repeated int64 AtSomeOne = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAtSomeOne() {
+        atSomeOne_ = emptyLongList();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * 发送给手机端的时候需要赋值,
+       * </pre>
+       *
+       * <code>int64 TaskId = 9;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * 发送给手机端的时候需要赋值,
+       * </pre>
+       *
+       * <code>int64 TaskId = 9;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 发送给手机端的时候需要赋值,
+       * </pre>
+       *
+       * <code>int64 TaskId = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TalkToFriendTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TalkToFriendTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TalkToFriendTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TalkToFriendTaskMessage>() {
+      @java.lang.Override
+      public TalkToFriendTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TalkToFriendTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TalkToFriendTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TalkToFriendTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WTalkToFriendTask.TalkToFriendTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WTalkToFriendTask.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\032\020WTransport.proto\"\303\001\n\027TalkToFriendTa" +
+      "skMessage\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022" +
+      "\017\n\007LocalId\030\003 \001(\003\0226\n\013ContentType\030\004 \001(\0162!." +
+      "Im.Scrm.Ww.Proto.EnumContentType\022\017\n\007Cont" +
+      "ent\030\005 \001(\014\022\r\n\005RefId\030\006 \001(\003\022\021\n\tAtSomeOne\030\007 " +
+      "\003(\003\022\016\n\006TaskId\030\t \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "LocalId", "ContentType", "Content", "RefId", "AtSomeOne", "TaskId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1421 - 0
src/main/java/Im/Scrm/Ww/Proto/WTalkToFriendTaskResultNotice.java

@@ -0,0 +1,1421 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WTalkToFriendTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WTalkToFriendTaskResultNotice {
+  private WTalkToFriendTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface TalkToFriendTaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+     * @return The enum numeric value on the wire for code.
+     */
+    int getCodeValue();
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+     * @return The code.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getCode();
+
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <pre>
+     * 业务的id,通用的。
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 6;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * 消息id
+     * </pre>
+     *
+     * <code>int64 MsgId = 7;</code>
+     * @return The msgId.
+     */
+    long getMsgId();
+
+    /**
+     * <pre>
+     * 消息RemoteId
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 8;</code>
+     * @return The msgRemoteId.
+     */
+    long getMsgRemoteId();
+
+    /**
+     * <pre>
+     * 消息发送时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 9;</code>
+     * @return The createTime.
+     */
+    long getCreateTime();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage}
+   */
+  public  static final class TalkToFriendTaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage)
+      TalkToFriendTaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TalkToFriendTaskResultNoticeMessage.newBuilder() to construct.
+    private TalkToFriendTaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TalkToFriendTaskResultNoticeMessage() {
+      code_ = 0;
+      errMsg_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TalkToFriendTaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TalkToFriendTaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 24: {
+              int rawValue = input.readEnum();
+
+              code_ = rawValue;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 40: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 56: {
+
+              msgId_ = input.readInt64();
+              break;
+            }
+            case 64: {
+
+              msgRemoteId_ = input.readInt64();
+              break;
+            }
+            case 72: {
+
+              createTime_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 2;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 2;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int CODE_FIELD_NUMBER = 3;
+    private int code_;
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+     * @return The enum numeric value on the wire for code.
+     */
+    public int getCodeValue() {
+      return code_;
+    }
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+     * @return The code.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getCode() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumErrorCode result = Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.valueOf(code_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.UNRECOGNIZED : result;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 4;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述 获取 成功时附带的结果内容
+     * </pre>
+     *
+     * <code>string ErrMsg = 4;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 5;
+    private long taskId_;
+    /**
+     * <pre>
+     * 业务的id,通用的。
+     * </pre>
+     *
+     * <code>int64 TaskId = 5;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 6;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话 RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 6;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int MSGID_FIELD_NUMBER = 7;
+    private long msgId_;
+    /**
+     * <pre>
+     * 消息id
+     * </pre>
+     *
+     * <code>int64 MsgId = 7;</code>
+     * @return The msgId.
+     */
+    public long getMsgId() {
+      return msgId_;
+    }
+
+    public static final int MSGREMOTEID_FIELD_NUMBER = 8;
+    private long msgRemoteId_;
+    /**
+     * <pre>
+     * 消息RemoteId
+     * </pre>
+     *
+     * <code>int64 MsgRemoteId = 8;</code>
+     * @return The msgRemoteId.
+     */
+    public long getMsgRemoteId() {
+      return msgRemoteId_;
+    }
+
+    public static final int CREATETIME_FIELD_NUMBER = 9;
+    private long createTime_;
+    /**
+     * <pre>
+     * 消息发送时间
+     * </pre>
+     *
+     * <code>int64 CreateTime = 9;</code>
+     * @return The createTime.
+     */
+    public long getCreateTime() {
+      return createTime_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (success_ != false) {
+        output.writeBool(2, success_);
+      }
+      if (code_ != Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.Success.getNumber()) {
+        output.writeEnum(3, code_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(5, taskId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(6, convId_);
+      }
+      if (msgId_ != 0L) {
+        output.writeInt64(7, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        output.writeInt64(8, msgRemoteId_);
+      }
+      if (createTime_ != 0L) {
+        output.writeInt64(9, createTime_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(2, success_);
+      }
+      if (code_ != Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.Success.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(3, code_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, errMsg_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, taskId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(6, convId_);
+      }
+      if (msgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, msgId_);
+      }
+      if (msgRemoteId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, msgRemoteId_);
+      }
+      if (createTime_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(9, createTime_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (code_ != other.code_) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getMsgId()
+          != other.getMsgId()) return false;
+      if (getMsgRemoteId()
+          != other.getMsgRemoteId()) return false;
+      if (getCreateTime()
+          != other.getCreateTime()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + CODE_FIELD_NUMBER;
+      hash = (53 * hash) + code_;
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + MSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgId());
+      hash = (37 * hash) + MSGREMOTEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getMsgRemoteId());
+      hash = (37 * hash) + CREATETIME_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getCreateTime());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        success_ = false;
+
+        code_ = 0;
+
+        errMsg_ = "";
+
+        taskId_ = 0L;
+
+        convId_ = 0L;
+
+        msgId_ = 0L;
+
+        msgRemoteId_ = 0L;
+
+        createTime_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.success_ = success_;
+        result.code_ = code_;
+        result.errMsg_ = errMsg_;
+        result.taskId_ = taskId_;
+        result.convId_ = convId_;
+        result.msgId_ = msgId_;
+        result.msgRemoteId_ = msgRemoteId_;
+        result.createTime_ = createTime_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (other.code_ != 0) {
+          setCodeValue(other.getCodeValue());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getMsgId() != 0L) {
+          setMsgId(other.getMsgId());
+        }
+        if (other.getMsgRemoteId() != 0L) {
+          setMsgRemoteId(other.getMsgRemoteId());
+        }
+        if (other.getCreateTime() != 0L) {
+          setCreateTime(other.getCreateTime());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int code_ = 0;
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+       * @return The enum numeric value on the wire for code.
+       */
+      public int getCodeValue() {
+        return code_;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+       * @param value The enum numeric value on the wire for code to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCodeValue(int value) {
+        code_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+       * @return The code.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getCode() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumErrorCode result = Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.valueOf(code_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+       * @param value The code to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCode(Im.Scrm.Ww.Proto.WTransport.EnumErrorCode value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        code_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCode() {
+        
+        code_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述 获取 成功时附带的结果内容
+       * </pre>
+       *
+       * <code>string ErrMsg = 4;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 6;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 6;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话 RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgId_ ;
+      /**
+       * <pre>
+       * 消息id
+       * </pre>
+       *
+       * <code>int64 MsgId = 7;</code>
+       * @return The msgId.
+       */
+      public long getMsgId() {
+        return msgId_;
+      }
+      /**
+       * <pre>
+       * 消息id
+       * </pre>
+       *
+       * <code>int64 MsgId = 7;</code>
+       * @param value The msgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgId(long value) {
+        
+        msgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息id
+       * </pre>
+       *
+       * <code>int64 MsgId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgId() {
+        
+        msgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long msgRemoteId_ ;
+      /**
+       * <pre>
+       * 消息RemoteId
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 8;</code>
+       * @return The msgRemoteId.
+       */
+      public long getMsgRemoteId() {
+        return msgRemoteId_;
+      }
+      /**
+       * <pre>
+       * 消息RemoteId
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 8;</code>
+       * @param value The msgRemoteId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgRemoteId(long value) {
+        
+        msgRemoteId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息RemoteId
+       * </pre>
+       *
+       * <code>int64 MsgRemoteId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgRemoteId() {
+        
+        msgRemoteId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long createTime_ ;
+      /**
+       * <pre>
+       * 消息发送时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 9;</code>
+       * @return The createTime.
+       */
+      public long getCreateTime() {
+        return createTime_;
+      }
+      /**
+       * <pre>
+       * 消息发送时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 9;</code>
+       * @param value The createTime to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCreateTime(long value) {
+        
+        createTime_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 消息发送时间
+       * </pre>
+       *
+       * <code>int64 CreateTime = 9;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCreateTime() {
+        
+        createTime_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TalkToFriendTaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TalkToFriendTaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TalkToFriendTaskResultNoticeMessage>() {
+      @java.lang.Override
+      public TalkToFriendTaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TalkToFriendTaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TalkToFriendTaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TalkToFriendTaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WTalkToFriendTaskResultNotice.TalkToFriendTaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n#WTalkToFriendTaskResultNotice.proto\022\020I" +
+      "m.Scrm.Ww.Proto\032\020WTransport.proto\"\333\001\n#Ta" +
+      "lkToFriendTaskResultNoticeMessage\022\014\n\004WxI" +
+      "d\030\001 \001(\003\022\017\n\007Success\030\002 \001(\010\022-\n\004Code\030\003 \001(\0162\037" +
+      ".Im.Scrm.Ww.Proto.EnumErrorCode\022\016\n\006ErrMs" +
+      "g\030\004 \001(\t\022\016\n\006TaskId\030\005 \001(\003\022\016\n\006ConvId\030\006 \001(\003\022" +
+      "\r\n\005MsgId\030\007 \001(\003\022\023\n\013MsgRemoteId\030\010 \001(\003\022\022\n\nC" +
+      "reateTime\030\t \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TalkToFriendTaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "Success", "Code", "ErrMsg", "TaskId", "ConvId", "MsgId", "MsgRemoteId", "CreateTime", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 1479 - 0
src/main/java/Im/Scrm/Ww/Proto/WTaskResultNotice.java

@@ -0,0 +1,1479 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WTaskResultNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WTaskResultNotice {
+  private WTaskResultNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface TaskResultNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TaskResultNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     *原来执行的任务的类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+     * @return The enum numeric value on the wire for taskType.
+     */
+    int getTaskTypeValue();
+    /**
+     * <pre>
+     *原来执行的任务的类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+     * @return The taskType.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumMsgType getTaskType();
+
+    /**
+     * <pre>
+     * 业务的id,通用的。
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 4;</code>
+     * @return The success.
+     */
+    boolean getSuccess();
+
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+     * @return The enum numeric value on the wire for code.
+     */
+    int getCodeValue();
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+     * @return The code.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getCode();
+
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 6;</code>
+     * @return The errMsg.
+     */
+    java.lang.String getErrMsg();
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 6;</code>
+     * @return The bytes for errMsg.
+     */
+    com.google.protobuf.ByteString
+        getErrMsgBytes();
+
+    /**
+     * <pre>
+     * 自定义返回数据 string
+     * </pre>
+     *
+     * <code>string Ext = 7;</code>
+     * @return The ext.
+     */
+    java.lang.String getExt();
+    /**
+     * <pre>
+     * 自定义返回数据 string
+     * </pre>
+     *
+     * <code>string Ext = 7;</code>
+     * @return The bytes for ext.
+     */
+    com.google.protobuf.ByteString
+        getExtBytes();
+
+    /**
+     * <pre>
+     * 自定义返回数据 long
+     * </pre>
+     *
+     * <code>int64 ExtId = 8;</code>
+     * @return The extId.
+     */
+    long getExtId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TaskResultNoticeMessage}
+   */
+  public  static final class TaskResultNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TaskResultNoticeMessage)
+      TaskResultNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TaskResultNoticeMessage.newBuilder() to construct.
+    private TaskResultNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TaskResultNoticeMessage() {
+      taskType_ = 0;
+      code_ = 0;
+      errMsg_ = "";
+      ext_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TaskResultNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TaskResultNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+              int rawValue = input.readEnum();
+
+              taskType_ = rawValue;
+              break;
+            }
+            case 24: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              success_ = input.readBool();
+              break;
+            }
+            case 40: {
+              int rawValue = input.readEnum();
+
+              code_ = rawValue;
+              break;
+            }
+            case 50: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              errMsg_ = s;
+              break;
+            }
+            case 58: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              ext_ = s;
+              break;
+            }
+            case 64: {
+
+              extId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 设备企业WX号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int TASKTYPE_FIELD_NUMBER = 2;
+    private int taskType_;
+    /**
+     * <pre>
+     *原来执行的任务的类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+     * @return The enum numeric value on the wire for taskType.
+     */
+    public int getTaskTypeValue() {
+      return taskType_;
+    }
+    /**
+     * <pre>
+     *原来执行的任务的类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+     * @return The taskType.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumMsgType getTaskType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumMsgType result = Im.Scrm.Ww.Proto.WTransport.EnumMsgType.valueOf(taskType_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UNRECOGNIZED : result;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 3;
+    private long taskId_;
+    /**
+     * <pre>
+     * 业务的id,通用的。
+     * </pre>
+     *
+     * <code>int64 TaskId = 3;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    public static final int SUCCESS_FIELD_NUMBER = 4;
+    private boolean success_;
+    /**
+     * <pre>
+     * 是否成功
+     * </pre>
+     *
+     * <code>bool Success = 4;</code>
+     * @return The success.
+     */
+    public boolean getSuccess() {
+      return success_;
+    }
+
+    public static final int CODE_FIELD_NUMBER = 5;
+    private int code_;
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+     * @return The enum numeric value on the wire for code.
+     */
+    public int getCodeValue() {
+      return code_;
+    }
+    /**
+     * <pre>
+     * 错误码 Success = true 忽略
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+     * @return The code.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getCode() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumErrorCode result = Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.valueOf(code_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.UNRECOGNIZED : result;
+    }
+
+    public static final int ERRMSG_FIELD_NUMBER = 6;
+    private volatile java.lang.Object errMsg_;
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 6;</code>
+     * @return The errMsg.
+     */
+    public java.lang.String getErrMsg() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        errMsg_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 错误内容描述
+     * </pre>
+     *
+     * <code>string ErrMsg = 6;</code>
+     * @return The bytes for errMsg.
+     */
+    public com.google.protobuf.ByteString
+        getErrMsgBytes() {
+      java.lang.Object ref = errMsg_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        errMsg_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int EXT_FIELD_NUMBER = 7;
+    private volatile java.lang.Object ext_;
+    /**
+     * <pre>
+     * 自定义返回数据 string
+     * </pre>
+     *
+     * <code>string Ext = 7;</code>
+     * @return The ext.
+     */
+    public java.lang.String getExt() {
+      java.lang.Object ref = ext_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        ext_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 自定义返回数据 string
+     * </pre>
+     *
+     * <code>string Ext = 7;</code>
+     * @return The bytes for ext.
+     */
+    public com.google.protobuf.ByteString
+        getExtBytes() {
+      java.lang.Object ref = ext_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        ext_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int EXTID_FIELD_NUMBER = 8;
+    private long extId_;
+    /**
+     * <pre>
+     * 自定义返回数据 long
+     * </pre>
+     *
+     * <code>int64 ExtId = 8;</code>
+     * @return The extId.
+     */
+    public long getExtId() {
+      return extId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (taskType_ != Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UnknownMsg.getNumber()) {
+        output.writeEnum(2, taskType_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(3, taskId_);
+      }
+      if (success_ != false) {
+        output.writeBool(4, success_);
+      }
+      if (code_ != Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.Success.getNumber()) {
+        output.writeEnum(5, code_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, errMsg_);
+      }
+      if (!getExtBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, ext_);
+      }
+      if (extId_ != 0L) {
+        output.writeInt64(8, extId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (taskType_ != Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UnknownMsg.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(2, taskType_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, taskId_);
+      }
+      if (success_ != false) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBoolSize(4, success_);
+      }
+      if (code_ != Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.Success.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(5, code_);
+      }
+      if (!getErrMsgBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, errMsg_);
+      }
+      if (!getExtBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, ext_);
+      }
+      if (extId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(8, extId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage other = (Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (taskType_ != other.taskType_) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (getSuccess()
+          != other.getSuccess()) return false;
+      if (code_ != other.code_) return false;
+      if (!getErrMsg()
+          .equals(other.getErrMsg())) return false;
+      if (!getExt()
+          .equals(other.getExt())) return false;
+      if (getExtId()
+          != other.getExtId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + TASKTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + taskType_;
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (37 * hash) + SUCCESS_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+          getSuccess());
+      hash = (37 * hash) + CODE_FIELD_NUMBER;
+      hash = (53 * hash) + code_;
+      hash = (37 * hash) + ERRMSG_FIELD_NUMBER;
+      hash = (53 * hash) + getErrMsg().hashCode();
+      hash = (37 * hash) + EXT_FIELD_NUMBER;
+      hash = (53 * hash) + getExt().hashCode();
+      hash = (37 * hash) + EXTID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getExtId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TaskResultNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TaskResultNoticeMessage)
+        Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.class, Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        taskType_ = 0;
+
+        taskId_ = 0L;
+
+        success_ = false;
+
+        code_ = 0;
+
+        errMsg_ = "";
+
+        ext_ = "";
+
+        extId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WTaskResultNotice.internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage result = new Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage(this);
+        result.wxId_ = wxId_;
+        result.taskType_ = taskType_;
+        result.taskId_ = taskId_;
+        result.success_ = success_;
+        result.code_ = code_;
+        result.errMsg_ = errMsg_;
+        result.ext_ = ext_;
+        result.extId_ = extId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.taskType_ != 0) {
+          setTaskTypeValue(other.getTaskTypeValue());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        if (other.getSuccess() != false) {
+          setSuccess(other.getSuccess());
+        }
+        if (other.code_ != 0) {
+          setCodeValue(other.getCodeValue());
+        }
+        if (!other.getErrMsg().isEmpty()) {
+          errMsg_ = other.errMsg_;
+          onChanged();
+        }
+        if (!other.getExt().isEmpty()) {
+          ext_ = other.ext_;
+          onChanged();
+        }
+        if (other.getExtId() != 0L) {
+          setExtId(other.getExtId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 设备企业WX号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int taskType_ = 0;
+      /**
+       * <pre>
+       *原来执行的任务的类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+       * @return The enum numeric value on the wire for taskType.
+       */
+      public int getTaskTypeValue() {
+        return taskType_;
+      }
+      /**
+       * <pre>
+       *原来执行的任务的类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+       * @param value The enum numeric value on the wire for taskType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskTypeValue(int value) {
+        taskType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *原来执行的任务的类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+       * @return The taskType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumMsgType getTaskType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumMsgType result = Im.Scrm.Ww.Proto.WTransport.EnumMsgType.valueOf(taskType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       *原来执行的任务的类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+       * @param value The taskType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskType(Im.Scrm.Ww.Proto.WTransport.EnumMsgType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        taskType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *原来执行的任务的类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType TaskType = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskType() {
+        
+        taskType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 业务的id,通用的。
+       * </pre>
+       *
+       * <code>int64 TaskId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private boolean success_ ;
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 4;</code>
+       * @return The success.
+       */
+      public boolean getSuccess() {
+        return success_;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 4;</code>
+       * @param value The success to set.
+       * @return This builder for chaining.
+       */
+      public Builder setSuccess(boolean value) {
+        
+        success_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 是否成功
+       * </pre>
+       *
+       * <code>bool Success = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearSuccess() {
+        
+        success_ = false;
+        onChanged();
+        return this;
+      }
+
+      private int code_ = 0;
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+       * @return The enum numeric value on the wire for code.
+       */
+      public int getCodeValue() {
+        return code_;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+       * @param value The enum numeric value on the wire for code to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCodeValue(int value) {
+        code_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+       * @return The code.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumErrorCode getCode() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumErrorCode result = Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.valueOf(code_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumErrorCode.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+       * @param value The code to set.
+       * @return This builder for chaining.
+       */
+      public Builder setCode(Im.Scrm.Ww.Proto.WTransport.EnumErrorCode value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        code_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误码 Success = true 忽略
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumErrorCode Code = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearCode() {
+        
+        code_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object errMsg_ = "";
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 6;</code>
+       * @return The errMsg.
+       */
+      public java.lang.String getErrMsg() {
+        java.lang.Object ref = errMsg_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          errMsg_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 6;</code>
+       * @return The bytes for errMsg.
+       */
+      public com.google.protobuf.ByteString
+          getErrMsgBytes() {
+        java.lang.Object ref = errMsg_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          errMsg_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 6;</code>
+       * @param value The errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsg(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearErrMsg() {
+        
+        errMsg_ = getDefaultInstance().getErrMsg();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 错误内容描述
+       * </pre>
+       *
+       * <code>string ErrMsg = 6;</code>
+       * @param value The bytes for errMsg to set.
+       * @return This builder for chaining.
+       */
+      public Builder setErrMsgBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        errMsg_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object ext_ = "";
+      /**
+       * <pre>
+       * 自定义返回数据 string
+       * </pre>
+       *
+       * <code>string Ext = 7;</code>
+       * @return The ext.
+       */
+      public java.lang.String getExt() {
+        java.lang.Object ref = ext_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          ext_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 自定义返回数据 string
+       * </pre>
+       *
+       * <code>string Ext = 7;</code>
+       * @return The bytes for ext.
+       */
+      public com.google.protobuf.ByteString
+          getExtBytes() {
+        java.lang.Object ref = ext_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          ext_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 自定义返回数据 string
+       * </pre>
+       *
+       * <code>string Ext = 7;</code>
+       * @param value The ext to set.
+       * @return This builder for chaining.
+       */
+      public Builder setExt(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        ext_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 自定义返回数据 string
+       * </pre>
+       *
+       * <code>string Ext = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearExt() {
+        
+        ext_ = getDefaultInstance().getExt();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 自定义返回数据 string
+       * </pre>
+       *
+       * <code>string Ext = 7;</code>
+       * @param value The bytes for ext to set.
+       * @return This builder for chaining.
+       */
+      public Builder setExtBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        ext_ = value;
+        onChanged();
+        return this;
+      }
+
+      private long extId_ ;
+      /**
+       * <pre>
+       * 自定义返回数据 long
+       * </pre>
+       *
+       * <code>int64 ExtId = 8;</code>
+       * @return The extId.
+       */
+      public long getExtId() {
+        return extId_;
+      }
+      /**
+       * <pre>
+       * 自定义返回数据 long
+       * </pre>
+       *
+       * <code>int64 ExtId = 8;</code>
+       * @param value The extId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setExtId(long value) {
+        
+        extId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 自定义返回数据 long
+       * </pre>
+       *
+       * <code>int64 ExtId = 8;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearExtId() {
+        
+        extId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TaskResultNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TaskResultNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TaskResultNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TaskResultNoticeMessage>() {
+      @java.lang.Override
+      public TaskResultNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TaskResultNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TaskResultNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TaskResultNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WTaskResultNotice.TaskResultNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\027WTaskResultNotice.proto\022\020Im.Scrm.Ww.Pr" +
+      "oto\032\020WTransport.proto\"\324\001\n\027TaskResultNoti" +
+      "ceMessage\022\014\n\004WxId\030\001 \001(\003\022/\n\010TaskType\030\002 \001(" +
+      "\0162\035.Im.Scrm.Ww.Proto.EnumMsgType\022\016\n\006Task" +
+      "Id\030\003 \001(\003\022\017\n\007Success\030\004 \001(\010\022-\n\004Code\030\005 \001(\0162" +
+      "\037.Im.Scrm.Ww.Proto.EnumErrorCode\022\016\n\006ErrM" +
+      "sg\030\006 \001(\t\022\013\n\003Ext\030\007 \001(\t\022\r\n\005ExtId\030\010 \001(\003b\006pr" +
+      "oto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          Im.Scrm.Ww.Proto.WTransport.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TaskResultNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "TaskType", "TaskId", "Success", "Code", "ErrMsg", "Ext", "ExtId", });
+    Im.Scrm.Ww.Proto.WTransport.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 4783 - 0
src/main/java/Im/Scrm/Ww/Proto/WTransport.java

@@ -0,0 +1,4783 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WTransport.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WTransport {
+  private WTransport() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  /**
+   * <pre>
+   *消息类型枚举,一般每一个消息类型都应该对应一个特定的message结构
+   *20xx形式的消息类型需要 手机客户端开发者留意
+   *30xx形式的消息类型需要 PC客户端开发者留意
+   *10xx形式的消息类型需要 手机客户端、PC客户端开发者留意
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumMsgType}
+   */
+  public enum EnumMsgType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     *未知消息
+     * </pre>
+     *
+     * <code>UnknownMsg = 0;</code>
+     */
+    UnknownMsg(0),
+    /**
+     * <pre>
+     *客户端发送的心跳包
+     * </pre>
+     *
+     * <code>HeartBeatReq = 1001;</code>
+     */
+    HeartBeatReq(1001),
+    /**
+     * <pre>
+     *消息接收确认回复(接收或拒绝接收)
+     * </pre>
+     *
+     * <code>MsgReceivedAck = 1002;</code>
+     */
+    MsgReceivedAck(1002),
+    /**
+     * <pre>
+     *将错误单独提升为一种消息类型
+     * </pre>
+     *
+     * <code>Error = 1003;</code>
+     */
+    Error(1003),
+    /**
+     * <pre>
+     * 设备客户端授权类消息
+     * </pre>
+     *
+     * <code>DeviceAuthReq = 1010;</code>
+     */
+    DeviceAuthReq(1010),
+    /**
+     * <pre>
+     *设备(手机客户端、客服客户端)获取通信token响应
+     * </pre>
+     *
+     * <code>DeviceAuthRsp = 1011;</code>
+     */
+    DeviceAuthRsp(1011),
+    /**
+     * <pre>
+     *设备授权后退出(仅用于服务端内部)
+     * </pre>
+     *
+     * <code>DeviceExitNotice = 1012;</code>
+     */
+    DeviceExitNotice(1012),
+    /**
+     * <pre>
+     *账号强制下线通知
+     * </pre>
+     *
+     * <code>AccountForceOfflineNotice = 1013;</code>
+     */
+    AccountForceOfflineNotice(1013),
+    /**
+     * <pre>
+     * 服务器重定向
+     * </pre>
+     *
+     * <code>RedirectNotice = 1015;</code>
+     */
+    RedirectNotice(1015),
+    /**
+     * <pre>
+     * 通知手机客户端软件升级
+     * </pre>
+     *
+     * <code>UpgradeDeviceAppNotice = 1016;</code>
+     */
+    UpgradeDeviceAppNotice(1016),
+    /**
+     * <code>TriggerDeviceInfo = 1017;</code>
+     */
+    TriggerDeviceInfo(1017),
+    /**
+     * <code>DeviceAuthResult = 1018;</code>
+     */
+    DeviceAuthResult(1018),
+    /**
+     * <pre>
+     * 通知手机端执行特定任务
+     * </pre>
+     *
+     * <code>PhoneActionTask = 1020;</code>
+     */
+    PhoneActionTask(1020),
+    /**
+     * <code>ConfigPushNotice = 1030;</code>
+     */
+    ConfigPushNotice(1030),
+    /**
+     * <code>ConfigSetting = 1031;</code>
+     */
+    ConfigSetting(1031),
+    /**
+     * <pre>
+     * 手机客户端上传的通知类消息
+     * </pre>
+     *
+     * <code>WwOnlineNotice = 1100;</code>
+     */
+    WwOnlineNotice(1100),
+    /**
+     * <pre>
+     *手机客户端微信下线通知
+     * </pre>
+     *
+     * <code>WwOfflineNotice = 1101;</code>
+     */
+    WwOfflineNotice(1101),
+    /**
+     * <pre>
+     * 手机端信息推送
+     * </pre>
+     *
+     * <code>PostDeviceInfoNotice = 1104;</code>
+     */
+    PostDeviceInfoNotice(1104),
+    /**
+     * <pre>
+     *手机端推送联系人列表
+     * </pre>
+     *
+     * <code>ContactPushNotice = 1105;</code>
+     */
+    ContactPushNotice(1105),
+    /**
+     * <pre>
+     *手机端推送部门信息列表
+     * </pre>
+     *
+     * <code>DepartmentPushNotice = 1106;</code>
+     */
+    DepartmentPushNotice(1106),
+    /**
+     * <pre>
+     *手机端推送客户联系人
+     * </pre>
+     *
+     * <code>CustomerPushNotice = 1107;</code>
+     */
+    CustomerPushNotice(1107),
+    /**
+     * <pre>
+     * 推送客户标签
+     * </pre>
+     *
+     * <code>UserLabelPushNotice = 1108;</code>
+     */
+    UserLabelPushNotice(1108),
+    /**
+     * <pre>
+     * 推送客户公司信息
+     * </pre>
+     *
+     * <code>CorporationPushNotice = 1109;</code>
+     */
+    CorporationPushNotice(1109),
+    /**
+     * <pre>
+     * 推送聊天会话(包含群聊信息)
+     * </pre>
+     *
+     * <code>ConversationPushNotice = 1110;</code>
+     */
+    ConversationPushNotice(1110),
+    /**
+     * <pre>
+     * 手机端推送新客户列表
+     * </pre>
+     *
+     * <code>NewCustomerPushNotice = 1111;</code>
+     */
+    NewCustomerPushNotice(1111),
+    /**
+     * <pre>
+     * 新客户变更通知
+     * </pre>
+     *
+     * <code>NewCustomerAddedNotice = 1112;</code>
+     */
+    NewCustomerAddedNotice(1112),
+    /**
+     * <pre>
+     * 客户新增
+     * </pre>
+     *
+     * <code>CustomerAddNotice = 1113;</code>
+     */
+    CustomerAddNotice(1113),
+    /**
+     * <pre>
+     * 客户删除
+     * </pre>
+     *
+     * <code>CustomerDelNotice = 1114;</code>
+     */
+    CustomerDelNotice(1114),
+    /**
+     * <pre>
+     * 客户标签变化推送,
+     * </pre>
+     *
+     * <code>UserLabelChangedNotice = 1115;</code>
+     */
+    UserLabelChangedNotice(1115),
+    /**
+     * <pre>
+     * 部门信息变化推送,未实现
+     * </pre>
+     *
+     * <code>DepartmentChangedNotice = 1116;</code>
+     */
+    DepartmentChangedNotice(1116),
+    /**
+     * <pre>
+     * 会话新增通知
+     * </pre>
+     *
+     * <code>ConversationAddNotice = 1117;</code>
+     */
+    ConversationAddNotice(1117),
+    /**
+     * <pre>
+     * 微信好友列表推送,用于从微信好友中添加客户
+     * </pre>
+     *
+     * <code>WxFriendPushNotice = 1118;</code>
+     */
+    WxFriendPushNotice(1118),
+    /**
+     * <pre>
+     * 手机上消息已读
+     * </pre>
+     *
+     * <code>PostMessageReadNotice = 1119;</code>
+     */
+    PostMessageReadNotice(1119),
+    /**
+     * <pre>
+     *微信好友发来聊天消息
+     * </pre>
+     *
+     * <code>FriendTalkNotice = 1120;</code>
+     */
+    FriendTalkNotice(1120),
+    /**
+     * <pre>
+     * 手机上回复好友的聊天消息
+     * </pre>
+     *
+     * <code>TalkToFriendNotice = 1121;</code>
+     */
+    TalkToFriendNotice(1121),
+    /**
+     * <pre>
+     *任务执行结果通知
+     * </pre>
+     *
+     * <code>TaskResultNotice = 1122;</code>
+     */
+    TaskResultNotice(1122),
+    /**
+     * <pre>
+     * 手机端向服务端通知聊天执行结果
+     * </pre>
+     *
+     * <code>TalkToFriendTaskResultNotice = 1123;</code>
+     */
+    TalkToFriendTaskResultNotice(1123),
+    /**
+     * <pre>
+     * 文件下载任务或手机端自动下载结果推送
+     * </pre>
+     *
+     * <code>DownloadFileResultNotice = 1124;</code>
+     */
+    DownloadFileResultNotice(1124),
+    /**
+     * <pre>
+     * 获取二维码结果推送
+     * </pre>
+     *
+     * <code>PullMyQrCodeTaskResultNotice = 1125;</code>
+     */
+    PullMyQrCodeTaskResultNotice(1125),
+    /**
+     * <pre>
+     * 会话变更通知
+     * </pre>
+     *
+     * <code>ConversationChangedNotice = 1126;</code>
+     */
+    ConversationChangedNotice(1126),
+    /**
+     * <pre>
+     * 消息记录通知
+     * </pre>
+     *
+     * <code>HistoryMsgPushNotice = 1127;</code>
+     */
+    HistoryMsgPushNotice(1127),
+    /**
+     * <pre>
+     * 获取我的朋友圈列表结果返回
+     * </pre>
+     *
+     * <code>PullMySnsListTaskResultNotice = 1128;</code>
+     */
+    PullMySnsListTaskResultNotice(1128),
+    /**
+     * <pre>
+     * 获取企业发布的朋友圈任务结果返回
+     * </pre>
+     *
+     * <code>PullSnsTaskListTaskResultNotice = 1129;</code>
+     */
+    PullSnsTaskListTaskResultNotice(1129),
+    /**
+     * <pre>
+     * 发朋友圈结果返回 TODO: 目前snsId未获得,后期优化
+     * </pre>
+     *
+     * <code>PostSnsTaskResultNotice = 1130;</code>
+     */
+    PostSnsTaskResultNotice(1130),
+    /**
+     * <pre>
+     * 朋友圈评论结果返回 TODO: 评论id未获得,后期优化
+     * </pre>
+     *
+     * <code>SnsCommentTaskResultNotice = 1131;</code>
+     */
+    SnsCommentTaskResultNotice(1131),
+    /**
+     * <pre>
+     * 获取单个朋友圈结果返回
+     * </pre>
+     *
+     * <code>GetSnsDataTaskResultNotice = 1132;</code>
+     */
+    GetSnsDataTaskResultNotice(1132),
+    /**
+     * <pre>
+     * 企业朋友圈通知消息 主要为管理员发布朋友圈任务给成员
+     * </pre>
+     *
+     * <code>SnsNotifyNotice = 1133;</code>
+     */
+    SnsNotifyNotice(1133),
+    /**
+     * <pre>
+     * 新增或修改个人标签结果返回
+     * </pre>
+     *
+     * <code>UserLabelModifyTaskResultNotice = 1134;</code>
+     */
+    UserLabelModifyTaskResultNotice(1134),
+    /**
+     * <code>GetContactInfoTaskResultNotice = 1135;</code>
+     */
+    GetContactInfoTaskResultNotice(1135),
+    /**
+     * <pre>
+     * 手机状态结果返回
+     * </pre>
+     *
+     * <code>PhoneStateTaskResultNotice = 1136;</code>
+     */
+    PhoneStateTaskResultNotice(1136),
+    /**
+     * <pre>
+     * 手机状态告警提示
+     * </pre>
+     *
+     * <code>PhoneStateWarningNotice = 1137;</code>
+     */
+    PhoneStateWarningNotice(1137),
+    /**
+     * <pre>
+     *消息撤回通知
+     * </pre>
+     *
+     * <code>MsgRevokeNotice = 1138;</code>
+     */
+    MsgRevokeNotice(1138),
+    /**
+     * <code>SearchMsgTaskResultNotice = 1139;</code>
+     */
+    SearchMsgTaskResultNotice(1139),
+    /**
+     * <code>SnsMsgNotice = 1140;</code>
+     */
+    SnsMsgNotice(1140),
+    /**
+     * <pre>
+     * 群成员信息返回
+     * </pre>
+     *
+     * <code>GroupMemberPushNotice = 1141;</code>
+     */
+    GroupMemberPushNotice(1141),
+    /**
+     * <pre>
+     * 添加自定义表情结果返回
+     * </pre>
+     *
+     * <code>AddEmojiTaskResultNotice = 1142;</code>
+     */
+    AddEmojiTaskResultNotice(1142),
+    /**
+     * <pre>
+     * 语音消息转文字内容推送
+     * </pre>
+     *
+     * <code>VoiceTextNotice = 1143;</code>
+     */
+    VoiceTextNotice(1143),
+    /**
+     * <pre>
+     * 推送客户群
+     * </pre>
+     *
+     * <code>CustomerGroupPushNotice = 1150;</code>
+     */
+    CustomerGroupPushNotice(1150),
+    /**
+     * <pre>
+     *入群通知
+     * </pre>
+     *
+     * <code>GroupMemberAddNotice = 1151;</code>
+     */
+    GroupMemberAddNotice(1151),
+    /**
+     * <pre>
+     *退群通知
+     * </pre>
+     *
+     * <code>GroupMemberDelNotice = 1152;</code>
+     */
+    GroupMemberDelNotice(1152),
+    /**
+     * <pre>
+     *会话信息
+     * </pre>
+     *
+     * <code>ConversationInfoNotice = 1153;</code>
+     */
+    ConversationInfoNotice(1153),
+    /**
+     * <pre>
+     *单向客户id
+     * </pre>
+     *
+     * <code>OneWayCustomerPushNotice = 1155;</code>
+     */
+    OneWayCustomerPushNotice(1155),
+    /**
+     * <pre>
+     * 推送给手机端的任务
+     * </pre>
+     *
+     * <code>TriggerAccountPushTask = 1200;</code>
+     */
+    TriggerAccountPushTask(1200),
+    /**
+     * <pre>
+     * 触发手机推送联系人列表任务
+     * </pre>
+     *
+     * <code>TriggerContactPushTask = 1201;</code>
+     */
+    TriggerContactPushTask(1201),
+    /**
+     * <pre>
+     * 触发手机推送客户列表任务
+     * </pre>
+     *
+     * <code>TriggerCustomerPushTask = 1202;</code>
+     */
+    TriggerCustomerPushTask(1202),
+    /**
+     * <pre>
+     * 触发手机推送会话列表任务
+     * </pre>
+     *
+     * <code>TriggerConversationPushTask = 1203;</code>
+     */
+    TriggerConversationPushTask(1203),
+    /**
+     * <pre>
+     * 触发手机推送微信好友列表任务
+     * </pre>
+     *
+     * <code>TriggerWechatFriendPushTask = 1204;</code>
+     */
+    TriggerWechatFriendPushTask(1204),
+    /**
+     * <pre>
+     * 通知手机推送聊天记录
+     * </pre>
+     *
+     * <code>TriggerHistoryMsgPushTask = 1205;</code>
+     */
+    TriggerHistoryMsgPushTask(1205),
+    /**
+     * <pre>
+     * 通知手机将某个聊天窗口置为已读
+     * </pre>
+     *
+     * <code>TriggerMessageReadTask = 1206;</code>
+     */
+    TriggerMessageReadTask(1206),
+    /**
+     * <pre>
+     * 触发手机推送客户标签
+     * </pre>
+     *
+     * <code>TriggerUserLabelTask = 1207;</code>
+     */
+    TriggerUserLabelTask(1207),
+    /**
+     * <pre>
+     * 触发手机推送新客户
+     * </pre>
+     *
+     * <code>TriggerNewCustomerTask = 1208;</code>
+     */
+    TriggerNewCustomerTask(1208),
+    /**
+     * <pre>
+     * 触发手机推送客户群
+     * </pre>
+     *
+     * <code>TriggerCustomerGroupTask = 1209;</code>
+     */
+    TriggerCustomerGroupTask(1209),
+    /**
+     * <pre>
+     *给好友发消息任务
+     * </pre>
+     *
+     * <code>TalkToFriendTask = 1210;</code>
+     */
+    TalkToFriendTask(1210),
+    /**
+     * <pre>
+     * 通过url和authkey下载文件(图片,视频)
+     * </pre>
+     *
+     * <code>DownloadFileByUrlTask = 1211;</code>
+     */
+    DownloadFileByUrlTask(1211),
+    /**
+     * <pre>
+     * 通过消息Id下载文件(图片,视频)
+     * </pre>
+     *
+     * <code>DownloadFileByMsgIdTask = 1212;</code>
+     */
+    DownloadFileByMsgIdTask(1212),
+    /**
+     * <pre>
+     * 添加客户-从微信好友中添加
+     * </pre>
+     *
+     * <code>AddCustomerFromWxTask = 1214;</code>
+     */
+    AddCustomerFromWxTask(1214),
+    /**
+     * <pre>
+     * 添加客户-通过手机号搜索添加微信
+     * </pre>
+     *
+     * <code>AddCustomerFromSearchTask = 1215;</code>
+     */
+    AddCustomerFromSearchTask(1215),
+    /**
+     * <pre>
+     *服务端主动要求手机上传当前账号的二维码
+     * </pre>
+     *
+     * <code>PullMyQrCodeTask = 1216;</code>
+     */
+    PullMyQrCodeTask(1216),
+    /**
+     * <pre>
+     * 群聊管理
+     * </pre>
+     *
+     * <code>ChatRoomActionTask = 1217;</code>
+     */
+    ChatRoomActionTask(1217),
+    /**
+     * <pre>
+     * 获取我的朋友圈列表
+     * </pre>
+     *
+     * <code>PullMySnsListTask = 1218;</code>
+     */
+    PullMySnsListTask(1218),
+    /**
+     * <pre>
+     * 获取企业管理员发布的朋友圈任务
+     * </pre>
+     *
+     * <code>PullSnsTaskListTask = 1219;</code>
+     */
+    PullSnsTaskListTask(1219),
+    /**
+     * <pre>
+     * 发表朋友圈
+     * </pre>
+     *
+     * <code>PostSnsTask = 1220;</code>
+     */
+    PostSnsTask(1220),
+    /**
+     * <pre>
+     *发表企业群发朋友圈
+     * </pre>
+     *
+     * <code>PostSnsTaskTask = 1221;</code>
+     */
+    PostSnsTaskTask(1221),
+    /**
+     * <pre>
+     * 朋友圈点赞
+     * </pre>
+     *
+     * <code>SnsLikeTask = 1222;</code>
+     */
+    SnsLikeTask(1222),
+    /**
+     * <pre>
+     * 朋友圈评论
+     * </pre>
+     *
+     * <code>SnsCommentTask = 1223;</code>
+     */
+    SnsCommentTask(1223),
+    /**
+     * <pre>
+     * 删除朋友圈
+     * </pre>
+     *
+     * <code>DelSnsTask = 1224;</code>
+     */
+    DelSnsTask(1224),
+    /**
+     * <pre>
+     * 删除朋友圈评论
+     * </pre>
+     *
+     * <code>DelSnsCommentTask = 1225;</code>
+     */
+    DelSnsCommentTask(1225),
+    /**
+     * <pre>
+     * 获取一条朋友圈内容
+     * </pre>
+     *
+     * <code>GetSnsDataTask = 1226;</code>
+     */
+    GetSnsDataTask(1226),
+    /**
+     * <pre>
+     * 删除个人标签
+     * </pre>
+     *
+     * <code>UserLabelDelTask = 1227;</code>
+     */
+    UserLabelDelTask(1227),
+    /**
+     * <pre>
+     * 新增或修改个人标签
+     * </pre>
+     *
+     * <code>UserLabelModifyTask = 1228;</code>
+     */
+    UserLabelModifyTask(1228),
+    /**
+     * <pre>
+     * 设置标签任务(基于标签)
+     * </pre>
+     *
+     * <code>UserLabelSetTask = 1229;</code>
+     */
+    UserLabelSetTask(1229),
+    /**
+     * <pre>
+     * 通过微信好友的openid添加客户
+     * </pre>
+     *
+     * <code>AddCustomerByIdTask = 1230;</code>
+     */
+    AddCustomerByIdTask(1230),
+    /**
+     * <pre>
+     * 获取联系人信息
+     * </pre>
+     *
+     * <code>GetContactInfoTask = 1231;</code>
+     */
+    GetContactInfoTask(1231),
+    /**
+     * <pre>
+     * 通过新客户验证
+     * </pre>
+     *
+     * <code>AcceptCustomerTask = 1232;</code>
+     */
+    AcceptCustomerTask(1232),
+    /**
+     * <pre>
+     * 联系人(客户)设置标签(基于客户)开发中
+     * </pre>
+     *
+     * <code>UserSetLabelTask = 1233;</code>
+     */
+    UserSetLabelTask(1233),
+    /**
+     * <pre>
+     * 修改备注 开发中
+     * </pre>
+     *
+     * <code>SetUserMemoTask = 1234;</code>
+     */
+    SetUserMemoTask(1234),
+    /**
+     * <pre>
+     * 获取手机状态
+     * </pre>
+     *
+     * <code>PhoneStateTask = 1235;</code>
+     */
+    PhoneStateTask(1235),
+    /**
+     * <pre>
+     * 消息撤回
+     * </pre>
+     *
+     * <code>MsgRevokeTask = 1236;</code>
+     */
+    MsgRevokeTask(1236),
+    /**
+     * <pre>
+     * 消息搜索
+     * </pre>
+     *
+     * <code>SearchMsgTask = 1237;</code>
+     */
+    SearchMsgTask(1237),
+    /**
+     * <pre>
+     *外部群加客户
+     * </pre>
+     *
+     * <code>AddCustomerByGroupTask = 1238;</code>
+     */
+    AddCustomerByGroupTask(1238),
+    /**
+     * <pre>
+     * 转发消息
+     * </pre>
+     *
+     * <code>ForwardMsgTask = 1239;</code>
+     */
+    ForwardMsgTask(1239),
+    /**
+     * <pre>
+     * 多条转发
+     * </pre>
+     *
+     * <code>ForwardMultiTask = 1240;</code>
+     */
+    ForwardMultiTask(1240),
+    /**
+     * <pre>
+     * 获取群聊成员信息
+     * </pre>
+     *
+     * <code>GetGroupMemberTask = 1241;</code>
+     */
+    GetGroupMemberTask(1241),
+    /**
+     * <pre>
+     *添加自定义表情
+     * </pre>
+     *
+     * <code>AddEmojiTask = 1242;</code>
+     */
+    AddEmojiTask(1242),
+    /**
+     * <pre>
+     * 语音消息转文字
+     * </pre>
+     *
+     * <code>VoiceTransTextTask = 1243;</code>
+     */
+    VoiceTransTextTask(1243),
+    /**
+     * <pre>
+     * 加入群邀请
+     * </pre>
+     *
+     * <code>JoinGroupInviteTask = 1244;</code>
+     */
+    JoinGroupInviteTask(1244),
+    /**
+     * <pre>
+     * 删除客户
+     * </pre>
+     *
+     * <code>DelCustomerTask = 1245;</code>
+     */
+    DelCustomerTask(1245),
+    /**
+     * <pre>
+     * 发送好友验证
+     * </pre>
+     *
+     * <code>SendFriendVerifyTask = 1246;</code>
+     */
+    SendFriendVerifyTask(1246),
+    /**
+     * <pre>
+     * 请求具体群聊的详细信息
+     * </pre>
+     *
+     * <code>GetConversationInfoTask = 1250;</code>
+     */
+    GetConversationInfoTask(1250),
+    /**
+     * <pre>
+     * 获取外部userId
+     * </pre>
+     *
+     * <code>GetExtUserIdTask = 1251;</code>
+     */
+    GetExtUserIdTask(1251),
+    /**
+     * <pre>
+     * 获取外部userId返回结果
+     * </pre>
+     *
+     * <code>GetExtUserIdTaskResult = 1252;</code>
+     */
+    GetExtUserIdTaskResult(1252),
+    /**
+     * <pre>
+     * 执行App功能卡片(当前只支持 群发助手的群发通知)
+     * </pre>
+     *
+     * <code>RunFunCardTask = 1253;</code>
+     */
+    RunFunCardTask(1253),
+    /**
+     * <pre>
+     * 打卡任务
+     * </pre>
+     *
+     * <code>DaKaTask = 1255;</code>
+     */
+    DaKaTask(1255),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     *未知消息
+     * </pre>
+     *
+     * <code>UnknownMsg = 0;</code>
+     */
+    public static final int UnknownMsg_VALUE = 0;
+    /**
+     * <pre>
+     *客户端发送的心跳包
+     * </pre>
+     *
+     * <code>HeartBeatReq = 1001;</code>
+     */
+    public static final int HeartBeatReq_VALUE = 1001;
+    /**
+     * <pre>
+     *消息接收确认回复(接收或拒绝接收)
+     * </pre>
+     *
+     * <code>MsgReceivedAck = 1002;</code>
+     */
+    public static final int MsgReceivedAck_VALUE = 1002;
+    /**
+     * <pre>
+     *将错误单独提升为一种消息类型
+     * </pre>
+     *
+     * <code>Error = 1003;</code>
+     */
+    public static final int Error_VALUE = 1003;
+    /**
+     * <pre>
+     * 设备客户端授权类消息
+     * </pre>
+     *
+     * <code>DeviceAuthReq = 1010;</code>
+     */
+    public static final int DeviceAuthReq_VALUE = 1010;
+    /**
+     * <pre>
+     *设备(手机客户端、客服客户端)获取通信token响应
+     * </pre>
+     *
+     * <code>DeviceAuthRsp = 1011;</code>
+     */
+    public static final int DeviceAuthRsp_VALUE = 1011;
+    /**
+     * <pre>
+     *设备授权后退出(仅用于服务端内部)
+     * </pre>
+     *
+     * <code>DeviceExitNotice = 1012;</code>
+     */
+    public static final int DeviceExitNotice_VALUE = 1012;
+    /**
+     * <pre>
+     *账号强制下线通知
+     * </pre>
+     *
+     * <code>AccountForceOfflineNotice = 1013;</code>
+     */
+    public static final int AccountForceOfflineNotice_VALUE = 1013;
+    /**
+     * <pre>
+     * 服务器重定向
+     * </pre>
+     *
+     * <code>RedirectNotice = 1015;</code>
+     */
+    public static final int RedirectNotice_VALUE = 1015;
+    /**
+     * <pre>
+     * 通知手机客户端软件升级
+     * </pre>
+     *
+     * <code>UpgradeDeviceAppNotice = 1016;</code>
+     */
+    public static final int UpgradeDeviceAppNotice_VALUE = 1016;
+    /**
+     * <code>TriggerDeviceInfo = 1017;</code>
+     */
+    public static final int TriggerDeviceInfo_VALUE = 1017;
+    /**
+     * <code>DeviceAuthResult = 1018;</code>
+     */
+    public static final int DeviceAuthResult_VALUE = 1018;
+    /**
+     * <pre>
+     * 通知手机端执行特定任务
+     * </pre>
+     *
+     * <code>PhoneActionTask = 1020;</code>
+     */
+    public static final int PhoneActionTask_VALUE = 1020;
+    /**
+     * <code>ConfigPushNotice = 1030;</code>
+     */
+    public static final int ConfigPushNotice_VALUE = 1030;
+    /**
+     * <code>ConfigSetting = 1031;</code>
+     */
+    public static final int ConfigSetting_VALUE = 1031;
+    /**
+     * <pre>
+     * 手机客户端上传的通知类消息
+     * </pre>
+     *
+     * <code>WwOnlineNotice = 1100;</code>
+     */
+    public static final int WwOnlineNotice_VALUE = 1100;
+    /**
+     * <pre>
+     *手机客户端微信下线通知
+     * </pre>
+     *
+     * <code>WwOfflineNotice = 1101;</code>
+     */
+    public static final int WwOfflineNotice_VALUE = 1101;
+    /**
+     * <pre>
+     * 手机端信息推送
+     * </pre>
+     *
+     * <code>PostDeviceInfoNotice = 1104;</code>
+     */
+    public static final int PostDeviceInfoNotice_VALUE = 1104;
+    /**
+     * <pre>
+     *手机端推送联系人列表
+     * </pre>
+     *
+     * <code>ContactPushNotice = 1105;</code>
+     */
+    public static final int ContactPushNotice_VALUE = 1105;
+    /**
+     * <pre>
+     *手机端推送部门信息列表
+     * </pre>
+     *
+     * <code>DepartmentPushNotice = 1106;</code>
+     */
+    public static final int DepartmentPushNotice_VALUE = 1106;
+    /**
+     * <pre>
+     *手机端推送客户联系人
+     * </pre>
+     *
+     * <code>CustomerPushNotice = 1107;</code>
+     */
+    public static final int CustomerPushNotice_VALUE = 1107;
+    /**
+     * <pre>
+     * 推送客户标签
+     * </pre>
+     *
+     * <code>UserLabelPushNotice = 1108;</code>
+     */
+    public static final int UserLabelPushNotice_VALUE = 1108;
+    /**
+     * <pre>
+     * 推送客户公司信息
+     * </pre>
+     *
+     * <code>CorporationPushNotice = 1109;</code>
+     */
+    public static final int CorporationPushNotice_VALUE = 1109;
+    /**
+     * <pre>
+     * 推送聊天会话(包含群聊信息)
+     * </pre>
+     *
+     * <code>ConversationPushNotice = 1110;</code>
+     */
+    public static final int ConversationPushNotice_VALUE = 1110;
+    /**
+     * <pre>
+     * 手机端推送新客户列表
+     * </pre>
+     *
+     * <code>NewCustomerPushNotice = 1111;</code>
+     */
+    public static final int NewCustomerPushNotice_VALUE = 1111;
+    /**
+     * <pre>
+     * 新客户变更通知
+     * </pre>
+     *
+     * <code>NewCustomerAddedNotice = 1112;</code>
+     */
+    public static final int NewCustomerAddedNotice_VALUE = 1112;
+    /**
+     * <pre>
+     * 客户新增
+     * </pre>
+     *
+     * <code>CustomerAddNotice = 1113;</code>
+     */
+    public static final int CustomerAddNotice_VALUE = 1113;
+    /**
+     * <pre>
+     * 客户删除
+     * </pre>
+     *
+     * <code>CustomerDelNotice = 1114;</code>
+     */
+    public static final int CustomerDelNotice_VALUE = 1114;
+    /**
+     * <pre>
+     * 客户标签变化推送,
+     * </pre>
+     *
+     * <code>UserLabelChangedNotice = 1115;</code>
+     */
+    public static final int UserLabelChangedNotice_VALUE = 1115;
+    /**
+     * <pre>
+     * 部门信息变化推送,未实现
+     * </pre>
+     *
+     * <code>DepartmentChangedNotice = 1116;</code>
+     */
+    public static final int DepartmentChangedNotice_VALUE = 1116;
+    /**
+     * <pre>
+     * 会话新增通知
+     * </pre>
+     *
+     * <code>ConversationAddNotice = 1117;</code>
+     */
+    public static final int ConversationAddNotice_VALUE = 1117;
+    /**
+     * <pre>
+     * 微信好友列表推送,用于从微信好友中添加客户
+     * </pre>
+     *
+     * <code>WxFriendPushNotice = 1118;</code>
+     */
+    public static final int WxFriendPushNotice_VALUE = 1118;
+    /**
+     * <pre>
+     * 手机上消息已读
+     * </pre>
+     *
+     * <code>PostMessageReadNotice = 1119;</code>
+     */
+    public static final int PostMessageReadNotice_VALUE = 1119;
+    /**
+     * <pre>
+     *微信好友发来聊天消息
+     * </pre>
+     *
+     * <code>FriendTalkNotice = 1120;</code>
+     */
+    public static final int FriendTalkNotice_VALUE = 1120;
+    /**
+     * <pre>
+     * 手机上回复好友的聊天消息
+     * </pre>
+     *
+     * <code>TalkToFriendNotice = 1121;</code>
+     */
+    public static final int TalkToFriendNotice_VALUE = 1121;
+    /**
+     * <pre>
+     *任务执行结果通知
+     * </pre>
+     *
+     * <code>TaskResultNotice = 1122;</code>
+     */
+    public static final int TaskResultNotice_VALUE = 1122;
+    /**
+     * <pre>
+     * 手机端向服务端通知聊天执行结果
+     * </pre>
+     *
+     * <code>TalkToFriendTaskResultNotice = 1123;</code>
+     */
+    public static final int TalkToFriendTaskResultNotice_VALUE = 1123;
+    /**
+     * <pre>
+     * 文件下载任务或手机端自动下载结果推送
+     * </pre>
+     *
+     * <code>DownloadFileResultNotice = 1124;</code>
+     */
+    public static final int DownloadFileResultNotice_VALUE = 1124;
+    /**
+     * <pre>
+     * 获取二维码结果推送
+     * </pre>
+     *
+     * <code>PullMyQrCodeTaskResultNotice = 1125;</code>
+     */
+    public static final int PullMyQrCodeTaskResultNotice_VALUE = 1125;
+    /**
+     * <pre>
+     * 会话变更通知
+     * </pre>
+     *
+     * <code>ConversationChangedNotice = 1126;</code>
+     */
+    public static final int ConversationChangedNotice_VALUE = 1126;
+    /**
+     * <pre>
+     * 消息记录通知
+     * </pre>
+     *
+     * <code>HistoryMsgPushNotice = 1127;</code>
+     */
+    public static final int HistoryMsgPushNotice_VALUE = 1127;
+    /**
+     * <pre>
+     * 获取我的朋友圈列表结果返回
+     * </pre>
+     *
+     * <code>PullMySnsListTaskResultNotice = 1128;</code>
+     */
+    public static final int PullMySnsListTaskResultNotice_VALUE = 1128;
+    /**
+     * <pre>
+     * 获取企业发布的朋友圈任务结果返回
+     * </pre>
+     *
+     * <code>PullSnsTaskListTaskResultNotice = 1129;</code>
+     */
+    public static final int PullSnsTaskListTaskResultNotice_VALUE = 1129;
+    /**
+     * <pre>
+     * 发朋友圈结果返回 TODO: 目前snsId未获得,后期优化
+     * </pre>
+     *
+     * <code>PostSnsTaskResultNotice = 1130;</code>
+     */
+    public static final int PostSnsTaskResultNotice_VALUE = 1130;
+    /**
+     * <pre>
+     * 朋友圈评论结果返回 TODO: 评论id未获得,后期优化
+     * </pre>
+     *
+     * <code>SnsCommentTaskResultNotice = 1131;</code>
+     */
+    public static final int SnsCommentTaskResultNotice_VALUE = 1131;
+    /**
+     * <pre>
+     * 获取单个朋友圈结果返回
+     * </pre>
+     *
+     * <code>GetSnsDataTaskResultNotice = 1132;</code>
+     */
+    public static final int GetSnsDataTaskResultNotice_VALUE = 1132;
+    /**
+     * <pre>
+     * 企业朋友圈通知消息 主要为管理员发布朋友圈任务给成员
+     * </pre>
+     *
+     * <code>SnsNotifyNotice = 1133;</code>
+     */
+    public static final int SnsNotifyNotice_VALUE = 1133;
+    /**
+     * <pre>
+     * 新增或修改个人标签结果返回
+     * </pre>
+     *
+     * <code>UserLabelModifyTaskResultNotice = 1134;</code>
+     */
+    public static final int UserLabelModifyTaskResultNotice_VALUE = 1134;
+    /**
+     * <code>GetContactInfoTaskResultNotice = 1135;</code>
+     */
+    public static final int GetContactInfoTaskResultNotice_VALUE = 1135;
+    /**
+     * <pre>
+     * 手机状态结果返回
+     * </pre>
+     *
+     * <code>PhoneStateTaskResultNotice = 1136;</code>
+     */
+    public static final int PhoneStateTaskResultNotice_VALUE = 1136;
+    /**
+     * <pre>
+     * 手机状态告警提示
+     * </pre>
+     *
+     * <code>PhoneStateWarningNotice = 1137;</code>
+     */
+    public static final int PhoneStateWarningNotice_VALUE = 1137;
+    /**
+     * <pre>
+     *消息撤回通知
+     * </pre>
+     *
+     * <code>MsgRevokeNotice = 1138;</code>
+     */
+    public static final int MsgRevokeNotice_VALUE = 1138;
+    /**
+     * <code>SearchMsgTaskResultNotice = 1139;</code>
+     */
+    public static final int SearchMsgTaskResultNotice_VALUE = 1139;
+    /**
+     * <code>SnsMsgNotice = 1140;</code>
+     */
+    public static final int SnsMsgNotice_VALUE = 1140;
+    /**
+     * <pre>
+     * 群成员信息返回
+     * </pre>
+     *
+     * <code>GroupMemberPushNotice = 1141;</code>
+     */
+    public static final int GroupMemberPushNotice_VALUE = 1141;
+    /**
+     * <pre>
+     * 添加自定义表情结果返回
+     * </pre>
+     *
+     * <code>AddEmojiTaskResultNotice = 1142;</code>
+     */
+    public static final int AddEmojiTaskResultNotice_VALUE = 1142;
+    /**
+     * <pre>
+     * 语音消息转文字内容推送
+     * </pre>
+     *
+     * <code>VoiceTextNotice = 1143;</code>
+     */
+    public static final int VoiceTextNotice_VALUE = 1143;
+    /**
+     * <pre>
+     * 推送客户群
+     * </pre>
+     *
+     * <code>CustomerGroupPushNotice = 1150;</code>
+     */
+    public static final int CustomerGroupPushNotice_VALUE = 1150;
+    /**
+     * <pre>
+     *入群通知
+     * </pre>
+     *
+     * <code>GroupMemberAddNotice = 1151;</code>
+     */
+    public static final int GroupMemberAddNotice_VALUE = 1151;
+    /**
+     * <pre>
+     *退群通知
+     * </pre>
+     *
+     * <code>GroupMemberDelNotice = 1152;</code>
+     */
+    public static final int GroupMemberDelNotice_VALUE = 1152;
+    /**
+     * <pre>
+     *会话信息
+     * </pre>
+     *
+     * <code>ConversationInfoNotice = 1153;</code>
+     */
+    public static final int ConversationInfoNotice_VALUE = 1153;
+    /**
+     * <pre>
+     *单向客户id
+     * </pre>
+     *
+     * <code>OneWayCustomerPushNotice = 1155;</code>
+     */
+    public static final int OneWayCustomerPushNotice_VALUE = 1155;
+    /**
+     * <pre>
+     * 推送给手机端的任务
+     * </pre>
+     *
+     * <code>TriggerAccountPushTask = 1200;</code>
+     */
+    public static final int TriggerAccountPushTask_VALUE = 1200;
+    /**
+     * <pre>
+     * 触发手机推送联系人列表任务
+     * </pre>
+     *
+     * <code>TriggerContactPushTask = 1201;</code>
+     */
+    public static final int TriggerContactPushTask_VALUE = 1201;
+    /**
+     * <pre>
+     * 触发手机推送客户列表任务
+     * </pre>
+     *
+     * <code>TriggerCustomerPushTask = 1202;</code>
+     */
+    public static final int TriggerCustomerPushTask_VALUE = 1202;
+    /**
+     * <pre>
+     * 触发手机推送会话列表任务
+     * </pre>
+     *
+     * <code>TriggerConversationPushTask = 1203;</code>
+     */
+    public static final int TriggerConversationPushTask_VALUE = 1203;
+    /**
+     * <pre>
+     * 触发手机推送微信好友列表任务
+     * </pre>
+     *
+     * <code>TriggerWechatFriendPushTask = 1204;</code>
+     */
+    public static final int TriggerWechatFriendPushTask_VALUE = 1204;
+    /**
+     * <pre>
+     * 通知手机推送聊天记录
+     * </pre>
+     *
+     * <code>TriggerHistoryMsgPushTask = 1205;</code>
+     */
+    public static final int TriggerHistoryMsgPushTask_VALUE = 1205;
+    /**
+     * <pre>
+     * 通知手机将某个聊天窗口置为已读
+     * </pre>
+     *
+     * <code>TriggerMessageReadTask = 1206;</code>
+     */
+    public static final int TriggerMessageReadTask_VALUE = 1206;
+    /**
+     * <pre>
+     * 触发手机推送客户标签
+     * </pre>
+     *
+     * <code>TriggerUserLabelTask = 1207;</code>
+     */
+    public static final int TriggerUserLabelTask_VALUE = 1207;
+    /**
+     * <pre>
+     * 触发手机推送新客户
+     * </pre>
+     *
+     * <code>TriggerNewCustomerTask = 1208;</code>
+     */
+    public static final int TriggerNewCustomerTask_VALUE = 1208;
+    /**
+     * <pre>
+     * 触发手机推送客户群
+     * </pre>
+     *
+     * <code>TriggerCustomerGroupTask = 1209;</code>
+     */
+    public static final int TriggerCustomerGroupTask_VALUE = 1209;
+    /**
+     * <pre>
+     *给好友发消息任务
+     * </pre>
+     *
+     * <code>TalkToFriendTask = 1210;</code>
+     */
+    public static final int TalkToFriendTask_VALUE = 1210;
+    /**
+     * <pre>
+     * 通过url和authkey下载文件(图片,视频)
+     * </pre>
+     *
+     * <code>DownloadFileByUrlTask = 1211;</code>
+     */
+    public static final int DownloadFileByUrlTask_VALUE = 1211;
+    /**
+     * <pre>
+     * 通过消息Id下载文件(图片,视频)
+     * </pre>
+     *
+     * <code>DownloadFileByMsgIdTask = 1212;</code>
+     */
+    public static final int DownloadFileByMsgIdTask_VALUE = 1212;
+    /**
+     * <pre>
+     * 添加客户-从微信好友中添加
+     * </pre>
+     *
+     * <code>AddCustomerFromWxTask = 1214;</code>
+     */
+    public static final int AddCustomerFromWxTask_VALUE = 1214;
+    /**
+     * <pre>
+     * 添加客户-通过手机号搜索添加微信
+     * </pre>
+     *
+     * <code>AddCustomerFromSearchTask = 1215;</code>
+     */
+    public static final int AddCustomerFromSearchTask_VALUE = 1215;
+    /**
+     * <pre>
+     *服务端主动要求手机上传当前账号的二维码
+     * </pre>
+     *
+     * <code>PullMyQrCodeTask = 1216;</code>
+     */
+    public static final int PullMyQrCodeTask_VALUE = 1216;
+    /**
+     * <pre>
+     * 群聊管理
+     * </pre>
+     *
+     * <code>ChatRoomActionTask = 1217;</code>
+     */
+    public static final int ChatRoomActionTask_VALUE = 1217;
+    /**
+     * <pre>
+     * 获取我的朋友圈列表
+     * </pre>
+     *
+     * <code>PullMySnsListTask = 1218;</code>
+     */
+    public static final int PullMySnsListTask_VALUE = 1218;
+    /**
+     * <pre>
+     * 获取企业管理员发布的朋友圈任务
+     * </pre>
+     *
+     * <code>PullSnsTaskListTask = 1219;</code>
+     */
+    public static final int PullSnsTaskListTask_VALUE = 1219;
+    /**
+     * <pre>
+     * 发表朋友圈
+     * </pre>
+     *
+     * <code>PostSnsTask = 1220;</code>
+     */
+    public static final int PostSnsTask_VALUE = 1220;
+    /**
+     * <pre>
+     *发表企业群发朋友圈
+     * </pre>
+     *
+     * <code>PostSnsTaskTask = 1221;</code>
+     */
+    public static final int PostSnsTaskTask_VALUE = 1221;
+    /**
+     * <pre>
+     * 朋友圈点赞
+     * </pre>
+     *
+     * <code>SnsLikeTask = 1222;</code>
+     */
+    public static final int SnsLikeTask_VALUE = 1222;
+    /**
+     * <pre>
+     * 朋友圈评论
+     * </pre>
+     *
+     * <code>SnsCommentTask = 1223;</code>
+     */
+    public static final int SnsCommentTask_VALUE = 1223;
+    /**
+     * <pre>
+     * 删除朋友圈
+     * </pre>
+     *
+     * <code>DelSnsTask = 1224;</code>
+     */
+    public static final int DelSnsTask_VALUE = 1224;
+    /**
+     * <pre>
+     * 删除朋友圈评论
+     * </pre>
+     *
+     * <code>DelSnsCommentTask = 1225;</code>
+     */
+    public static final int DelSnsCommentTask_VALUE = 1225;
+    /**
+     * <pre>
+     * 获取一条朋友圈内容
+     * </pre>
+     *
+     * <code>GetSnsDataTask = 1226;</code>
+     */
+    public static final int GetSnsDataTask_VALUE = 1226;
+    /**
+     * <pre>
+     * 删除个人标签
+     * </pre>
+     *
+     * <code>UserLabelDelTask = 1227;</code>
+     */
+    public static final int UserLabelDelTask_VALUE = 1227;
+    /**
+     * <pre>
+     * 新增或修改个人标签
+     * </pre>
+     *
+     * <code>UserLabelModifyTask = 1228;</code>
+     */
+    public static final int UserLabelModifyTask_VALUE = 1228;
+    /**
+     * <pre>
+     * 设置标签任务(基于标签)
+     * </pre>
+     *
+     * <code>UserLabelSetTask = 1229;</code>
+     */
+    public static final int UserLabelSetTask_VALUE = 1229;
+    /**
+     * <pre>
+     * 通过微信好友的openid添加客户
+     * </pre>
+     *
+     * <code>AddCustomerByIdTask = 1230;</code>
+     */
+    public static final int AddCustomerByIdTask_VALUE = 1230;
+    /**
+     * <pre>
+     * 获取联系人信息
+     * </pre>
+     *
+     * <code>GetContactInfoTask = 1231;</code>
+     */
+    public static final int GetContactInfoTask_VALUE = 1231;
+    /**
+     * <pre>
+     * 通过新客户验证
+     * </pre>
+     *
+     * <code>AcceptCustomerTask = 1232;</code>
+     */
+    public static final int AcceptCustomerTask_VALUE = 1232;
+    /**
+     * <pre>
+     * 联系人(客户)设置标签(基于客户)开发中
+     * </pre>
+     *
+     * <code>UserSetLabelTask = 1233;</code>
+     */
+    public static final int UserSetLabelTask_VALUE = 1233;
+    /**
+     * <pre>
+     * 修改备注 开发中
+     * </pre>
+     *
+     * <code>SetUserMemoTask = 1234;</code>
+     */
+    public static final int SetUserMemoTask_VALUE = 1234;
+    /**
+     * <pre>
+     * 获取手机状态
+     * </pre>
+     *
+     * <code>PhoneStateTask = 1235;</code>
+     */
+    public static final int PhoneStateTask_VALUE = 1235;
+    /**
+     * <pre>
+     * 消息撤回
+     * </pre>
+     *
+     * <code>MsgRevokeTask = 1236;</code>
+     */
+    public static final int MsgRevokeTask_VALUE = 1236;
+    /**
+     * <pre>
+     * 消息搜索
+     * </pre>
+     *
+     * <code>SearchMsgTask = 1237;</code>
+     */
+    public static final int SearchMsgTask_VALUE = 1237;
+    /**
+     * <pre>
+     *外部群加客户
+     * </pre>
+     *
+     * <code>AddCustomerByGroupTask = 1238;</code>
+     */
+    public static final int AddCustomerByGroupTask_VALUE = 1238;
+    /**
+     * <pre>
+     * 转发消息
+     * </pre>
+     *
+     * <code>ForwardMsgTask = 1239;</code>
+     */
+    public static final int ForwardMsgTask_VALUE = 1239;
+    /**
+     * <pre>
+     * 多条转发
+     * </pre>
+     *
+     * <code>ForwardMultiTask = 1240;</code>
+     */
+    public static final int ForwardMultiTask_VALUE = 1240;
+    /**
+     * <pre>
+     * 获取群聊成员信息
+     * </pre>
+     *
+     * <code>GetGroupMemberTask = 1241;</code>
+     */
+    public static final int GetGroupMemberTask_VALUE = 1241;
+    /**
+     * <pre>
+     *添加自定义表情
+     * </pre>
+     *
+     * <code>AddEmojiTask = 1242;</code>
+     */
+    public static final int AddEmojiTask_VALUE = 1242;
+    /**
+     * <pre>
+     * 语音消息转文字
+     * </pre>
+     *
+     * <code>VoiceTransTextTask = 1243;</code>
+     */
+    public static final int VoiceTransTextTask_VALUE = 1243;
+    /**
+     * <pre>
+     * 加入群邀请
+     * </pre>
+     *
+     * <code>JoinGroupInviteTask = 1244;</code>
+     */
+    public static final int JoinGroupInviteTask_VALUE = 1244;
+    /**
+     * <pre>
+     * 删除客户
+     * </pre>
+     *
+     * <code>DelCustomerTask = 1245;</code>
+     */
+    public static final int DelCustomerTask_VALUE = 1245;
+    /**
+     * <pre>
+     * 发送好友验证
+     * </pre>
+     *
+     * <code>SendFriendVerifyTask = 1246;</code>
+     */
+    public static final int SendFriendVerifyTask_VALUE = 1246;
+    /**
+     * <pre>
+     * 请求具体群聊的详细信息
+     * </pre>
+     *
+     * <code>GetConversationInfoTask = 1250;</code>
+     */
+    public static final int GetConversationInfoTask_VALUE = 1250;
+    /**
+     * <pre>
+     * 获取外部userId
+     * </pre>
+     *
+     * <code>GetExtUserIdTask = 1251;</code>
+     */
+    public static final int GetExtUserIdTask_VALUE = 1251;
+    /**
+     * <pre>
+     * 获取外部userId返回结果
+     * </pre>
+     *
+     * <code>GetExtUserIdTaskResult = 1252;</code>
+     */
+    public static final int GetExtUserIdTaskResult_VALUE = 1252;
+    /**
+     * <pre>
+     * 执行App功能卡片(当前只支持 群发助手的群发通知)
+     * </pre>
+     *
+     * <code>RunFunCardTask = 1253;</code>
+     */
+    public static final int RunFunCardTask_VALUE = 1253;
+    /**
+     * <pre>
+     * 打卡任务
+     * </pre>
+     *
+     * <code>DaKaTask = 1255;</code>
+     */
+    public static final int DaKaTask_VALUE = 1255;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumMsgType valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumMsgType forNumber(int value) {
+      switch (value) {
+        case 0: return UnknownMsg;
+        case 1001: return HeartBeatReq;
+        case 1002: return MsgReceivedAck;
+        case 1003: return Error;
+        case 1010: return DeviceAuthReq;
+        case 1011: return DeviceAuthRsp;
+        case 1012: return DeviceExitNotice;
+        case 1013: return AccountForceOfflineNotice;
+        case 1015: return RedirectNotice;
+        case 1016: return UpgradeDeviceAppNotice;
+        case 1017: return TriggerDeviceInfo;
+        case 1018: return DeviceAuthResult;
+        case 1020: return PhoneActionTask;
+        case 1030: return ConfigPushNotice;
+        case 1031: return ConfigSetting;
+        case 1100: return WwOnlineNotice;
+        case 1101: return WwOfflineNotice;
+        case 1104: return PostDeviceInfoNotice;
+        case 1105: return ContactPushNotice;
+        case 1106: return DepartmentPushNotice;
+        case 1107: return CustomerPushNotice;
+        case 1108: return UserLabelPushNotice;
+        case 1109: return CorporationPushNotice;
+        case 1110: return ConversationPushNotice;
+        case 1111: return NewCustomerPushNotice;
+        case 1112: return NewCustomerAddedNotice;
+        case 1113: return CustomerAddNotice;
+        case 1114: return CustomerDelNotice;
+        case 1115: return UserLabelChangedNotice;
+        case 1116: return DepartmentChangedNotice;
+        case 1117: return ConversationAddNotice;
+        case 1118: return WxFriendPushNotice;
+        case 1119: return PostMessageReadNotice;
+        case 1120: return FriendTalkNotice;
+        case 1121: return TalkToFriendNotice;
+        case 1122: return TaskResultNotice;
+        case 1123: return TalkToFriendTaskResultNotice;
+        case 1124: return DownloadFileResultNotice;
+        case 1125: return PullMyQrCodeTaskResultNotice;
+        case 1126: return ConversationChangedNotice;
+        case 1127: return HistoryMsgPushNotice;
+        case 1128: return PullMySnsListTaskResultNotice;
+        case 1129: return PullSnsTaskListTaskResultNotice;
+        case 1130: return PostSnsTaskResultNotice;
+        case 1131: return SnsCommentTaskResultNotice;
+        case 1132: return GetSnsDataTaskResultNotice;
+        case 1133: return SnsNotifyNotice;
+        case 1134: return UserLabelModifyTaskResultNotice;
+        case 1135: return GetContactInfoTaskResultNotice;
+        case 1136: return PhoneStateTaskResultNotice;
+        case 1137: return PhoneStateWarningNotice;
+        case 1138: return MsgRevokeNotice;
+        case 1139: return SearchMsgTaskResultNotice;
+        case 1140: return SnsMsgNotice;
+        case 1141: return GroupMemberPushNotice;
+        case 1142: return AddEmojiTaskResultNotice;
+        case 1143: return VoiceTextNotice;
+        case 1150: return CustomerGroupPushNotice;
+        case 1151: return GroupMemberAddNotice;
+        case 1152: return GroupMemberDelNotice;
+        case 1153: return ConversationInfoNotice;
+        case 1155: return OneWayCustomerPushNotice;
+        case 1200: return TriggerAccountPushTask;
+        case 1201: return TriggerContactPushTask;
+        case 1202: return TriggerCustomerPushTask;
+        case 1203: return TriggerConversationPushTask;
+        case 1204: return TriggerWechatFriendPushTask;
+        case 1205: return TriggerHistoryMsgPushTask;
+        case 1206: return TriggerMessageReadTask;
+        case 1207: return TriggerUserLabelTask;
+        case 1208: return TriggerNewCustomerTask;
+        case 1209: return TriggerCustomerGroupTask;
+        case 1210: return TalkToFriendTask;
+        case 1211: return DownloadFileByUrlTask;
+        case 1212: return DownloadFileByMsgIdTask;
+        case 1214: return AddCustomerFromWxTask;
+        case 1215: return AddCustomerFromSearchTask;
+        case 1216: return PullMyQrCodeTask;
+        case 1217: return ChatRoomActionTask;
+        case 1218: return PullMySnsListTask;
+        case 1219: return PullSnsTaskListTask;
+        case 1220: return PostSnsTask;
+        case 1221: return PostSnsTaskTask;
+        case 1222: return SnsLikeTask;
+        case 1223: return SnsCommentTask;
+        case 1224: return DelSnsTask;
+        case 1225: return DelSnsCommentTask;
+        case 1226: return GetSnsDataTask;
+        case 1227: return UserLabelDelTask;
+        case 1228: return UserLabelModifyTask;
+        case 1229: return UserLabelSetTask;
+        case 1230: return AddCustomerByIdTask;
+        case 1231: return GetContactInfoTask;
+        case 1232: return AcceptCustomerTask;
+        case 1233: return UserSetLabelTask;
+        case 1234: return SetUserMemoTask;
+        case 1235: return PhoneStateTask;
+        case 1236: return MsgRevokeTask;
+        case 1237: return SearchMsgTask;
+        case 1238: return AddCustomerByGroupTask;
+        case 1239: return ForwardMsgTask;
+        case 1240: return ForwardMultiTask;
+        case 1241: return GetGroupMemberTask;
+        case 1242: return AddEmojiTask;
+        case 1243: return VoiceTransTextTask;
+        case 1244: return JoinGroupInviteTask;
+        case 1245: return DelCustomerTask;
+        case 1246: return SendFriendVerifyTask;
+        case 1250: return GetConversationInfoTask;
+        case 1251: return GetExtUserIdTask;
+        case 1252: return GetExtUserIdTaskResult;
+        case 1253: return RunFunCardTask;
+        case 1255: return DaKaTask;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumMsgType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumMsgType> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumMsgType>() {
+            public EnumMsgType findValueByNumber(int number) {
+              return EnumMsgType.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final EnumMsgType[] VALUES = values();
+
+    public static EnumMsgType valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumMsgType(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumMsgType)
+  }
+
+  /**
+   * <pre>
+   * 全局错误码表
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumErrorCode}
+   */
+  public enum EnumErrorCode
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     *无错误
+     * </pre>
+     *
+     * <code>Success = 0;</code>
+     */
+    Success(0),
+    /**
+     * <pre>
+     *无权限
+     * </pre>
+     *
+     * <code>NoRight = 1001;</code>
+     */
+    NoRight(1001),
+    /**
+     * <pre>
+     *数据信息不合法
+     * </pre>
+     *
+     * <code>InvalidParam = 1002;</code>
+     */
+    InvalidParam(1002),
+    /**
+     * <pre>
+     *内部处理错误
+     * </pre>
+     *
+     * <code>InternalError = 1003;</code>
+     */
+    InternalError(1003),
+    /**
+     * <pre>
+     *发送消息或指令时对方不在线
+     * </pre>
+     *
+     * <code>TargetNotOnline = 1004;</code>
+     */
+    TargetNotOnline(1004),
+    /**
+     * <code>InfoNotExists = 1005;</code>
+     */
+    InfoNotExists(1005),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     *无错误
+     * </pre>
+     *
+     * <code>Success = 0;</code>
+     */
+    public static final int Success_VALUE = 0;
+    /**
+     * <pre>
+     *无权限
+     * </pre>
+     *
+     * <code>NoRight = 1001;</code>
+     */
+    public static final int NoRight_VALUE = 1001;
+    /**
+     * <pre>
+     *数据信息不合法
+     * </pre>
+     *
+     * <code>InvalidParam = 1002;</code>
+     */
+    public static final int InvalidParam_VALUE = 1002;
+    /**
+     * <pre>
+     *内部处理错误
+     * </pre>
+     *
+     * <code>InternalError = 1003;</code>
+     */
+    public static final int InternalError_VALUE = 1003;
+    /**
+     * <pre>
+     *发送消息或指令时对方不在线
+     * </pre>
+     *
+     * <code>TargetNotOnline = 1004;</code>
+     */
+    public static final int TargetNotOnline_VALUE = 1004;
+    /**
+     * <code>InfoNotExists = 1005;</code>
+     */
+    public static final int InfoNotExists_VALUE = 1005;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumErrorCode valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumErrorCode forNumber(int value) {
+      switch (value) {
+        case 0: return Success;
+        case 1001: return NoRight;
+        case 1002: return InvalidParam;
+        case 1003: return InternalError;
+        case 1004: return TargetNotOnline;
+        case 1005: return InfoNotExists;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumErrorCode>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumErrorCode> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumErrorCode>() {
+            public EnumErrorCode findValueByNumber(int number) {
+              return EnumErrorCode.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(1);
+    }
+
+    private static final EnumErrorCode[] VALUES = values();
+
+    public static EnumErrorCode valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumErrorCode(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumErrorCode)
+  }
+
+  /**
+   * <pre>
+   * 性别枚举
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumGender}
+   */
+  public enum EnumGender
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     *未知
+     * </pre>
+     *
+     * <code>UnknownGender = 0;</code>
+     */
+    UnknownGender(0),
+    /**
+     * <pre>
+     *男
+     * </pre>
+     *
+     * <code>Male = 1;</code>
+     */
+    Male(1),
+    /**
+     * <pre>
+     *女
+     * </pre>
+     *
+     * <code>Female = 2;</code>
+     */
+    Female(2),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     *未知
+     * </pre>
+     *
+     * <code>UnknownGender = 0;</code>
+     */
+    public static final int UnknownGender_VALUE = 0;
+    /**
+     * <pre>
+     *男
+     * </pre>
+     *
+     * <code>Male = 1;</code>
+     */
+    public static final int Male_VALUE = 1;
+    /**
+     * <pre>
+     *女
+     * </pre>
+     *
+     * <code>Female = 2;</code>
+     */
+    public static final int Female_VALUE = 2;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumGender valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumGender forNumber(int value) {
+      switch (value) {
+        case 0: return UnknownGender;
+        case 1: return Male;
+        case 2: return Female;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumGender>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumGender> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumGender>() {
+            public EnumGender findValueByNumber(int number) {
+              return EnumGender.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(2);
+    }
+
+    private static final EnumGender[] VALUES = values();
+
+    public static EnumGender valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumGender(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumGender)
+  }
+
+  /**
+   * <pre>
+   * 聊天内容类型
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumContentType}
+   */
+  public enum EnumContentType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     * 未知内容
+     * </pre>
+     *
+     * <code>UnknownContent = 0;</code>
+     */
+    UnknownContent(0),
+    /**
+     * <pre>
+     * 文本内容
+     * </pre>
+     *
+     * <code>Text = 1;</code>
+     */
+    Text(1),
+    /**
+     * <pre>
+     * 图片消息
+     * </pre>
+     *
+     * <code>Picture = 2;</code>
+     */
+    Picture(2),
+    /**
+     * <pre>
+     * 语音消息
+     * </pre>
+     *
+     * <code>Voice = 3;</code>
+     */
+    Voice(3),
+    /**
+     * <pre>
+     * 视频消息
+     * </pre>
+     *
+     * <code>Video = 4;</code>
+     */
+    Video(4),
+    /**
+     * <pre>
+     *系统消息
+     * </pre>
+     *
+     * <code>System = 5;</code>
+     */
+    System(5),
+    /**
+     * <pre>
+     * 链接消息
+     * </pre>
+     *
+     * <code>Link = 6;</code>
+     */
+    Link(6),
+    /**
+     * <pre>
+     * 扩展的链接消息(小程序分享等),内容为xml格式,暂未使用
+     * </pre>
+     *
+     * <code>LinkExt = 7;</code>
+     */
+    LinkExt(7),
+    /**
+     * <pre>
+     * 文件发送
+     * </pre>
+     *
+     * <code>File = 8;</code>
+     */
+    File(8),
+    /**
+     * <pre>
+     * 名片
+     * </pre>
+     *
+     * <code>NameCard = 9;</code>
+     */
+    NameCard(9),
+    /**
+     * <pre>
+     * 位置信息
+     * </pre>
+     *
+     * <code>Location = 10;</code>
+     */
+    Location(10),
+    /**
+     * <pre>
+     * 红包
+     * </pre>
+     *
+     * <code>LuckyMoney = 11;</code>
+     */
+    LuckyMoney(11),
+    /**
+     * <pre>
+     * 转账
+     * </pre>
+     *
+     * <code>MoneyTrans = 12;</code>
+     */
+    MoneyTrans(12),
+    /**
+     * <pre>
+     * 小程序
+     * </pre>
+     *
+     * <code>WeApp = 13;</code>
+     */
+    WeApp(13),
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>Emoji = 14;</code>
+     */
+    Emoji(14),
+    /**
+     * <pre>
+     * 群管理消息
+     * </pre>
+     *
+     * <code>RoomManage = 15;</code>
+     */
+    RoomManage(15),
+    /**
+     * <pre>
+     * 领取红包消息
+     * </pre>
+     *
+     * <code>Sys_LuckyMoney = 16;</code>
+     */
+    Sys_LuckyMoney(16),
+    /**
+     * <pre>
+     * 群聊系统消息
+     * </pre>
+     *
+     * <code>RoomSystem = 17;</code>
+     */
+    RoomSystem(17),
+    /**
+     * <pre>
+     * 公众号文章
+     * </pre>
+     *
+     * <code>BizLink = 18;</code>
+     */
+    BizLink(18),
+    /**
+     * <pre>
+     * 语音通话
+     * </pre>
+     *
+     * <code>AudioCall = 19;</code>
+     */
+    AudioCall(19),
+    /**
+     * <pre>
+     * 视频通话
+     * </pre>
+     *
+     * <code>VideoCall = 20;</code>
+     */
+    VideoCall(20),
+    /**
+     * <pre>
+     * 服务通知
+     * </pre>
+     *
+     * <code>NotifyMsg = 21;</code>
+     */
+    NotifyMsg(21),
+    /**
+     * <pre>
+     * 引用通知
+     * </pre>
+     *
+     * <code>QuoteMsg = 22;</code>
+     */
+    QuoteMsg(22),
+    /**
+     * <pre>
+     * 转发的消息记录
+     * </pre>
+     *
+     * <code>ForwardMsg = 23;</code>
+     */
+    ForwardMsg(23),
+    /**
+     * <pre>
+     * 朋友圈通知
+     * </pre>
+     *
+     * <code>SnsNotify = 24;</code>
+     */
+    SnsNotify(24),
+    /**
+     * <pre>
+     * 视频号消息
+     * </pre>
+     *
+     * <code>ShiPinHao = 25;</code>
+     */
+    ShiPinHao(25),
+    /**
+     * <pre>
+     * 功能卡片
+     * </pre>
+     *
+     * <code>AppFunCard = 26;</code>
+     */
+    AppFunCard(26),
+    /**
+     * <pre>
+     * 不支持的消息
+     * </pre>
+     *
+     * <code>UnSupport = 99;</code>
+     */
+    UnSupport(99),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     * 未知内容
+     * </pre>
+     *
+     * <code>UnknownContent = 0;</code>
+     */
+    public static final int UnknownContent_VALUE = 0;
+    /**
+     * <pre>
+     * 文本内容
+     * </pre>
+     *
+     * <code>Text = 1;</code>
+     */
+    public static final int Text_VALUE = 1;
+    /**
+     * <pre>
+     * 图片消息
+     * </pre>
+     *
+     * <code>Picture = 2;</code>
+     */
+    public static final int Picture_VALUE = 2;
+    /**
+     * <pre>
+     * 语音消息
+     * </pre>
+     *
+     * <code>Voice = 3;</code>
+     */
+    public static final int Voice_VALUE = 3;
+    /**
+     * <pre>
+     * 视频消息
+     * </pre>
+     *
+     * <code>Video = 4;</code>
+     */
+    public static final int Video_VALUE = 4;
+    /**
+     * <pre>
+     *系统消息
+     * </pre>
+     *
+     * <code>System = 5;</code>
+     */
+    public static final int System_VALUE = 5;
+    /**
+     * <pre>
+     * 链接消息
+     * </pre>
+     *
+     * <code>Link = 6;</code>
+     */
+    public static final int Link_VALUE = 6;
+    /**
+     * <pre>
+     * 扩展的链接消息(小程序分享等),内容为xml格式,暂未使用
+     * </pre>
+     *
+     * <code>LinkExt = 7;</code>
+     */
+    public static final int LinkExt_VALUE = 7;
+    /**
+     * <pre>
+     * 文件发送
+     * </pre>
+     *
+     * <code>File = 8;</code>
+     */
+    public static final int File_VALUE = 8;
+    /**
+     * <pre>
+     * 名片
+     * </pre>
+     *
+     * <code>NameCard = 9;</code>
+     */
+    public static final int NameCard_VALUE = 9;
+    /**
+     * <pre>
+     * 位置信息
+     * </pre>
+     *
+     * <code>Location = 10;</code>
+     */
+    public static final int Location_VALUE = 10;
+    /**
+     * <pre>
+     * 红包
+     * </pre>
+     *
+     * <code>LuckyMoney = 11;</code>
+     */
+    public static final int LuckyMoney_VALUE = 11;
+    /**
+     * <pre>
+     * 转账
+     * </pre>
+     *
+     * <code>MoneyTrans = 12;</code>
+     */
+    public static final int MoneyTrans_VALUE = 12;
+    /**
+     * <pre>
+     * 小程序
+     * </pre>
+     *
+     * <code>WeApp = 13;</code>
+     */
+    public static final int WeApp_VALUE = 13;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>Emoji = 14;</code>
+     */
+    public static final int Emoji_VALUE = 14;
+    /**
+     * <pre>
+     * 群管理消息
+     * </pre>
+     *
+     * <code>RoomManage = 15;</code>
+     */
+    public static final int RoomManage_VALUE = 15;
+    /**
+     * <pre>
+     * 领取红包消息
+     * </pre>
+     *
+     * <code>Sys_LuckyMoney = 16;</code>
+     */
+    public static final int Sys_LuckyMoney_VALUE = 16;
+    /**
+     * <pre>
+     * 群聊系统消息
+     * </pre>
+     *
+     * <code>RoomSystem = 17;</code>
+     */
+    public static final int RoomSystem_VALUE = 17;
+    /**
+     * <pre>
+     * 公众号文章
+     * </pre>
+     *
+     * <code>BizLink = 18;</code>
+     */
+    public static final int BizLink_VALUE = 18;
+    /**
+     * <pre>
+     * 语音通话
+     * </pre>
+     *
+     * <code>AudioCall = 19;</code>
+     */
+    public static final int AudioCall_VALUE = 19;
+    /**
+     * <pre>
+     * 视频通话
+     * </pre>
+     *
+     * <code>VideoCall = 20;</code>
+     */
+    public static final int VideoCall_VALUE = 20;
+    /**
+     * <pre>
+     * 服务通知
+     * </pre>
+     *
+     * <code>NotifyMsg = 21;</code>
+     */
+    public static final int NotifyMsg_VALUE = 21;
+    /**
+     * <pre>
+     * 引用通知
+     * </pre>
+     *
+     * <code>QuoteMsg = 22;</code>
+     */
+    public static final int QuoteMsg_VALUE = 22;
+    /**
+     * <pre>
+     * 转发的消息记录
+     * </pre>
+     *
+     * <code>ForwardMsg = 23;</code>
+     */
+    public static final int ForwardMsg_VALUE = 23;
+    /**
+     * <pre>
+     * 朋友圈通知
+     * </pre>
+     *
+     * <code>SnsNotify = 24;</code>
+     */
+    public static final int SnsNotify_VALUE = 24;
+    /**
+     * <pre>
+     * 视频号消息
+     * </pre>
+     *
+     * <code>ShiPinHao = 25;</code>
+     */
+    public static final int ShiPinHao_VALUE = 25;
+    /**
+     * <pre>
+     * 功能卡片
+     * </pre>
+     *
+     * <code>AppFunCard = 26;</code>
+     */
+    public static final int AppFunCard_VALUE = 26;
+    /**
+     * <pre>
+     * 不支持的消息
+     * </pre>
+     *
+     * <code>UnSupport = 99;</code>
+     */
+    public static final int UnSupport_VALUE = 99;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumContentType valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumContentType forNumber(int value) {
+      switch (value) {
+        case 0: return UnknownContent;
+        case 1: return Text;
+        case 2: return Picture;
+        case 3: return Voice;
+        case 4: return Video;
+        case 5: return System;
+        case 6: return Link;
+        case 7: return LinkExt;
+        case 8: return File;
+        case 9: return NameCard;
+        case 10: return Location;
+        case 11: return LuckyMoney;
+        case 12: return MoneyTrans;
+        case 13: return WeApp;
+        case 14: return Emoji;
+        case 15: return RoomManage;
+        case 16: return Sys_LuckyMoney;
+        case 17: return RoomSystem;
+        case 18: return BizLink;
+        case 19: return AudioCall;
+        case 20: return VideoCall;
+        case 21: return NotifyMsg;
+        case 22: return QuoteMsg;
+        case 23: return ForwardMsg;
+        case 24: return SnsNotify;
+        case 25: return ShiPinHao;
+        case 26: return AppFunCard;
+        case 99: return UnSupport;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumContentType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumContentType> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumContentType>() {
+            public EnumContentType findValueByNumber(int number) {
+              return EnumContentType.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(3);
+    }
+
+    private static final EnumContentType[] VALUES = values();
+
+    public static EnumContentType valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumContentType(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumContentType)
+  }
+
+  /**
+   * <pre>
+   * 设备 ~ 微信号 在线状态枚举
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumOnlineState}
+   */
+  public enum EnumOnlineState
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     * 未知,在条件中可认为是全部
+     * </pre>
+     *
+     * <code>UnknownState = 0;</code>
+     */
+    UnknownState(0),
+    /**
+     * <pre>
+     * 在线
+     * </pre>
+     *
+     * <code>Online = 1;</code>
+     */
+    Online(1),
+    /**
+     * <pre>
+     * 离线
+     * </pre>
+     *
+     * <code>Offline = 2;</code>
+     */
+    Offline(2),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     * 未知,在条件中可认为是全部
+     * </pre>
+     *
+     * <code>UnknownState = 0;</code>
+     */
+    public static final int UnknownState_VALUE = 0;
+    /**
+     * <pre>
+     * 在线
+     * </pre>
+     *
+     * <code>Online = 1;</code>
+     */
+    public static final int Online_VALUE = 1;
+    /**
+     * <pre>
+     * 离线
+     * </pre>
+     *
+     * <code>Offline = 2;</code>
+     */
+    public static final int Offline_VALUE = 2;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumOnlineState valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumOnlineState forNumber(int value) {
+      switch (value) {
+        case 0: return UnknownState;
+        case 1: return Online;
+        case 2: return Offline;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumOnlineState>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumOnlineState> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumOnlineState>() {
+            public EnumOnlineState findValueByNumber(int number) {
+              return EnumOnlineState.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(4);
+    }
+
+    private static final EnumOnlineState[] VALUES = values();
+
+    public static EnumOnlineState valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumOnlineState(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumOnlineState)
+  }
+
+  /**
+   * <pre>
+   * 账号类型
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumAccountType}
+   */
+  public enum EnumAccountType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     * 未知
+     * </pre>
+     *
+     * <code>UnknownAccountType = 0;</code>
+     */
+    UnknownAccountType(0),
+    /**
+     * <pre>
+     * 主账号
+     * </pre>
+     *
+     * <code>Main = 1;</code>
+     */
+    Main(1),
+    /**
+     * <pre>
+     * 子账号
+     * </pre>
+     *
+     * <code>SubUser = 2;</code>
+     */
+    SubUser(2),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     * 未知
+     * </pre>
+     *
+     * <code>UnknownAccountType = 0;</code>
+     */
+    public static final int UnknownAccountType_VALUE = 0;
+    /**
+     * <pre>
+     * 主账号
+     * </pre>
+     *
+     * <code>Main = 1;</code>
+     */
+    public static final int Main_VALUE = 1;
+    /**
+     * <pre>
+     * 子账号
+     * </pre>
+     *
+     * <code>SubUser = 2;</code>
+     */
+    public static final int SubUser_VALUE = 2;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumAccountType valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumAccountType forNumber(int value) {
+      switch (value) {
+        case 0: return UnknownAccountType;
+        case 1: return Main;
+        case 2: return SubUser;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumAccountType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumAccountType> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumAccountType>() {
+            public EnumAccountType findValueByNumber(int number) {
+              return EnumAccountType.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(5);
+    }
+
+    private static final EnumAccountType[] VALUES = values();
+
+    public static EnumAccountType valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumAccountType(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumAccountType)
+  }
+
+  /**
+   * <pre>
+   * 消息发送状态
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumSendStatus}
+   */
+  public enum EnumSendStatus
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     * 无状态
+     * </pre>
+     *
+     * <code>NoAction = 0;</code>
+     */
+    NoAction(0),
+    /**
+     * <pre>
+     * 发送中
+     * </pre>
+     *
+     * <code>Sending = 1;</code>
+     */
+    Sending(1),
+    /**
+     * <pre>
+     * 发送成功
+     * </pre>
+     *
+     * <code>SendSuccess = 17;</code>
+     */
+    SendSuccess(17),
+    /**
+     * <pre>
+     * 发送失败
+     * </pre>
+     *
+     * <code>SendError = 16;</code>
+     */
+    SendError(16),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     * 无状态
+     * </pre>
+     *
+     * <code>NoAction = 0;</code>
+     */
+    public static final int NoAction_VALUE = 0;
+    /**
+     * <pre>
+     * 发送中
+     * </pre>
+     *
+     * <code>Sending = 1;</code>
+     */
+    public static final int Sending_VALUE = 1;
+    /**
+     * <pre>
+     * 发送成功
+     * </pre>
+     *
+     * <code>SendSuccess = 17;</code>
+     */
+    public static final int SendSuccess_VALUE = 17;
+    /**
+     * <pre>
+     * 发送失败
+     * </pre>
+     *
+     * <code>SendError = 16;</code>
+     */
+    public static final int SendError_VALUE = 16;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumSendStatus valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumSendStatus forNumber(int value) {
+      switch (value) {
+        case 0: return NoAction;
+        case 1: return Sending;
+        case 17: return SendSuccess;
+        case 16: return SendError;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumSendStatus>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumSendStatus> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumSendStatus>() {
+            public EnumSendStatus findValueByNumber(int number) {
+              return EnumSendStatus.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(6);
+    }
+
+    private static final EnumSendStatus[] VALUES = values();
+
+    public static EnumSendStatus valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumSendStatus(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumSendStatus)
+  }
+
+  /**
+   * <pre>
+   *被强制下线的原因
+   * </pre>
+   *
+   * Protobuf enum {@code Im.Scrm.Ww.Proto.EnumForceOfflineReason}
+   */
+  public enum EnumForceOfflineReason
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <pre>
+     *就是要下线你 
+     * </pre>
+     *
+     * <code>NoReason = 0;</code>
+     */
+    NoReason(0),
+    /**
+     * <pre>
+     *别处登录挤下线了 
+     * </pre>
+     *
+     * <code>TickedByOther = 1;</code>
+     */
+    TickedByOther(1),
+    /**
+     * <pre>
+     * 被重新分配
+     * </pre>
+     *
+     * <code>ByReAlloc = 2;</code>
+     */
+    ByReAlloc(2),
+    /**
+     * <pre>
+     * 服务到期
+     * </pre>
+     *
+     * <code>ServiceExpired = 3;</code>
+     */
+    ServiceExpired(3),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <pre>
+     *就是要下线你 
+     * </pre>
+     *
+     * <code>NoReason = 0;</code>
+     */
+    public static final int NoReason_VALUE = 0;
+    /**
+     * <pre>
+     *别处登录挤下线了 
+     * </pre>
+     *
+     * <code>TickedByOther = 1;</code>
+     */
+    public static final int TickedByOther_VALUE = 1;
+    /**
+     * <pre>
+     * 被重新分配
+     * </pre>
+     *
+     * <code>ByReAlloc = 2;</code>
+     */
+    public static final int ByReAlloc_VALUE = 2;
+    /**
+     * <pre>
+     * 服务到期
+     * </pre>
+     *
+     * <code>ServiceExpired = 3;</code>
+     */
+    public static final int ServiceExpired_VALUE = 3;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static EnumForceOfflineReason valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static EnumForceOfflineReason forNumber(int value) {
+      switch (value) {
+        case 0: return NoReason;
+        case 1: return TickedByOther;
+        case 2: return ByReAlloc;
+        case 3: return ServiceExpired;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<EnumForceOfflineReason>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        EnumForceOfflineReason> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<EnumForceOfflineReason>() {
+            public EnumForceOfflineReason findValueByNumber(int number) {
+              return EnumForceOfflineReason.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.getDescriptor().getEnumTypes().get(7);
+    }
+
+    private static final EnumForceOfflineReason[] VALUES = values();
+
+    public static EnumForceOfflineReason valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private EnumForceOfflineReason(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:Im.Scrm.Ww.Proto.EnumForceOfflineReason)
+  }
+
+  public interface TransportMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TransportMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     *消息Id(发送方内保持自增),请求中传入,响应中传回相同值
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    long getId();
+
+    /**
+     * <pre>
+     *设备通信token
+     * </pre>
+     *
+     * <code>string AccessToken = 2;</code>
+     * @return The accessToken.
+     */
+    java.lang.String getAccessToken();
+    /**
+     * <pre>
+     *设备通信token
+     * </pre>
+     *
+     * <code>string AccessToken = 2;</code>
+     * @return The bytes for accessToken.
+     */
+    com.google.protobuf.ByteString
+        getAccessTokenBytes();
+
+    /**
+     * <pre>
+     *承载的具体消息类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+     * @return The enum numeric value on the wire for msgType.
+     */
+    int getMsgTypeValue();
+    /**
+     * <pre>
+     *承载的具体消息类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+     * @return The msgType.
+     */
+    Im.Scrm.Ww.Proto.WTransport.EnumMsgType getMsgType();
+
+    /**
+     * <pre>
+     *具体的消息数据
+     * </pre>
+     *
+     * <code>.google.protobuf.Any Content = 4;</code>
+     * @return Whether the content field is set.
+     */
+    boolean hasContent();
+    /**
+     * <pre>
+     *具体的消息数据
+     * </pre>
+     *
+     * <code>.google.protobuf.Any Content = 4;</code>
+     * @return The content.
+     */
+    com.google.protobuf.Any getContent();
+    /**
+     * <pre>
+     *具体的消息数据
+     * </pre>
+     *
+     * <code>.google.protobuf.Any Content = 4;</code>
+     */
+    com.google.protobuf.AnyOrBuilder getContentOrBuilder();
+
+    /**
+     * <pre>
+     *如果是针对某个消息的响应,这里写对应请求的id
+     * </pre>
+     *
+     * <code>int64 RefMessageId = 5;</code>
+     * @return The refMessageId.
+     */
+    long getRefMessageId();
+  }
+  /**
+   * <pre>
+   *根传输消息
+   * </pre>
+   *
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TransportMessage}
+   */
+  public  static final class TransportMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TransportMessage)
+      TransportMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TransportMessage.newBuilder() to construct.
+    private TransportMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TransportMessage() {
+      accessToken_ = "";
+      msgType_ = 0;
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TransportMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TransportMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              id_ = input.readInt64();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              accessToken_ = s;
+              break;
+            }
+            case 24: {
+              int rawValue = input.readEnum();
+
+              msgType_ = rawValue;
+              break;
+            }
+            case 34: {
+              com.google.protobuf.Any.Builder subBuilder = null;
+              if (content_ != null) {
+                subBuilder = content_.toBuilder();
+              }
+              content_ = input.readMessage(com.google.protobuf.Any.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(content_);
+                content_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
+            case 40: {
+
+              refMessageId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTransport.internal_static_Im_Scrm_Ww_Proto_TransportMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WTransport.internal_static_Im_Scrm_Ww_Proto_TransportMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WTransport.TransportMessage.class, Im.Scrm.Ww.Proto.WTransport.TransportMessage.Builder.class);
+    }
+
+    public static final int ID_FIELD_NUMBER = 1;
+    private long id_;
+    /**
+     * <pre>
+     *消息Id(发送方内保持自增),请求中传入,响应中传回相同值
+     * </pre>
+     *
+     * <code>int64 Id = 1;</code>
+     * @return The id.
+     */
+    public long getId() {
+      return id_;
+    }
+
+    public static final int ACCESSTOKEN_FIELD_NUMBER = 2;
+    private volatile java.lang.Object accessToken_;
+    /**
+     * <pre>
+     *设备通信token
+     * </pre>
+     *
+     * <code>string AccessToken = 2;</code>
+     * @return The accessToken.
+     */
+    public java.lang.String getAccessToken() {
+      java.lang.Object ref = accessToken_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        accessToken_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     *设备通信token
+     * </pre>
+     *
+     * <code>string AccessToken = 2;</code>
+     * @return The bytes for accessToken.
+     */
+    public com.google.protobuf.ByteString
+        getAccessTokenBytes() {
+      java.lang.Object ref = accessToken_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        accessToken_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int MSGTYPE_FIELD_NUMBER = 3;
+    private int msgType_;
+    /**
+     * <pre>
+     *承载的具体消息类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+     * @return The enum numeric value on the wire for msgType.
+     */
+    public int getMsgTypeValue() {
+      return msgType_;
+    }
+    /**
+     * <pre>
+     *承载的具体消息类型
+     * </pre>
+     *
+     * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+     * @return The msgType.
+     */
+    public Im.Scrm.Ww.Proto.WTransport.EnumMsgType getMsgType() {
+      @SuppressWarnings("deprecation")
+      Im.Scrm.Ww.Proto.WTransport.EnumMsgType result = Im.Scrm.Ww.Proto.WTransport.EnumMsgType.valueOf(msgType_);
+      return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UNRECOGNIZED : result;
+    }
+
+    public static final int CONTENT_FIELD_NUMBER = 4;
+    private com.google.protobuf.Any content_;
+    /**
+     * <pre>
+     *具体的消息数据
+     * </pre>
+     *
+     * <code>.google.protobuf.Any Content = 4;</code>
+     * @return Whether the content field is set.
+     */
+    public boolean hasContent() {
+      return content_ != null;
+    }
+    /**
+     * <pre>
+     *具体的消息数据
+     * </pre>
+     *
+     * <code>.google.protobuf.Any Content = 4;</code>
+     * @return The content.
+     */
+    public com.google.protobuf.Any getContent() {
+      return content_ == null ? com.google.protobuf.Any.getDefaultInstance() : content_;
+    }
+    /**
+     * <pre>
+     *具体的消息数据
+     * </pre>
+     *
+     * <code>.google.protobuf.Any Content = 4;</code>
+     */
+    public com.google.protobuf.AnyOrBuilder getContentOrBuilder() {
+      return getContent();
+    }
+
+    public static final int REFMESSAGEID_FIELD_NUMBER = 5;
+    private long refMessageId_;
+    /**
+     * <pre>
+     *如果是针对某个消息的响应,这里写对应请求的id
+     * </pre>
+     *
+     * <code>int64 RefMessageId = 5;</code>
+     * @return The refMessageId.
+     */
+    public long getRefMessageId() {
+      return refMessageId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (id_ != 0L) {
+        output.writeInt64(1, id_);
+      }
+      if (!getAccessTokenBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, accessToken_);
+      }
+      if (msgType_ != Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UnknownMsg.getNumber()) {
+        output.writeEnum(3, msgType_);
+      }
+      if (content_ != null) {
+        output.writeMessage(4, getContent());
+      }
+      if (refMessageId_ != 0L) {
+        output.writeInt64(5, refMessageId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (id_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, id_);
+      }
+      if (!getAccessTokenBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, accessToken_);
+      }
+      if (msgType_ != Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UnknownMsg.getNumber()) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(3, msgType_);
+      }
+      if (content_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, getContent());
+      }
+      if (refMessageId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(5, refMessageId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WTransport.TransportMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WTransport.TransportMessage other = (Im.Scrm.Ww.Proto.WTransport.TransportMessage) obj;
+
+      if (getId()
+          != other.getId()) return false;
+      if (!getAccessToken()
+          .equals(other.getAccessToken())) return false;
+      if (msgType_ != other.msgType_) return false;
+      if (hasContent() != other.hasContent()) return false;
+      if (hasContent()) {
+        if (!getContent()
+            .equals(other.getContent())) return false;
+      }
+      if (getRefMessageId()
+          != other.getRefMessageId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getId());
+      hash = (37 * hash) + ACCESSTOKEN_FIELD_NUMBER;
+      hash = (53 * hash) + getAccessToken().hashCode();
+      hash = (37 * hash) + MSGTYPE_FIELD_NUMBER;
+      hash = (53 * hash) + msgType_;
+      if (hasContent()) {
+        hash = (37 * hash) + CONTENT_FIELD_NUMBER;
+        hash = (53 * hash) + getContent().hashCode();
+      }
+      hash = (37 * hash) + REFMESSAGEID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefMessageId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WTransport.TransportMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * <pre>
+     *根传输消息
+     * </pre>
+     *
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TransportMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TransportMessage)
+        Im.Scrm.Ww.Proto.WTransport.TransportMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WTransport.internal_static_Im_Scrm_Ww_Proto_TransportMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WTransport.internal_static_Im_Scrm_Ww_Proto_TransportMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WTransport.TransportMessage.class, Im.Scrm.Ww.Proto.WTransport.TransportMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WTransport.TransportMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        id_ = 0L;
+
+        accessToken_ = "";
+
+        msgType_ = 0;
+
+        if (contentBuilder_ == null) {
+          content_ = null;
+        } else {
+          content_ = null;
+          contentBuilder_ = null;
+        }
+        refMessageId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WTransport.internal_static_Im_Scrm_Ww_Proto_TransportMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTransport.TransportMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WTransport.TransportMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTransport.TransportMessage build() {
+        Im.Scrm.Ww.Proto.WTransport.TransportMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTransport.TransportMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WTransport.TransportMessage result = new Im.Scrm.Ww.Proto.WTransport.TransportMessage(this);
+        result.id_ = id_;
+        result.accessToken_ = accessToken_;
+        result.msgType_ = msgType_;
+        if (contentBuilder_ == null) {
+          result.content_ = content_;
+        } else {
+          result.content_ = contentBuilder_.build();
+        }
+        result.refMessageId_ = refMessageId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WTransport.TransportMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WTransport.TransportMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WTransport.TransportMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WTransport.TransportMessage.getDefaultInstance()) return this;
+        if (other.getId() != 0L) {
+          setId(other.getId());
+        }
+        if (!other.getAccessToken().isEmpty()) {
+          accessToken_ = other.accessToken_;
+          onChanged();
+        }
+        if (other.msgType_ != 0) {
+          setMsgTypeValue(other.getMsgTypeValue());
+        }
+        if (other.hasContent()) {
+          mergeContent(other.getContent());
+        }
+        if (other.getRefMessageId() != 0L) {
+          setRefMessageId(other.getRefMessageId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WTransport.TransportMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WTransport.TransportMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long id_ ;
+      /**
+       * <pre>
+       *消息Id(发送方内保持自增),请求中传入,响应中传回相同值
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return The id.
+       */
+      public long getId() {
+        return id_;
+      }
+      /**
+       * <pre>
+       *消息Id(发送方内保持自增),请求中传入,响应中传回相同值
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @param value The id to set.
+       * @return This builder for chaining.
+       */
+      public Builder setId(long value) {
+        
+        id_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *消息Id(发送方内保持自增),请求中传入,响应中传回相同值
+       * </pre>
+       *
+       * <code>int64 Id = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearId() {
+        
+        id_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object accessToken_ = "";
+      /**
+       * <pre>
+       *设备通信token
+       * </pre>
+       *
+       * <code>string AccessToken = 2;</code>
+       * @return The accessToken.
+       */
+      public java.lang.String getAccessToken() {
+        java.lang.Object ref = accessToken_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          accessToken_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       *设备通信token
+       * </pre>
+       *
+       * <code>string AccessToken = 2;</code>
+       * @return The bytes for accessToken.
+       */
+      public com.google.protobuf.ByteString
+          getAccessTokenBytes() {
+        java.lang.Object ref = accessToken_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          accessToken_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       *设备通信token
+       * </pre>
+       *
+       * <code>string AccessToken = 2;</code>
+       * @param value The accessToken to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAccessToken(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        accessToken_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *设备通信token
+       * </pre>
+       *
+       * <code>string AccessToken = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAccessToken() {
+        
+        accessToken_ = getDefaultInstance().getAccessToken();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *设备通信token
+       * </pre>
+       *
+       * <code>string AccessToken = 2;</code>
+       * @param value The bytes for accessToken to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAccessTokenBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        accessToken_ = value;
+        onChanged();
+        return this;
+      }
+
+      private int msgType_ = 0;
+      /**
+       * <pre>
+       *承载的具体消息类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+       * @return The enum numeric value on the wire for msgType.
+       */
+      public int getMsgTypeValue() {
+        return msgType_;
+      }
+      /**
+       * <pre>
+       *承载的具体消息类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+       * @param value The enum numeric value on the wire for msgType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgTypeValue(int value) {
+        msgType_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *承载的具体消息类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+       * @return The msgType.
+       */
+      public Im.Scrm.Ww.Proto.WTransport.EnumMsgType getMsgType() {
+        @SuppressWarnings("deprecation")
+        Im.Scrm.Ww.Proto.WTransport.EnumMsgType result = Im.Scrm.Ww.Proto.WTransport.EnumMsgType.valueOf(msgType_);
+        return result == null ? Im.Scrm.Ww.Proto.WTransport.EnumMsgType.UNRECOGNIZED : result;
+      }
+      /**
+       * <pre>
+       *承载的具体消息类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+       * @param value The msgType to set.
+       * @return This builder for chaining.
+       */
+      public Builder setMsgType(Im.Scrm.Ww.Proto.WTransport.EnumMsgType value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        msgType_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *承载的具体消息类型
+       * </pre>
+       *
+       * <code>.Im.Scrm.Ww.Proto.EnumMsgType MsgType = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearMsgType() {
+        
+        msgType_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private com.google.protobuf.Any content_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> contentBuilder_;
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       * @return Whether the content field is set.
+       */
+      public boolean hasContent() {
+        return contentBuilder_ != null || content_ != null;
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       * @return The content.
+       */
+      public com.google.protobuf.Any getContent() {
+        if (contentBuilder_ == null) {
+          return content_ == null ? com.google.protobuf.Any.getDefaultInstance() : content_;
+        } else {
+          return contentBuilder_.getMessage();
+        }
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      public Builder setContent(com.google.protobuf.Any value) {
+        if (contentBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          content_ = value;
+          onChanged();
+        } else {
+          contentBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      public Builder setContent(
+          com.google.protobuf.Any.Builder builderForValue) {
+        if (contentBuilder_ == null) {
+          content_ = builderForValue.build();
+          onChanged();
+        } else {
+          contentBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      public Builder mergeContent(com.google.protobuf.Any value) {
+        if (contentBuilder_ == null) {
+          if (content_ != null) {
+            content_ =
+              com.google.protobuf.Any.newBuilder(content_).mergeFrom(value).buildPartial();
+          } else {
+            content_ = value;
+          }
+          onChanged();
+        } else {
+          contentBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      public Builder clearContent() {
+        if (contentBuilder_ == null) {
+          content_ = null;
+          onChanged();
+        } else {
+          content_ = null;
+          contentBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      public com.google.protobuf.Any.Builder getContentBuilder() {
+        
+        onChanged();
+        return getContentFieldBuilder().getBuilder();
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      public com.google.protobuf.AnyOrBuilder getContentOrBuilder() {
+        if (contentBuilder_ != null) {
+          return contentBuilder_.getMessageOrBuilder();
+        } else {
+          return content_ == null ?
+              com.google.protobuf.Any.getDefaultInstance() : content_;
+        }
+      }
+      /**
+       * <pre>
+       *具体的消息数据
+       * </pre>
+       *
+       * <code>.google.protobuf.Any Content = 4;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> 
+          getContentFieldBuilder() {
+        if (contentBuilder_ == null) {
+          contentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>(
+                  getContent(),
+                  getParentForChildren(),
+                  isClean());
+          content_ = null;
+        }
+        return contentBuilder_;
+      }
+
+      private long refMessageId_ ;
+      /**
+       * <pre>
+       *如果是针对某个消息的响应,这里写对应请求的id
+       * </pre>
+       *
+       * <code>int64 RefMessageId = 5;</code>
+       * @return The refMessageId.
+       */
+      public long getRefMessageId() {
+        return refMessageId_;
+      }
+      /**
+       * <pre>
+       *如果是针对某个消息的响应,这里写对应请求的id
+       * </pre>
+       *
+       * <code>int64 RefMessageId = 5;</code>
+       * @param value The refMessageId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefMessageId(long value) {
+        
+        refMessageId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *如果是针对某个消息的响应,这里写对应请求的id
+       * </pre>
+       *
+       * <code>int64 RefMessageId = 5;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefMessageId() {
+        
+        refMessageId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TransportMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TransportMessage)
+    private static final Im.Scrm.Ww.Proto.WTransport.TransportMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WTransport.TransportMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WTransport.TransportMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TransportMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TransportMessage>() {
+      @java.lang.Override
+      public TransportMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TransportMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TransportMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TransportMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WTransport.TransportMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TransportMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TransportMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\020WTransport.proto\022\020Im.Scrm.Ww.Proto\032\031go" +
+      "ogle/protobuf/any.proto\"\240\001\n\020TransportMes" +
+      "sage\022\n\n\002Id\030\001 \001(\003\022\023\n\013AccessToken\030\002 \001(\t\022.\n" +
+      "\007MsgType\030\003 \001(\0162\035.Im.Scrm.Ww.Proto.EnumMs" +
+      "gType\022%\n\007Content\030\004 \001(\0132\024.google.protobuf" +
+      ".Any\022\024\n\014RefMessageId\030\005 \001(\003*\200\027\n\013EnumMsgTy" +
+      "pe\022\016\n\nUnknownMsg\020\000\022\021\n\014HeartBeatReq\020\351\007\022\023\n" +
+      "\016MsgReceivedAck\020\352\007\022\n\n\005Error\020\353\007\022\022\n\rDevice" +
+      "AuthReq\020\362\007\022\022\n\rDeviceAuthRsp\020\363\007\022\025\n\020Device" +
+      "ExitNotice\020\364\007\022\036\n\031AccountForceOfflineNoti" +
+      "ce\020\365\007\022\023\n\016RedirectNotice\020\367\007\022\033\n\026UpgradeDev" +
+      "iceAppNotice\020\370\007\022\026\n\021TriggerDeviceInfo\020\371\007\022" +
+      "\025\n\020DeviceAuthResult\020\372\007\022\024\n\017PhoneActionTas" +
+      "k\020\374\007\022\025\n\020ConfigPushNotice\020\206\010\022\022\n\rConfigSet" +
+      "ting\020\207\010\022\023\n\016WwOnlineNotice\020\314\010\022\024\n\017WwOfflin" +
+      "eNotice\020\315\010\022\031\n\024PostDeviceInfoNotice\020\320\010\022\026\n" +
+      "\021ContactPushNotice\020\321\010\022\031\n\024DepartmentPushN" +
+      "otice\020\322\010\022\027\n\022CustomerPushNotice\020\323\010\022\030\n\023Use" +
+      "rLabelPushNotice\020\324\010\022\032\n\025CorporationPushNo" +
+      "tice\020\325\010\022\033\n\026ConversationPushNotice\020\326\010\022\032\n\025" +
+      "NewCustomerPushNotice\020\327\010\022\033\n\026NewCustomerA" +
+      "ddedNotice\020\330\010\022\026\n\021CustomerAddNotice\020\331\010\022\026\n" +
+      "\021CustomerDelNotice\020\332\010\022\033\n\026UserLabelChange" +
+      "dNotice\020\333\010\022\034\n\027DepartmentChangedNotice\020\334\010" +
+      "\022\032\n\025ConversationAddNotice\020\335\010\022\027\n\022WxFriend" +
+      "PushNotice\020\336\010\022\032\n\025PostMessageReadNotice\020\337" +
+      "\010\022\025\n\020FriendTalkNotice\020\340\010\022\027\n\022TalkToFriend" +
+      "Notice\020\341\010\022\025\n\020TaskResultNotice\020\342\010\022!\n\034Talk" +
+      "ToFriendTaskResultNotice\020\343\010\022\035\n\030DownloadF" +
+      "ileResultNotice\020\344\010\022!\n\034PullMyQrCodeTaskRe" +
+      "sultNotice\020\345\010\022\036\n\031ConversationChangedNoti" +
+      "ce\020\346\010\022\031\n\024HistoryMsgPushNotice\020\347\010\022\"\n\035Pull" +
+      "MySnsListTaskResultNotice\020\350\010\022$\n\037PullSnsT" +
+      "askListTaskResultNotice\020\351\010\022\034\n\027PostSnsTas" +
+      "kResultNotice\020\352\010\022\037\n\032SnsCommentTaskResult" +
+      "Notice\020\353\010\022\037\n\032GetSnsDataTaskResultNotice\020" +
+      "\354\010\022\024\n\017SnsNotifyNotice\020\355\010\022$\n\037UserLabelMod" +
+      "ifyTaskResultNotice\020\356\010\022#\n\036GetContactInfo" +
+      "TaskResultNotice\020\357\010\022\037\n\032PhoneStateTaskRes" +
+      "ultNotice\020\360\010\022\034\n\027PhoneStateWarningNotice\020" +
+      "\361\010\022\024\n\017MsgRevokeNotice\020\362\010\022\036\n\031SearchMsgTas" +
+      "kResultNotice\020\363\010\022\021\n\014SnsMsgNotice\020\364\010\022\032\n\025G" +
+      "roupMemberPushNotice\020\365\010\022\035\n\030AddEmojiTaskR" +
+      "esultNotice\020\366\010\022\024\n\017VoiceTextNotice\020\367\010\022\034\n\027" +
+      "CustomerGroupPushNotice\020\376\010\022\031\n\024GroupMembe" +
+      "rAddNotice\020\377\010\022\031\n\024GroupMemberDelNotice\020\200\t" +
+      "\022\033\n\026ConversationInfoNotice\020\201\t\022\035\n\030OneWayC" +
+      "ustomerPushNotice\020\203\t\022\033\n\026TriggerAccountPu" +
+      "shTask\020\260\t\022\033\n\026TriggerContactPushTask\020\261\t\022\034" +
+      "\n\027TriggerCustomerPushTask\020\262\t\022 \n\033TriggerC" +
+      "onversationPushTask\020\263\t\022 \n\033TriggerWechatF" +
+      "riendPushTask\020\264\t\022\036\n\031TriggerHistoryMsgPus" +
+      "hTask\020\265\t\022\033\n\026TriggerMessageReadTask\020\266\t\022\031\n" +
+      "\024TriggerUserLabelTask\020\267\t\022\033\n\026TriggerNewCu" +
+      "stomerTask\020\270\t\022\035\n\030TriggerCustomerGroupTas" +
+      "k\020\271\t\022\025\n\020TalkToFriendTask\020\272\t\022\032\n\025DownloadF" +
+      "ileByUrlTask\020\273\t\022\034\n\027DownloadFileByMsgIdTa" +
+      "sk\020\274\t\022\032\n\025AddCustomerFromWxTask\020\276\t\022\036\n\031Add" +
+      "CustomerFromSearchTask\020\277\t\022\025\n\020PullMyQrCod" +
+      "eTask\020\300\t\022\027\n\022ChatRoomActionTask\020\301\t\022\026\n\021Pul" +
+      "lMySnsListTask\020\302\t\022\030\n\023PullSnsTaskListTask" +
+      "\020\303\t\022\020\n\013PostSnsTask\020\304\t\022\024\n\017PostSnsTaskTask" +
+      "\020\305\t\022\020\n\013SnsLikeTask\020\306\t\022\023\n\016SnsCommentTask\020" +
+      "\307\t\022\017\n\nDelSnsTask\020\310\t\022\026\n\021DelSnsCommentTask" +
+      "\020\311\t\022\023\n\016GetSnsDataTask\020\312\t\022\025\n\020UserLabelDel" +
+      "Task\020\313\t\022\030\n\023UserLabelModifyTask\020\314\t\022\025\n\020Use" +
+      "rLabelSetTask\020\315\t\022\030\n\023AddCustomerByIdTask\020" +
+      "\316\t\022\027\n\022GetContactInfoTask\020\317\t\022\027\n\022AcceptCus" +
+      "tomerTask\020\320\t\022\025\n\020UserSetLabelTask\020\321\t\022\024\n\017S" +
+      "etUserMemoTask\020\322\t\022\023\n\016PhoneStateTask\020\323\t\022\022" +
+      "\n\rMsgRevokeTask\020\324\t\022\022\n\rSearchMsgTask\020\325\t\022\033" +
+      "\n\026AddCustomerByGroupTask\020\326\t\022\023\n\016ForwardMs" +
+      "gTask\020\327\t\022\025\n\020ForwardMultiTask\020\330\t\022\027\n\022GetGr" +
+      "oupMemberTask\020\331\t\022\021\n\014AddEmojiTask\020\332\t\022\027\n\022V" +
+      "oiceTransTextTask\020\333\t\022\030\n\023JoinGroupInviteT" +
+      "ask\020\334\t\022\024\n\017DelCustomerTask\020\335\t\022\031\n\024SendFrie" +
+      "ndVerifyTask\020\336\t\022\034\n\027GetConversationInfoTa" +
+      "sk\020\342\t\022\025\n\020GetExtUserIdTask\020\343\t\022\033\n\026GetExtUs" +
+      "erIdTaskResult\020\344\t\022\023\n\016RunFunCardTask\020\345\t\022\r" +
+      "\n\010DaKaTask\020\347\t*{\n\rEnumErrorCode\022\013\n\007Succes" +
+      "s\020\000\022\014\n\007NoRight\020\351\007\022\021\n\014InvalidParam\020\352\007\022\022\n\r" +
+      "InternalError\020\353\007\022\024\n\017TargetNotOnline\020\354\007\022\022" +
+      "\n\rInfoNotExists\020\355\007*5\n\nEnumGender\022\021\n\rUnkn" +
+      "ownGender\020\000\022\010\n\004Male\020\001\022\n\n\006Female\020\002*\232\003\n\017En" +
+      "umContentType\022\022\n\016UnknownContent\020\000\022\010\n\004Tex" +
+      "t\020\001\022\013\n\007Picture\020\002\022\t\n\005Voice\020\003\022\t\n\005Video\020\004\022\n" +
+      "\n\006System\020\005\022\010\n\004Link\020\006\022\013\n\007LinkExt\020\007\022\010\n\004Fil" +
+      "e\020\010\022\014\n\010NameCard\020\t\022\014\n\010Location\020\n\022\016\n\nLucky" +
+      "Money\020\013\022\016\n\nMoneyTrans\020\014\022\t\n\005WeApp\020\r\022\t\n\005Em" +
+      "oji\020\016\022\016\n\nRoomManage\020\017\022\022\n\016Sys_LuckyMoney\020" +
+      "\020\022\016\n\nRoomSystem\020\021\022\013\n\007BizLink\020\022\022\r\n\tAudioC" +
+      "all\020\023\022\r\n\tVideoCall\020\024\022\r\n\tNotifyMsg\020\025\022\014\n\010Q" +
+      "uoteMsg\020\026\022\016\n\nForwardMsg\020\027\022\r\n\tSnsNotify\020\030" +
+      "\022\r\n\tShiPinHao\020\031\022\016\n\nAppFunCard\020\032\022\r\n\tUnSup" +
+      "port\020c*<\n\017EnumOnlineState\022\020\n\014UnknownStat" +
+      "e\020\000\022\n\n\006Online\020\001\022\013\n\007Offline\020\002*@\n\017EnumAcco" +
+      "untType\022\026\n\022UnknownAccountType\020\000\022\010\n\004Main\020" +
+      "\001\022\013\n\007SubUser\020\002*K\n\016EnumSendStatus\022\014\n\010NoAc" +
+      "tion\020\000\022\013\n\007Sending\020\001\022\017\n\013SendSuccess\020\021\022\r\n\t" +
+      "SendError\020\020*\\\n\026EnumForceOfflineReason\022\014\n" +
+      "\010NoReason\020\000\022\021\n\rTickedByOther\020\001\022\r\n\tByReAl" +
+      "loc\020\002\022\022\n\016ServiceExpired\020\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.protobuf.AnyProto.getDescriptor(),
+        });
+    internal_static_Im_Scrm_Ww_Proto_TransportMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TransportMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TransportMessage_descriptor,
+        new java.lang.String[] { "Id", "AccessToken", "MsgType", "Content", "RefMessageId", });
+    com.google.protobuf.AnyProto.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 976 - 0
src/main/java/Im/Scrm/Ww/Proto/WTriggerHistoryMsgPushTask.java

@@ -0,0 +1,976 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WTriggerHistoryMsgPushTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WTriggerHistoryMsgPushTask {
+  private WTriggerHistoryMsgPushTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface TriggerHistoryMsgPushTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+
+    /**
+     * <pre>
+     * 起始消息remoteId
+     * </pre>
+     *
+     * <code>int64 RefMsgId = 3;</code>
+     * @return The refMsgId.
+     */
+    long getRefMsgId();
+
+    /**
+     * <pre>
+     *会话LocalId
+     * </pre>
+     *
+     * <code>int64 LocalId = 4;</code>
+     * @return The localId.
+     */
+    long getLocalId();
+
+    /**
+     * <pre>
+     * 备用
+     * </pre>
+     *
+     * <code>int32 Flag = 6;</code>
+     * @return The flag.
+     */
+    int getFlag();
+
+    /**
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    long getTaskId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage}
+   */
+  public  static final class TriggerHistoryMsgPushTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage)
+      TriggerHistoryMsgPushTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TriggerHistoryMsgPushTaskMessage.newBuilder() to construct.
+    private TriggerHistoryMsgPushTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TriggerHistoryMsgPushTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TriggerHistoryMsgPushTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TriggerHistoryMsgPushTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            case 24: {
+
+              refMsgId_ = input.readInt64();
+              break;
+            }
+            case 32: {
+
+              localId_ = input.readInt64();
+              break;
+            }
+            case 48: {
+
+              flag_ = input.readInt32();
+              break;
+            }
+            case 56: {
+
+              taskId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.class, Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话RemoteId
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    public static final int REFMSGID_FIELD_NUMBER = 3;
+    private long refMsgId_;
+    /**
+     * <pre>
+     * 起始消息remoteId
+     * </pre>
+     *
+     * <code>int64 RefMsgId = 3;</code>
+     * @return The refMsgId.
+     */
+    public long getRefMsgId() {
+      return refMsgId_;
+    }
+
+    public static final int LOCALID_FIELD_NUMBER = 4;
+    private long localId_;
+    /**
+     * <pre>
+     *会话LocalId
+     * </pre>
+     *
+     * <code>int64 LocalId = 4;</code>
+     * @return The localId.
+     */
+    public long getLocalId() {
+      return localId_;
+    }
+
+    public static final int FLAG_FIELD_NUMBER = 6;
+    private int flag_;
+    /**
+     * <pre>
+     * 备用
+     * </pre>
+     *
+     * <code>int32 Flag = 6;</code>
+     * @return The flag.
+     */
+    public int getFlag() {
+      return flag_;
+    }
+
+    public static final int TASKID_FIELD_NUMBER = 7;
+    private long taskId_;
+    /**
+     * <code>int64 TaskId = 7;</code>
+     * @return The taskId.
+     */
+    public long getTaskId() {
+      return taskId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      if (refMsgId_ != 0L) {
+        output.writeInt64(3, refMsgId_);
+      }
+      if (localId_ != 0L) {
+        output.writeInt64(4, localId_);
+      }
+      if (flag_ != 0) {
+        output.writeInt32(6, flag_);
+      }
+      if (taskId_ != 0L) {
+        output.writeInt64(7, taskId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      if (refMsgId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(3, refMsgId_);
+      }
+      if (localId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(4, localId_);
+      }
+      if (flag_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(6, flag_);
+      }
+      if (taskId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(7, taskId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage other = (Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (getRefMsgId()
+          != other.getRefMsgId()) return false;
+      if (getLocalId()
+          != other.getLocalId()) return false;
+      if (getFlag()
+          != other.getFlag()) return false;
+      if (getTaskId()
+          != other.getTaskId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (37 * hash) + REFMSGID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getRefMsgId());
+      hash = (37 * hash) + LOCALID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getLocalId());
+      hash = (37 * hash) + FLAG_FIELD_NUMBER;
+      hash = (53 * hash) + getFlag();
+      hash = (37 * hash) + TASKID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getTaskId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage)
+        Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.class, Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        refMsgId_ = 0L;
+
+        localId_ = 0L;
+
+        flag_ = 0;
+
+        taskId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage build() {
+        Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage result = new Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        result.refMsgId_ = refMsgId_;
+        result.localId_ = localId_;
+        result.flag_ = flag_;
+        result.taskId_ = taskId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        if (other.getRefMsgId() != 0L) {
+          setRefMsgId(other.getRefMsgId());
+        }
+        if (other.getLocalId() != 0L) {
+          setLocalId(other.getLocalId());
+        }
+        if (other.getFlag() != 0) {
+          setFlag(other.getFlag());
+        }
+        if (other.getTaskId() != 0L) {
+          setTaskId(other.getTaskId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话RemoteId
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long refMsgId_ ;
+      /**
+       * <pre>
+       * 起始消息remoteId
+       * </pre>
+       *
+       * <code>int64 RefMsgId = 3;</code>
+       * @return The refMsgId.
+       */
+      public long getRefMsgId() {
+        return refMsgId_;
+      }
+      /**
+       * <pre>
+       * 起始消息remoteId
+       * </pre>
+       *
+       * <code>int64 RefMsgId = 3;</code>
+       * @param value The refMsgId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setRefMsgId(long value) {
+        
+        refMsgId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 起始消息remoteId
+       * </pre>
+       *
+       * <code>int64 RefMsgId = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearRefMsgId() {
+        
+        refMsgId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long localId_ ;
+      /**
+       * <pre>
+       *会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 4;</code>
+       * @return The localId.
+       */
+      public long getLocalId() {
+        return localId_;
+      }
+      /**
+       * <pre>
+       *会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 4;</code>
+       * @param value The localId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setLocalId(long value) {
+        
+        localId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       *会话LocalId
+       * </pre>
+       *
+       * <code>int64 LocalId = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearLocalId() {
+        
+        localId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private int flag_ ;
+      /**
+       * <pre>
+       * 备用
+       * </pre>
+       *
+       * <code>int32 Flag = 6;</code>
+       * @return The flag.
+       */
+      public int getFlag() {
+        return flag_;
+      }
+      /**
+       * <pre>
+       * 备用
+       * </pre>
+       *
+       * <code>int32 Flag = 6;</code>
+       * @param value The flag to set.
+       * @return This builder for chaining.
+       */
+      public Builder setFlag(int value) {
+        
+        flag_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 备用
+       * </pre>
+       *
+       * <code>int32 Flag = 6;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearFlag() {
+        
+        flag_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private long taskId_ ;
+      /**
+       * <code>int64 TaskId = 7;</code>
+       * @return The taskId.
+       */
+      public long getTaskId() {
+        return taskId_;
+      }
+      /**
+       * <code>int64 TaskId = 7;</code>
+       * @param value The taskId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setTaskId(long value) {
+        
+        taskId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>int64 TaskId = 7;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearTaskId() {
+        
+        taskId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TriggerHistoryMsgPushTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TriggerHistoryMsgPushTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TriggerHistoryMsgPushTaskMessage>() {
+      @java.lang.Override
+      public TriggerHistoryMsgPushTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TriggerHistoryMsgPushTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TriggerHistoryMsgPushTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TriggerHistoryMsgPushTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WTriggerHistoryMsgPushTask.TriggerHistoryMsgPushTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n WTriggerHistoryMsgPushTask.proto\022\020Im.S" +
+      "crm.Ww.Proto\"\201\001\n TriggerHistoryMsgPushTa" +
+      "skMessage\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003\022" +
+      "\020\n\010RefMsgId\030\003 \001(\003\022\017\n\007LocalId\030\004 \001(\003\022\014\n\004Fl" +
+      "ag\030\006 \001(\005\022\016\n\006TaskId\030\007 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TriggerHistoryMsgPushTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", "RefMsgId", "LocalId", "Flag", "TaskId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 644 - 0
src/main/java/Im/Scrm/Ww/Proto/WTriggerMessageReadTask.java

@@ -0,0 +1,644 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WTriggerMessageReadTask.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WTriggerMessageReadTask {
+  private WTriggerMessageReadTask() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface TriggerMessageReadTaskMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 所属wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    long getWxId();
+
+    /**
+     * <pre>
+     * 会话id (注意:不是RemoteId)
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    long getConvId();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage}
+   */
+  public  static final class TriggerMessageReadTaskMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage)
+      TriggerMessageReadTaskMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use TriggerMessageReadTaskMessage.newBuilder() to construct.
+    private TriggerMessageReadTaskMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TriggerMessageReadTaskMessage() {
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new TriggerMessageReadTaskMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TriggerMessageReadTaskMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              wxId_ = input.readInt64();
+              break;
+            }
+            case 16: {
+
+              convId_ = input.readInt64();
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WTriggerMessageReadTask.internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WTriggerMessageReadTask.internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.class, Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private long wxId_;
+    /**
+     * <pre>
+     * 所属wx号
+     * </pre>
+     *
+     * <code>int64 WxId = 1;</code>
+     * @return The wxId.
+     */
+    public long getWxId() {
+      return wxId_;
+    }
+
+    public static final int CONVID_FIELD_NUMBER = 2;
+    private long convId_;
+    /**
+     * <pre>
+     * 会话id (注意:不是RemoteId)
+     * </pre>
+     *
+     * <code>int64 ConvId = 2;</code>
+     * @return The convId.
+     */
+    public long getConvId() {
+      return convId_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (wxId_ != 0L) {
+        output.writeInt64(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        output.writeInt64(2, convId_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (wxId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(1, wxId_);
+      }
+      if (convId_ != 0L) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt64Size(2, convId_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage other = (Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage) obj;
+
+      if (getWxId()
+          != other.getWxId()) return false;
+      if (getConvId()
+          != other.getConvId()) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getWxId());
+      hash = (37 * hash) + CONVID_FIELD_NUMBER;
+      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+          getConvId());
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage)
+        Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WTriggerMessageReadTask.internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WTriggerMessageReadTask.internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.class, Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = 0L;
+
+        convId_ = 0L;
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WTriggerMessageReadTask.internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage build() {
+        Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage result = new Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage(this);
+        result.wxId_ = wxId_;
+        result.convId_ = convId_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage.getDefaultInstance()) return this;
+        if (other.getWxId() != 0L) {
+          setWxId(other.getWxId());
+        }
+        if (other.getConvId() != 0L) {
+          setConvId(other.getConvId());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private long wxId_ ;
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return The wxId.
+       */
+      public long getWxId() {
+        return wxId_;
+      }
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(long value) {
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 所属wx号
+       * </pre>
+       *
+       * <code>int64 WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = 0L;
+        onChanged();
+        return this;
+      }
+
+      private long convId_ ;
+      /**
+       * <pre>
+       * 会话id (注意:不是RemoteId)
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return The convId.
+       */
+      public long getConvId() {
+        return convId_;
+      }
+      /**
+       * <pre>
+       * 会话id (注意:不是RemoteId)
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @param value The convId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setConvId(long value) {
+        
+        convId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 会话id (注意:不是RemoteId)
+       * </pre>
+       *
+       * <code>int64 ConvId = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearConvId() {
+        
+        convId_ = 0L;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.TriggerMessageReadTaskMessage)
+    private static final Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<TriggerMessageReadTaskMessage>
+        PARSER = new com.google.protobuf.AbstractParser<TriggerMessageReadTaskMessage>() {
+      @java.lang.Override
+      public TriggerMessageReadTaskMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new TriggerMessageReadTaskMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<TriggerMessageReadTaskMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<TriggerMessageReadTaskMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WTriggerMessageReadTask.TriggerMessageReadTaskMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WTriggerMessageReadTask.proto\022\020Im.Scrm" +
+      ".Ww.Proto\"=\n\035TriggerMessageReadTaskMessa" +
+      "ge\022\014\n\004WxId\030\001 \001(\003\022\016\n\006ConvId\030\002 \001(\003b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_TriggerMessageReadTaskMessage_descriptor,
+        new java.lang.String[] { "WxId", "ConvId", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

+ 2206 - 0
src/main/java/Im/Scrm/Ww/Proto/WUpgradeDeviceAppNotice.java

@@ -0,0 +1,2206 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: WUpgradeDeviceAppNotice.proto
+
+package Im.Scrm.Ww.Proto;
+
+public final class WUpgradeDeviceAppNotice {
+  private WUpgradeDeviceAppNotice() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface DeviceAppUpgradeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <pre>
+     * 版本号 
+     * </pre>
+     *
+     * <code>int32 VerNumber = 1;</code>
+     * @return The verNumber.
+     */
+    int getVerNumber();
+
+    /**
+     * <pre>
+     * 版本名称
+     * </pre>
+     *
+     * <code>string Version = 2;</code>
+     * @return The version.
+     */
+    java.lang.String getVersion();
+    /**
+     * <pre>
+     * 版本名称
+     * </pre>
+     *
+     * <code>string Version = 2;</code>
+     * @return The bytes for version.
+     */
+    com.google.protobuf.ByteString
+        getVersionBytes();
+
+    /**
+     * <pre>
+     * 包名称
+     * </pre>
+     *
+     * <code>string PackageName = 3;</code>
+     * @return The packageName.
+     */
+    java.lang.String getPackageName();
+    /**
+     * <pre>
+     * 包名称
+     * </pre>
+     *
+     * <code>string PackageName = 3;</code>
+     * @return The bytes for packageName.
+     */
+    com.google.protobuf.ByteString
+        getPackageNameBytes();
+
+    /**
+     * <pre>
+     * 软件包地址
+     * </pre>
+     *
+     * <code>string PackageUrl = 4;</code>
+     * @return The packageUrl.
+     */
+    java.lang.String getPackageUrl();
+    /**
+     * <pre>
+     * 软件包地址
+     * </pre>
+     *
+     * <code>string PackageUrl = 4;</code>
+     * @return The bytes for packageUrl.
+     */
+    com.google.protobuf.ByteString
+        getPackageUrlBytes();
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage}
+   */
+  public  static final class DeviceAppUpgradeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage)
+      DeviceAppUpgradeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use DeviceAppUpgradeMessage.newBuilder() to construct.
+    private DeviceAppUpgradeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private DeviceAppUpgradeMessage() {
+      version_ = "";
+      packageName_ = "";
+      packageUrl_ = "";
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new DeviceAppUpgradeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private DeviceAppUpgradeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 8: {
+
+              verNumber_ = input.readInt32();
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              version_ = s;
+              break;
+            }
+            case 26: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              packageName_ = s;
+              break;
+            }
+            case 34: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              packageUrl_ = s;
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.class, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder.class);
+    }
+
+    public static final int VERNUMBER_FIELD_NUMBER = 1;
+    private int verNumber_;
+    /**
+     * <pre>
+     * 版本号 
+     * </pre>
+     *
+     * <code>int32 VerNumber = 1;</code>
+     * @return The verNumber.
+     */
+    public int getVerNumber() {
+      return verNumber_;
+    }
+
+    public static final int VERSION_FIELD_NUMBER = 2;
+    private volatile java.lang.Object version_;
+    /**
+     * <pre>
+     * 版本名称
+     * </pre>
+     *
+     * <code>string Version = 2;</code>
+     * @return The version.
+     */
+    public java.lang.String getVersion() {
+      java.lang.Object ref = version_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        version_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 版本名称
+     * </pre>
+     *
+     * <code>string Version = 2;</code>
+     * @return The bytes for version.
+     */
+    public com.google.protobuf.ByteString
+        getVersionBytes() {
+      java.lang.Object ref = version_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        version_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int PACKAGENAME_FIELD_NUMBER = 3;
+    private volatile java.lang.Object packageName_;
+    /**
+     * <pre>
+     * 包名称
+     * </pre>
+     *
+     * <code>string PackageName = 3;</code>
+     * @return The packageName.
+     */
+    public java.lang.String getPackageName() {
+      java.lang.Object ref = packageName_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        packageName_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 包名称
+     * </pre>
+     *
+     * <code>string PackageName = 3;</code>
+     * @return The bytes for packageName.
+     */
+    public com.google.protobuf.ByteString
+        getPackageNameBytes() {
+      java.lang.Object ref = packageName_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        packageName_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int PACKAGEURL_FIELD_NUMBER = 4;
+    private volatile java.lang.Object packageUrl_;
+    /**
+     * <pre>
+     * 软件包地址
+     * </pre>
+     *
+     * <code>string PackageUrl = 4;</code>
+     * @return The packageUrl.
+     */
+    public java.lang.String getPackageUrl() {
+      java.lang.Object ref = packageUrl_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        packageUrl_ = s;
+        return s;
+      }
+    }
+    /**
+     * <pre>
+     * 软件包地址
+     * </pre>
+     *
+     * <code>string PackageUrl = 4;</code>
+     * @return The bytes for packageUrl.
+     */
+    public com.google.protobuf.ByteString
+        getPackageUrlBytes() {
+      java.lang.Object ref = packageUrl_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        packageUrl_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (verNumber_ != 0) {
+        output.writeInt32(1, verNumber_);
+      }
+      if (!getVersionBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
+      }
+      if (!getPackageNameBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, packageName_);
+      }
+      if (!getPackageUrlBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, packageUrl_);
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (verNumber_ != 0) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(1, verNumber_);
+      }
+      if (!getVersionBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
+      }
+      if (!getPackageNameBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, packageName_);
+      }
+      if (!getPackageUrlBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, packageUrl_);
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage other = (Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage) obj;
+
+      if (getVerNumber()
+          != other.getVerNumber()) return false;
+      if (!getVersion()
+          .equals(other.getVersion())) return false;
+      if (!getPackageName()
+          .equals(other.getPackageName())) return false;
+      if (!getPackageUrl()
+          .equals(other.getPackageUrl())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + VERNUMBER_FIELD_NUMBER;
+      hash = (53 * hash) + getVerNumber();
+      hash = (37 * hash) + VERSION_FIELD_NUMBER;
+      hash = (53 * hash) + getVersion().hashCode();
+      hash = (37 * hash) + PACKAGENAME_FIELD_NUMBER;
+      hash = (53 * hash) + getPackageName().hashCode();
+      hash = (37 * hash) + PACKAGEURL_FIELD_NUMBER;
+      hash = (53 * hash) + getPackageUrl().hashCode();
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage)
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.class, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        verNumber_ = 0;
+
+        version_ = "";
+
+        packageName_ = "";
+
+        packageUrl_ = "";
+
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage build() {
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage result = new Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage(this);
+        result.verNumber_ = verNumber_;
+        result.version_ = version_;
+        result.packageName_ = packageName_;
+        result.packageUrl_ = packageUrl_;
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.getDefaultInstance()) return this;
+        if (other.getVerNumber() != 0) {
+          setVerNumber(other.getVerNumber());
+        }
+        if (!other.getVersion().isEmpty()) {
+          version_ = other.version_;
+          onChanged();
+        }
+        if (!other.getPackageName().isEmpty()) {
+          packageName_ = other.packageName_;
+          onChanged();
+        }
+        if (!other.getPackageUrl().isEmpty()) {
+          packageUrl_ = other.packageUrl_;
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      private int verNumber_ ;
+      /**
+       * <pre>
+       * 版本号 
+       * </pre>
+       *
+       * <code>int32 VerNumber = 1;</code>
+       * @return The verNumber.
+       */
+      public int getVerNumber() {
+        return verNumber_;
+      }
+      /**
+       * <pre>
+       * 版本号 
+       * </pre>
+       *
+       * <code>int32 VerNumber = 1;</code>
+       * @param value The verNumber to set.
+       * @return This builder for chaining.
+       */
+      public Builder setVerNumber(int value) {
+        
+        verNumber_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 版本号 
+       * </pre>
+       *
+       * <code>int32 VerNumber = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearVerNumber() {
+        
+        verNumber_ = 0;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object version_ = "";
+      /**
+       * <pre>
+       * 版本名称
+       * </pre>
+       *
+       * <code>string Version = 2;</code>
+       * @return The version.
+       */
+      public java.lang.String getVersion() {
+        java.lang.Object ref = version_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          version_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 版本名称
+       * </pre>
+       *
+       * <code>string Version = 2;</code>
+       * @return The bytes for version.
+       */
+      public com.google.protobuf.ByteString
+          getVersionBytes() {
+        java.lang.Object ref = version_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          version_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 版本名称
+       * </pre>
+       *
+       * <code>string Version = 2;</code>
+       * @param value The version to set.
+       * @return This builder for chaining.
+       */
+      public Builder setVersion(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        version_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 版本名称
+       * </pre>
+       *
+       * <code>string Version = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearVersion() {
+        
+        version_ = getDefaultInstance().getVersion();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 版本名称
+       * </pre>
+       *
+       * <code>string Version = 2;</code>
+       * @param value The bytes for version to set.
+       * @return This builder for chaining.
+       */
+      public Builder setVersionBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        version_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object packageName_ = "";
+      /**
+       * <pre>
+       * 包名称
+       * </pre>
+       *
+       * <code>string PackageName = 3;</code>
+       * @return The packageName.
+       */
+      public java.lang.String getPackageName() {
+        java.lang.Object ref = packageName_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          packageName_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 包名称
+       * </pre>
+       *
+       * <code>string PackageName = 3;</code>
+       * @return The bytes for packageName.
+       */
+      public com.google.protobuf.ByteString
+          getPackageNameBytes() {
+        java.lang.Object ref = packageName_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          packageName_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 包名称
+       * </pre>
+       *
+       * <code>string PackageName = 3;</code>
+       * @param value The packageName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPackageName(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        packageName_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 包名称
+       * </pre>
+       *
+       * <code>string PackageName = 3;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPackageName() {
+        
+        packageName_ = getDefaultInstance().getPackageName();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 包名称
+       * </pre>
+       *
+       * <code>string PackageName = 3;</code>
+       * @param value The bytes for packageName to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPackageNameBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        packageName_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object packageUrl_ = "";
+      /**
+       * <pre>
+       * 软件包地址
+       * </pre>
+       *
+       * <code>string PackageUrl = 4;</code>
+       * @return The packageUrl.
+       */
+      public java.lang.String getPackageUrl() {
+        java.lang.Object ref = packageUrl_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          packageUrl_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 软件包地址
+       * </pre>
+       *
+       * <code>string PackageUrl = 4;</code>
+       * @return The bytes for packageUrl.
+       */
+      public com.google.protobuf.ByteString
+          getPackageUrlBytes() {
+        java.lang.Object ref = packageUrl_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          packageUrl_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <pre>
+       * 软件包地址
+       * </pre>
+       *
+       * <code>string PackageUrl = 4;</code>
+       * @param value The packageUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPackageUrl(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        packageUrl_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 软件包地址
+       * </pre>
+       *
+       * <code>string PackageUrl = 4;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearPackageUrl() {
+        
+        packageUrl_ = getDefaultInstance().getPackageUrl();
+        onChanged();
+        return this;
+      }
+      /**
+       * <pre>
+       * 软件包地址
+       * </pre>
+       *
+       * <code>string PackageUrl = 4;</code>
+       * @param value The bytes for packageUrl to set.
+       * @return This builder for chaining.
+       */
+      public Builder setPackageUrlBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        packageUrl_ = value;
+        onChanged();
+        return this;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage)
+    private static final Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<DeviceAppUpgradeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<DeviceAppUpgradeMessage>() {
+      @java.lang.Override
+      public DeviceAppUpgradeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new DeviceAppUpgradeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<DeviceAppUpgradeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<DeviceAppUpgradeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface UpgradeDeviceAppNoticeMessageOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage)
+      com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>string WxId = 1;</code>
+     * @return The wxId.
+     */
+    java.lang.String getWxId();
+    /**
+     * <code>string WxId = 1;</code>
+     * @return The bytes for wxId.
+     */
+    com.google.protobuf.ByteString
+        getWxIdBytes();
+
+    /**
+     * <code>string IMEI = 2;</code>
+     * @return The iMEI.
+     */
+    java.lang.String getIMEI();
+    /**
+     * <code>string IMEI = 2;</code>
+     * @return The bytes for iMEI.
+     */
+    com.google.protobuf.ByteString
+        getIMEIBytes();
+
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    java.util.List<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage> 
+        getAppInfosList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage getAppInfos(int index);
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    int getAppInfosCount();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    java.util.List<? extends Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder> 
+        getAppInfosOrBuilderList();
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder getAppInfosOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage}
+   */
+  public  static final class UpgradeDeviceAppNoticeMessage extends
+      com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage)
+      UpgradeDeviceAppNoticeMessageOrBuilder {
+  private static final long serialVersionUID = 0L;
+    // Use UpgradeDeviceAppNoticeMessage.newBuilder() to construct.
+    private UpgradeDeviceAppNoticeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private UpgradeDeviceAppNoticeMessage() {
+      wxId_ = "";
+      iMEI_ = "";
+      appInfos_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    @SuppressWarnings({"unused"})
+    protected java.lang.Object newInstance(
+        UnusedPrivateParameter unused) {
+      return new UpgradeDeviceAppNoticeMessage();
+    }
+
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private UpgradeDeviceAppNoticeMessage(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      if (extensionRegistry == null) {
+        throw new java.lang.NullPointerException();
+      }
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            case 10: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              wxId_ = s;
+              break;
+            }
+            case 18: {
+              java.lang.String s = input.readStringRequireUtf8();
+
+              iMEI_ = s;
+              break;
+            }
+            case 26: {
+              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+                appInfos_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              appInfos_.add(
+                  input.readMessage(Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.parser(), extensionRegistry));
+              break;
+            }
+            default: {
+              if (!parseUnknownField(
+                  input, unknownFields, extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) != 0)) {
+          appInfos_ = java.util.Collections.unmodifiableList(appInfos_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.class, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.Builder.class);
+    }
+
+    public static final int WXID_FIELD_NUMBER = 1;
+    private volatile java.lang.Object wxId_;
+    /**
+     * <code>string WxId = 1;</code>
+     * @return The wxId.
+     */
+    public java.lang.String getWxId() {
+      java.lang.Object ref = wxId_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        wxId_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string WxId = 1;</code>
+     * @return The bytes for wxId.
+     */
+    public com.google.protobuf.ByteString
+        getWxIdBytes() {
+      java.lang.Object ref = wxId_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        wxId_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int IMEI_FIELD_NUMBER = 2;
+    private volatile java.lang.Object iMEI_;
+    /**
+     * <code>string IMEI = 2;</code>
+     * @return The iMEI.
+     */
+    public java.lang.String getIMEI() {
+      java.lang.Object ref = iMEI_;
+      if (ref instanceof java.lang.String) {
+        return (java.lang.String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        iMEI_ = s;
+        return s;
+      }
+    }
+    /**
+     * <code>string IMEI = 2;</code>
+     * @return The bytes for iMEI.
+     */
+    public com.google.protobuf.ByteString
+        getIMEIBytes() {
+      java.lang.Object ref = iMEI_;
+      if (ref instanceof java.lang.String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        iMEI_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+
+    public static final int APPINFOS_FIELD_NUMBER = 3;
+    private java.util.List<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage> appInfos_;
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    public java.util.List<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage> getAppInfosList() {
+      return appInfos_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    public java.util.List<? extends Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder> 
+        getAppInfosOrBuilderList() {
+      return appInfos_;
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    public int getAppInfosCount() {
+      return appInfos_.size();
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage getAppInfos(int index) {
+      return appInfos_.get(index);
+    }
+    /**
+     * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+     */
+    public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder getAppInfosOrBuilder(
+        int index) {
+      return appInfos_.get(index);
+    }
+
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    @java.lang.Override
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (!getWxIdBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, wxId_);
+      }
+      if (!getIMEIBytes().isEmpty()) {
+        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, iMEI_);
+      }
+      for (int i = 0; i < appInfos_.size(); i++) {
+        output.writeMessage(3, appInfos_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (!getWxIdBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, wxId_);
+      }
+      if (!getIMEIBytes().isEmpty()) {
+        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, iMEI_);
+      }
+      for (int i = 0; i < appInfos_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, appInfos_.get(i));
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage)) {
+        return super.equals(obj);
+      }
+      Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage other = (Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage) obj;
+
+      if (!getWxId()
+          .equals(other.getWxId())) return false;
+      if (!getIMEI()
+          .equals(other.getIMEI())) return false;
+      if (!getAppInfosList()
+          .equals(other.getAppInfosList())) return false;
+      if (!unknownFields.equals(other.unknownFields)) return false;
+      return true;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + WXID_FIELD_NUMBER;
+      hash = (53 * hash) + getWxId().hashCode();
+      hash = (37 * hash) + IMEI_FIELD_NUMBER;
+      hash = (53 * hash) + getIMEI().hashCode();
+      if (getAppInfosCount() > 0) {
+        hash = (37 * hash) + APPINFOS_FIELD_NUMBER;
+        hash = (53 * hash) + getAppInfosList().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        java.nio.ByteBuffer data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        java.nio.ByteBuffer data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    @java.lang.Override
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    @java.lang.Override
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage)
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.class, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.Builder.class);
+      }
+
+      // Construct using Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getAppInfosFieldBuilder();
+        }
+      }
+      @java.lang.Override
+      public Builder clear() {
+        super.clear();
+        wxId_ = "";
+
+        iMEI_ = "";
+
+        if (appInfosBuilder_ == null) {
+          appInfos_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          appInfosBuilder_.clear();
+        }
+        return this;
+      }
+
+      @java.lang.Override
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_descriptor;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage getDefaultInstanceForType() {
+        return Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.getDefaultInstance();
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage build() {
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      @java.lang.Override
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage buildPartial() {
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage result = new Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage(this);
+        int from_bitField0_ = bitField0_;
+        result.wxId_ = wxId_;
+        result.iMEI_ = iMEI_;
+        if (appInfosBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) != 0)) {
+            appInfos_ = java.util.Collections.unmodifiableList(appInfos_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.appInfos_ = appInfos_;
+        } else {
+          result.appInfos_ = appInfosBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
+      }
+      @java.lang.Override
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage) {
+          return mergeFrom((Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage other) {
+        if (other == Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage.getDefaultInstance()) return this;
+        if (!other.getWxId().isEmpty()) {
+          wxId_ = other.wxId_;
+          onChanged();
+        }
+        if (!other.getIMEI().isEmpty()) {
+          iMEI_ = other.iMEI_;
+          onChanged();
+        }
+        if (appInfosBuilder_ == null) {
+          if (!other.appInfos_.isEmpty()) {
+            if (appInfos_.isEmpty()) {
+              appInfos_ = other.appInfos_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureAppInfosIsMutable();
+              appInfos_.addAll(other.appInfos_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.appInfos_.isEmpty()) {
+            if (appInfosBuilder_.isEmpty()) {
+              appInfosBuilder_.dispose();
+              appInfosBuilder_ = null;
+              appInfos_ = other.appInfos_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              appInfosBuilder_ = 
+                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+                   getAppInfosFieldBuilder() : null;
+            } else {
+              appInfosBuilder_.addAllMessages(other.appInfos_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      @java.lang.Override
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private java.lang.Object wxId_ = "";
+      /**
+       * <code>string WxId = 1;</code>
+       * @return The wxId.
+       */
+      public java.lang.String getWxId() {
+        java.lang.Object ref = wxId_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          wxId_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string WxId = 1;</code>
+       * @return The bytes for wxId.
+       */
+      public com.google.protobuf.ByteString
+          getWxIdBytes() {
+        java.lang.Object ref = wxId_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          wxId_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string WxId = 1;</code>
+       * @param value The wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxId(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string WxId = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearWxId() {
+        
+        wxId_ = getDefaultInstance().getWxId();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string WxId = 1;</code>
+       * @param value The bytes for wxId to set.
+       * @return This builder for chaining.
+       */
+      public Builder setWxIdBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        wxId_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.lang.Object iMEI_ = "";
+      /**
+       * <code>string IMEI = 2;</code>
+       * @return The iMEI.
+       */
+      public java.lang.String getIMEI() {
+        java.lang.Object ref = iMEI_;
+        if (!(ref instanceof java.lang.String)) {
+          com.google.protobuf.ByteString bs =
+              (com.google.protobuf.ByteString) ref;
+          java.lang.String s = bs.toStringUtf8();
+          iMEI_ = s;
+          return s;
+        } else {
+          return (java.lang.String) ref;
+        }
+      }
+      /**
+       * <code>string IMEI = 2;</code>
+       * @return The bytes for iMEI.
+       */
+      public com.google.protobuf.ByteString
+          getIMEIBytes() {
+        java.lang.Object ref = iMEI_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8(
+                  (java.lang.String) ref);
+          iMEI_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
+      /**
+       * <code>string IMEI = 2;</code>
+       * @param value The iMEI to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMEI(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  
+        iMEI_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string IMEI = 2;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearIMEI() {
+        
+        iMEI_ = getDefaultInstance().getIMEI();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>string IMEI = 2;</code>
+       * @param value The bytes for iMEI to set.
+       * @return This builder for chaining.
+       */
+      public Builder setIMEIBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+        
+        iMEI_ = value;
+        onChanged();
+        return this;
+      }
+
+      private java.util.List<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage> appInfos_ =
+        java.util.Collections.emptyList();
+      private void ensureAppInfosIsMutable() {
+        if (!((bitField0_ & 0x00000001) != 0)) {
+          appInfos_ = new java.util.ArrayList<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage>(appInfos_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder> appInfosBuilder_;
+
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage> getAppInfosList() {
+        if (appInfosBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(appInfos_);
+        } else {
+          return appInfosBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public int getAppInfosCount() {
+        if (appInfosBuilder_ == null) {
+          return appInfos_.size();
+        } else {
+          return appInfosBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage getAppInfos(int index) {
+        if (appInfosBuilder_ == null) {
+          return appInfos_.get(index);
+        } else {
+          return appInfosBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder setAppInfos(
+          int index, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage value) {
+        if (appInfosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAppInfosIsMutable();
+          appInfos_.set(index, value);
+          onChanged();
+        } else {
+          appInfosBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder setAppInfos(
+          int index, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder builderForValue) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          appInfosBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder addAppInfos(Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage value) {
+        if (appInfosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAppInfosIsMutable();
+          appInfos_.add(value);
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder addAppInfos(
+          int index, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage value) {
+        if (appInfosBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureAppInfosIsMutable();
+          appInfos_.add(index, value);
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder addAppInfos(
+          Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder builderForValue) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.add(builderForValue.build());
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder addAppInfos(
+          int index, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder builderForValue) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          appInfosBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder addAllAppInfos(
+          java.lang.Iterable<? extends Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage> values) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          com.google.protobuf.AbstractMessageLite.Builder.addAll(
+              values, appInfos_);
+          onChanged();
+        } else {
+          appInfosBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder clearAppInfos() {
+        if (appInfosBuilder_ == null) {
+          appInfos_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          appInfosBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Builder removeAppInfos(int index) {
+        if (appInfosBuilder_ == null) {
+          ensureAppInfosIsMutable();
+          appInfos_.remove(index);
+          onChanged();
+        } else {
+          appInfosBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder getAppInfosBuilder(
+          int index) {
+        return getAppInfosFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder getAppInfosOrBuilder(
+          int index) {
+        if (appInfosBuilder_ == null) {
+          return appInfos_.get(index);  } else {
+          return appInfosBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public java.util.List<? extends Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder> 
+           getAppInfosOrBuilderList() {
+        if (appInfosBuilder_ != null) {
+          return appInfosBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(appInfos_);
+        }
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder addAppInfosBuilder() {
+        return getAppInfosFieldBuilder().addBuilder(
+            Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder addAppInfosBuilder(
+          int index) {
+        return getAppInfosFieldBuilder().addBuilder(
+            index, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .Im.Scrm.Ww.Proto.DeviceAppUpgradeMessage AppInfos = 3;</code>
+       */
+      public java.util.List<Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder> 
+           getAppInfosBuilderList() {
+        return getAppInfosFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilderV3<
+          Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder> 
+          getAppInfosFieldBuilder() {
+        if (appInfosBuilder_ == null) {
+          appInfosBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+              Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessage.Builder, Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.DeviceAppUpgradeMessageOrBuilder>(
+                  appInfos_,
+                  ((bitField0_ & 0x00000001) != 0),
+                  getParentForChildren(),
+                  isClean());
+          appInfos_ = null;
+        }
+        return appInfosBuilder_;
+      }
+      @java.lang.Override
+      public final Builder setUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage)
+    }
+
+    // @@protoc_insertion_point(class_scope:Im.Scrm.Ww.Proto.UpgradeDeviceAppNoticeMessage)
+    private static final Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage();
+    }
+
+    public static Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    private static final com.google.protobuf.Parser<UpgradeDeviceAppNoticeMessage>
+        PARSER = new com.google.protobuf.AbstractParser<UpgradeDeviceAppNoticeMessage>() {
+      @java.lang.Override
+      public UpgradeDeviceAppNoticeMessage parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new UpgradeDeviceAppNoticeMessage(input, extensionRegistry);
+      }
+    };
+
+    public static com.google.protobuf.Parser<UpgradeDeviceAppNoticeMessage> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<UpgradeDeviceAppNoticeMessage> getParserForType() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public Im.Scrm.Ww.Proto.WUpgradeDeviceAppNotice.UpgradeDeviceAppNoticeMessage getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_fieldAccessorTable;
+  private static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_descriptor;
+  private static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    java.lang.String[] descriptorData = {
+      "\n\035WUpgradeDeviceAppNotice.proto\022\020Im.Scrm" +
+      ".Ww.Proto\"f\n\027DeviceAppUpgradeMessage\022\021\n\t" +
+      "VerNumber\030\001 \001(\005\022\017\n\007Version\030\002 \001(\t\022\023\n\013Pack" +
+      "ageName\030\003 \001(\t\022\022\n\nPackageUrl\030\004 \001(\t\"x\n\035Upg" +
+      "radeDeviceAppNoticeMessage\022\014\n\004WxId\030\001 \001(\t" +
+      "\022\014\n\004IMEI\030\002 \001(\t\022;\n\010AppInfos\030\003 \003(\0132).Im.Sc" +
+      "rm.Ww.Proto.DeviceAppUpgradeMessageb\006pro" +
+      "to3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+        });
+    internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_DeviceAppUpgradeMessage_descriptor,
+        new java.lang.String[] { "VerNumber", "Version", "PackageName", "PackageUrl", });
+    internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Im_Scrm_Ww_Proto_UpgradeDeviceAppNoticeMessage_descriptor,
+        new java.lang.String[] { "WxId", "IMEI", "AppInfos", });
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}

Some files were not shown because too many files changed in this diff