@java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  int tmpRaw = input.readEnum();
                  org.jetbrains.jps.javac.rpc.JavacRemoteProto.Message.Request.Type tmpValue =
                      org.jetbrains.jps.javac.rpc.JavacRemoteProto.Message.Request.Type.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(1, tmpRaw);
                  } else {
                    requestType_ = tmpRaw;
                    bitField0_ |= 0x00000001;
                  }
                  break;
                } // case 8
                case 18: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensureOptionIsMutable();
                  option_.add(bs);
                  break;
                } // case 18
                case 26: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensureFileIsMutable();
                  file_.add(bs);
                  break;
                } // case 26
                case 34: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensurePlatformClasspathIsMutable();
                  platformClasspath_.add(bs);
                  break;
                } // case 34
                case 42: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensureClasspathIsMutable();
                  classpath_.add(bs);
                  break;
                } // case 42
                case 50: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensureSourcepathIsMutable();
                  sourcepath_.add(bs);
                  break;
                } // case 50
                case 58: {
                  org.jetbrains.jps.javac.rpc.JavacRemoteProto.Message.Request.OutputGroup m =
                      input.readMessage(
                          org.jetbrains.jps.javac.rpc.JavacRemoteProto.Message.Request.OutputGroup.PARSER,
                          extensionRegistry);
                  if (outputBuilder_ == null) {
                    ensureOutputIsMutable();
                    output_.add(m);
                  } else {
                    outputBuilder_.addMessage(m);
                  }
                  break;
                } // case 58
                case 66: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensureModulePathIsMutable();
                  modulePath_.add(bs);
                  break;
                } // case 66
                case 74: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  ensureUpgradeModulePathIsMutable();
                  upgradeModulePath_.add(bs);
                  break;
                } // case 74
                case 82: {
                  com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                  moduleNames__ = input.readMessage(
                      ModuleNamesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                  internalGetMutableModuleNames().getMutableMap().put(
                      moduleNames__.getKey(), moduleNames__.getValue());
                  bitField0_ |= 0x00000200;
                  break;
                } // case 82
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
@java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)