// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: io/grpc/testing/integration/messages.proto

package io.grpc.testing.integration;

public final class Messages {
  private Messages() {}
  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>
   * DEPRECATED, don't use. To be removed shortly.
   * The type of payload that should be returned.
   * </pre>
   *
   * Protobuf enum {@code grpc.testing.PayloadType}
   */
  public enum PayloadType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <pre>
     * Compressable text format.
     * </pre>
     *
     * <code>COMPRESSABLE = 0;</code>
     */
    COMPRESSABLE(0),
    /**
     * <pre>
     * Uncompressable binary format.
     * </pre>
     *
     * <code>UNCOMPRESSABLE = 1;</code>
     */
    UNCOMPRESSABLE(1),
    /**
     * <pre>
     * Randomly chosen from all other formats defined in this enum.
     * </pre>
     *
     * <code>RANDOM = 2;</code>
     */
    RANDOM(2),
    UNRECOGNIZED(-1),
    ;

    /**
     * <pre>
     * Compressable text format.
     * </pre>
     *
     * <code>COMPRESSABLE = 0;</code>
     */
    public static final int COMPRESSABLE_VALUE = 0;
    /**
     * <pre>
     * Uncompressable binary format.
     * </pre>
     *
     * <code>UNCOMPRESSABLE = 1;</code>
     */
    public static final int UNCOMPRESSABLE_VALUE = 1;
    /**
     * <pre>
     * Randomly chosen from all other formats defined in this enum.
     * </pre>
     *
     * <code>RANDOM = 2;</code>
     */
    public static final int RANDOM_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;
    }

    /**
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static PayloadType valueOf(int value) {
      return forNumber(value);
    }

    public static PayloadType forNumber(int value) {
      switch (value) {
        case 0: return COMPRESSABLE;
        case 1: return UNCOMPRESSABLE;
        case 2: return RANDOM;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PayloadType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PayloadType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PayloadType>() {
            public PayloadType findValueByNumber(int number) {
              return PayloadType.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 io.grpc.testing.integration.Messages.getDescriptor().getEnumTypes().get(0);
    }

    private static final PayloadType[] VALUES = values();

    public static PayloadType 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 PayloadType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:grpc.testing.PayloadType)
  }

  public interface PayloadOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.Payload)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * The type of data in body.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType type = 1;</code>
     */
    int getTypeValue();
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * The type of data in body.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType type = 1;</code>
     */
    io.grpc.testing.integration.Messages.PayloadType getType();

    /**
     * <pre>
     * Primary contents of payload.
     * </pre>
     *
     * <code>bytes body = 2;</code>
     */
    com.google.protobuf.ByteString getBody();
  }
  /**
   * <pre>
   * A block of data, to simply increase gRPC message size.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.Payload}
   */
  public  static final class Payload extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.Payload)
      PayloadOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Payload.newBuilder() to construct.
    private Payload(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Payload() {
      type_ = 0;
      body_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Payload(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              type_ = rawValue;
              break;
            }
            case 18: {

              body_ = input.readBytes();
              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_Payload_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_Payload_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.Payload.class, io.grpc.testing.integration.Messages.Payload.Builder.class);
    }

    public static final int TYPE_FIELD_NUMBER = 1;
    private int type_;
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * The type of data in body.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType type = 1;</code>
     */
    public int getTypeValue() {
      return type_;
    }
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * The type of data in body.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType type = 1;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadType getType() {
      io.grpc.testing.integration.Messages.PayloadType result = io.grpc.testing.integration.Messages.PayloadType.valueOf(type_);
      return result == null ? io.grpc.testing.integration.Messages.PayloadType.UNRECOGNIZED : result;
    }

    public static final int BODY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString body_;
    /**
     * <pre>
     * Primary contents of payload.
     * </pre>
     *
     * <code>bytes body = 2;</code>
     */
    public com.google.protobuf.ByteString getBody() {
      return body_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (type_ != io.grpc.testing.integration.Messages.PayloadType.COMPRESSABLE.getNumber()) {
        output.writeEnum(1, type_);
      }
      if (!body_.isEmpty()) {
        output.writeBytes(2, body_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (type_ != io.grpc.testing.integration.Messages.PayloadType.COMPRESSABLE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_);
      }
      if (!body_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, body_);
      }
      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 io.grpc.testing.integration.Messages.Payload)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.Payload other = (io.grpc.testing.integration.Messages.Payload) obj;

      boolean result = true;
      result = result && type_ == other.type_;
      result = result && getBody()
          .equals(other.getBody());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @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_;
      hash = (37 * hash) + BODY_FIELD_NUMBER;
      hash = (53 * hash) + getBody().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.Payload parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.Payload 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 io.grpc.testing.integration.Messages.Payload parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.Payload 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 io.grpc.testing.integration.Messages.Payload parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.Payload parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.Payload prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * A block of data, to simply increase gRPC message size.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.Payload}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.Payload)
        io.grpc.testing.integration.Messages.PayloadOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_Payload_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_Payload_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.Payload.class, io.grpc.testing.integration.Messages.Payload.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.Payload.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        type_ = 0;

        body_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_Payload_descriptor;
      }

      public io.grpc.testing.integration.Messages.Payload getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.Payload.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.Payload build() {
        io.grpc.testing.integration.Messages.Payload result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.Payload buildPartial() {
        io.grpc.testing.integration.Messages.Payload result = new io.grpc.testing.integration.Messages.Payload(this);
        result.type_ = type_;
        result.body_ = body_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.Payload) {
          return mergeFrom((io.grpc.testing.integration.Messages.Payload)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.Payload other) {
        if (other == io.grpc.testing.integration.Messages.Payload.getDefaultInstance()) return this;
        if (other.type_ != 0) {
          setTypeValue(other.getTypeValue());
        }
        if (other.getBody() != com.google.protobuf.ByteString.EMPTY) {
          setBody(other.getBody());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.Payload parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.Payload) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int type_ = 0;
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * The type of data in body.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType type = 1;</code>
       */
      public int getTypeValue() {
        return type_;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * The type of data in body.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType type = 1;</code>
       */
      public Builder setTypeValue(int value) {
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * The type of data in body.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType type = 1;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadType getType() {
        io.grpc.testing.integration.Messages.PayloadType result = io.grpc.testing.integration.Messages.PayloadType.valueOf(type_);
        return result == null ? io.grpc.testing.integration.Messages.PayloadType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * The type of data in body.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType type = 1;</code>
       */
      public Builder setType(io.grpc.testing.integration.Messages.PayloadType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        type_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * The type of data in body.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType type = 1;</code>
       */
      public Builder clearType() {
        
        type_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString body_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * Primary contents of payload.
       * </pre>
       *
       * <code>bytes body = 2;</code>
       */
      public com.google.protobuf.ByteString getBody() {
        return body_;
      }
      /**
       * <pre>
       * Primary contents of payload.
       * </pre>
       *
       * <code>bytes body = 2;</code>
       */
      public Builder setBody(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        body_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Primary contents of payload.
       * </pre>
       *
       * <code>bytes body = 2;</code>
       */
      public Builder clearBody() {
        
        body_ = getDefaultInstance().getBody();
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.Payload)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.Payload)
    private static final io.grpc.testing.integration.Messages.Payload DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.Payload();
    }

    public static io.grpc.testing.integration.Messages.Payload getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Payload>
        PARSER = new com.google.protobuf.AbstractParser<Payload>() {
      public Payload parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Payload(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Payload> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Payload> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.Payload getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EchoStatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.EchoStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 code = 1;</code>
     */
    int getCode();

    /**
     * <code>string message = 2;</code>
     */
    java.lang.String getMessage();
    /**
     * <code>string message = 2;</code>
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * <pre>
   * A protobuf representation for grpc status. This is used by test
   * clients to specify a status that the server should attempt to return.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.EchoStatus}
   */
  public  static final class EchoStatus extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.EchoStatus)
      EchoStatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EchoStatus.newBuilder() to construct.
    private EchoStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EchoStatus() {
      code_ = 0;
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EchoStatus(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              code_ = input.readInt32();
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              message_ = s;
              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_EchoStatus_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_EchoStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.EchoStatus.class, io.grpc.testing.integration.Messages.EchoStatus.Builder.class);
    }

    public static final int CODE_FIELD_NUMBER = 1;
    private int code_;
    /**
     * <code>int32 code = 1;</code>
     */
    public int getCode() {
      return code_;
    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object message_;
    /**
     * <code>string message = 2;</code>
     */
    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;
      }
    }
    /**
     * <code>string message = 2;</code>
     */
    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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (code_ != 0) {
        output.writeInt32(1, code_);
      }
      if (!getMessageBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (code_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, code_);
      }
      if (!getMessageBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
      }
      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 io.grpc.testing.integration.Messages.EchoStatus)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.EchoStatus other = (io.grpc.testing.integration.Messages.EchoStatus) obj;

      boolean result = true;
      result = result && (getCode()
          == other.getCode());
      result = result && getMessage()
          .equals(other.getMessage());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CODE_FIELD_NUMBER;
      hash = (53 * hash) + getCode();
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus 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 io.grpc.testing.integration.Messages.EchoStatus parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus 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 io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.EchoStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.EchoStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * A protobuf representation for grpc status. This is used by test
     * clients to specify a status that the server should attempt to return.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.EchoStatus}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.EchoStatus)
        io.grpc.testing.integration.Messages.EchoStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_EchoStatus_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_EchoStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.EchoStatus.class, io.grpc.testing.integration.Messages.EchoStatus.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.EchoStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        code_ = 0;

        message_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_EchoStatus_descriptor;
      }

      public io.grpc.testing.integration.Messages.EchoStatus getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.EchoStatus build() {
        io.grpc.testing.integration.Messages.EchoStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.EchoStatus buildPartial() {
        io.grpc.testing.integration.Messages.EchoStatus result = new io.grpc.testing.integration.Messages.EchoStatus(this);
        result.code_ = code_;
        result.message_ = message_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.EchoStatus) {
          return mergeFrom((io.grpc.testing.integration.Messages.EchoStatus)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.EchoStatus other) {
        if (other == io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance()) return this;
        if (other.getCode() != 0) {
          setCode(other.getCode());
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.EchoStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.EchoStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int code_ ;
      /**
       * <code>int32 code = 1;</code>
       */
      public int getCode() {
        return code_;
      }
      /**
       * <code>int32 code = 1;</code>
       */
      public Builder setCode(int value) {
        
        code_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 code = 1;</code>
       */
      public Builder clearCode() {
        
        code_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * <code>string message = 2;</code>
       */
      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;
        }
      }
      /**
       * <code>string message = 2;</code>
       */
      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;
        }
      }
      /**
       * <code>string message = 2;</code>
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string message = 2;</code>
       */
      public Builder clearMessage() {
        
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * <code>string message = 2;</code>
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        message_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.EchoStatus)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.EchoStatus)
    private static final io.grpc.testing.integration.Messages.EchoStatus DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.EchoStatus();
    }

    public static io.grpc.testing.integration.Messages.EchoStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<EchoStatus>
        PARSER = new com.google.protobuf.AbstractParser<EchoStatus>() {
      public EchoStatus parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EchoStatus(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<EchoStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EchoStatus> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.EchoStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SimpleRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.SimpleRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, server randomly chooses one from other formats.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    int getResponseTypeValue();
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, server randomly chooses one from other formats.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    io.grpc.testing.integration.Messages.PayloadType getResponseType();

    /**
     * <pre>
     * Desired payload size in the response from the server.
     * </pre>
     *
     * <code>int32 response_size = 2;</code>
     */
    int getResponseSize();

    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    boolean hasPayload();
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    io.grpc.testing.integration.Messages.Payload getPayload();
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder();

    /**
     * <pre>
     * Whether SimpleResponse should include username.
     * </pre>
     *
     * <code>bool fill_username = 4;</code>
     */
    boolean getFillUsername();

    /**
     * <pre>
     * Whether SimpleResponse should include OAuth scope.
     * </pre>
     *
     * <code>bool fill_oauth_scope = 5;</code>
     */
    boolean getFillOauthScope();

    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
     */
    boolean hasResponseCompressed();
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
     */
    com.google.protobuf.BoolValue getResponseCompressed();
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getResponseCompressedOrBuilder();

    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    boolean hasResponseStatus();
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    io.grpc.testing.integration.Messages.EchoStatus getResponseStatus();
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    io.grpc.testing.integration.Messages.EchoStatusOrBuilder getResponseStatusOrBuilder();

    /**
     * <pre>
     * Whether the server should expect this request to be compressed.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
     */
    boolean hasExpectCompressed();
    /**
     * <pre>
     * Whether the server should expect this request to be compressed.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
     */
    com.google.protobuf.BoolValue getExpectCompressed();
    /**
     * <pre>
     * Whether the server should expect this request to be compressed.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getExpectCompressedOrBuilder();
  }
  /**
   * <pre>
   * Unary request.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.SimpleRequest}
   */
  public  static final class SimpleRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.SimpleRequest)
      SimpleRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SimpleRequest.newBuilder() to construct.
    private SimpleRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SimpleRequest() {
      responseType_ = 0;
      responseSize_ = 0;
      fillUsername_ = false;
      fillOauthScope_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SimpleRequest(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              responseType_ = rawValue;
              break;
            }
            case 16: {

              responseSize_ = input.readInt32();
              break;
            }
            case 26: {
              io.grpc.testing.integration.Messages.Payload.Builder subBuilder = null;
              if (payload_ != null) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(io.grpc.testing.integration.Messages.Payload.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }

              break;
            }
            case 32: {

              fillUsername_ = input.readBool();
              break;
            }
            case 40: {

              fillOauthScope_ = input.readBool();
              break;
            }
            case 50: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (responseCompressed_ != null) {
                subBuilder = responseCompressed_.toBuilder();
              }
              responseCompressed_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(responseCompressed_);
                responseCompressed_ = subBuilder.buildPartial();
              }

              break;
            }
            case 58: {
              io.grpc.testing.integration.Messages.EchoStatus.Builder subBuilder = null;
              if (responseStatus_ != null) {
                subBuilder = responseStatus_.toBuilder();
              }
              responseStatus_ = input.readMessage(io.grpc.testing.integration.Messages.EchoStatus.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(responseStatus_);
                responseStatus_ = subBuilder.buildPartial();
              }

              break;
            }
            case 66: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (expectCompressed_ != null) {
                subBuilder = expectCompressed_.toBuilder();
              }
              expectCompressed_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(expectCompressed_);
                expectCompressed_ = subBuilder.buildPartial();
              }

              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.SimpleRequest.class, io.grpc.testing.integration.Messages.SimpleRequest.Builder.class);
    }

    public static final int RESPONSE_TYPE_FIELD_NUMBER = 1;
    private int responseType_;
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, server randomly chooses one from other formats.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    public int getResponseTypeValue() {
      return responseType_;
    }
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, server randomly chooses one from other formats.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadType getResponseType() {
      io.grpc.testing.integration.Messages.PayloadType result = io.grpc.testing.integration.Messages.PayloadType.valueOf(responseType_);
      return result == null ? io.grpc.testing.integration.Messages.PayloadType.UNRECOGNIZED : result;
    }

    public static final int RESPONSE_SIZE_FIELD_NUMBER = 2;
    private int responseSize_;
    /**
     * <pre>
     * Desired payload size in the response from the server.
     * </pre>
     *
     * <code>int32 response_size = 2;</code>
     */
    public int getResponseSize() {
      return responseSize_;
    }

    public static final int PAYLOAD_FIELD_NUMBER = 3;
    private io.grpc.testing.integration.Messages.Payload payload_;
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    public boolean hasPayload() {
      return payload_ != null;
    }
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    public io.grpc.testing.integration.Messages.Payload getPayload() {
      return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
    }
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
      return getPayload();
    }

    public static final int FILL_USERNAME_FIELD_NUMBER = 4;
    private boolean fillUsername_;
    /**
     * <pre>
     * Whether SimpleResponse should include username.
     * </pre>
     *
     * <code>bool fill_username = 4;</code>
     */
    public boolean getFillUsername() {
      return fillUsername_;
    }

    public static final int FILL_OAUTH_SCOPE_FIELD_NUMBER = 5;
    private boolean fillOauthScope_;
    /**
     * <pre>
     * Whether SimpleResponse should include OAuth scope.
     * </pre>
     *
     * <code>bool fill_oauth_scope = 5;</code>
     */
    public boolean getFillOauthScope() {
      return fillOauthScope_;
    }

    public static final int RESPONSE_COMPRESSED_FIELD_NUMBER = 6;
    private com.google.protobuf.BoolValue responseCompressed_;
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
     */
    public boolean hasResponseCompressed() {
      return responseCompressed_ != null;
    }
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
     */
    public com.google.protobuf.BoolValue getResponseCompressed() {
      return responseCompressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : responseCompressed_;
    }
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
     */
    public com.google.protobuf.BoolValueOrBuilder getResponseCompressedOrBuilder() {
      return getResponseCompressed();
    }

    public static final int RESPONSE_STATUS_FIELD_NUMBER = 7;
    private io.grpc.testing.integration.Messages.EchoStatus responseStatus_;
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    public boolean hasResponseStatus() {
      return responseStatus_ != null;
    }
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    public io.grpc.testing.integration.Messages.EchoStatus getResponseStatus() {
      return responseStatus_ == null ? io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance() : responseStatus_;
    }
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    public io.grpc.testing.integration.Messages.EchoStatusOrBuilder getResponseStatusOrBuilder() {
      return getResponseStatus();
    }

    public static final int EXPECT_COMPRESSED_FIELD_NUMBER = 8;
    private com.google.protobuf.BoolValue expectCompressed_;
    /**
     * <pre>
     * Whether the server should expect this request to be compressed.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
     */
    public boolean hasExpectCompressed() {
      return expectCompressed_ != null;
    }
    /**
     * <pre>
     * Whether the server should expect this request to be compressed.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
     */
    public com.google.protobuf.BoolValue getExpectCompressed() {
      return expectCompressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : expectCompressed_;
    }
    /**
     * <pre>
     * Whether the server should expect this request to be compressed.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
     */
    public com.google.protobuf.BoolValueOrBuilder getExpectCompressedOrBuilder() {
      return getExpectCompressed();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (responseType_ != io.grpc.testing.integration.Messages.PayloadType.COMPRESSABLE.getNumber()) {
        output.writeEnum(1, responseType_);
      }
      if (responseSize_ != 0) {
        output.writeInt32(2, responseSize_);
      }
      if (payload_ != null) {
        output.writeMessage(3, getPayload());
      }
      if (fillUsername_ != false) {
        output.writeBool(4, fillUsername_);
      }
      if (fillOauthScope_ != false) {
        output.writeBool(5, fillOauthScope_);
      }
      if (responseCompressed_ != null) {
        output.writeMessage(6, getResponseCompressed());
      }
      if (responseStatus_ != null) {
        output.writeMessage(7, getResponseStatus());
      }
      if (expectCompressed_ != null) {
        output.writeMessage(8, getExpectCompressed());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (responseType_ != io.grpc.testing.integration.Messages.PayloadType.COMPRESSABLE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, responseType_);
      }
      if (responseSize_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, responseSize_);
      }
      if (payload_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPayload());
      }
      if (fillUsername_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, fillUsername_);
      }
      if (fillOauthScope_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, fillOauthScope_);
      }
      if (responseCompressed_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getResponseCompressed());
      }
      if (responseStatus_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getResponseStatus());
      }
      if (expectCompressed_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getExpectCompressed());
      }
      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 io.grpc.testing.integration.Messages.SimpleRequest)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.SimpleRequest other = (io.grpc.testing.integration.Messages.SimpleRequest) obj;

      boolean result = true;
      result = result && responseType_ == other.responseType_;
      result = result && (getResponseSize()
          == other.getResponseSize());
      result = result && (hasPayload() == other.hasPayload());
      if (hasPayload()) {
        result = result && getPayload()
            .equals(other.getPayload());
      }
      result = result && (getFillUsername()
          == other.getFillUsername());
      result = result && (getFillOauthScope()
          == other.getFillOauthScope());
      result = result && (hasResponseCompressed() == other.hasResponseCompressed());
      if (hasResponseCompressed()) {
        result = result && getResponseCompressed()
            .equals(other.getResponseCompressed());
      }
      result = result && (hasResponseStatus() == other.hasResponseStatus());
      if (hasResponseStatus()) {
        result = result && getResponseStatus()
            .equals(other.getResponseStatus());
      }
      result = result && (hasExpectCompressed() == other.hasExpectCompressed());
      if (hasExpectCompressed()) {
        result = result && getExpectCompressed()
            .equals(other.getExpectCompressed());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + responseType_;
      hash = (37 * hash) + RESPONSE_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getResponseSize();
      if (hasPayload()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getPayload().hashCode();
      }
      hash = (37 * hash) + FILL_USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFillUsername());
      hash = (37 * hash) + FILL_OAUTH_SCOPE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFillOauthScope());
      if (hasResponseCompressed()) {
        hash = (37 * hash) + RESPONSE_COMPRESSED_FIELD_NUMBER;
        hash = (53 * hash) + getResponseCompressed().hashCode();
      }
      if (hasResponseStatus()) {
        hash = (37 * hash) + RESPONSE_STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getResponseStatus().hashCode();
      }
      if (hasExpectCompressed()) {
        hash = (37 * hash) + EXPECT_COMPRESSED_FIELD_NUMBER;
        hash = (53 * hash) + getExpectCompressed().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest 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 io.grpc.testing.integration.Messages.SimpleRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest 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 io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.SimpleRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Unary request.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.SimpleRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.SimpleRequest)
        io.grpc.testing.integration.Messages.SimpleRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.SimpleRequest.class, io.grpc.testing.integration.Messages.SimpleRequest.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.SimpleRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        responseType_ = 0;

        responseSize_ = 0;

        if (payloadBuilder_ == null) {
          payload_ = null;
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }
        fillUsername_ = false;

        fillOauthScope_ = false;

        if (responseCompressedBuilder_ == null) {
          responseCompressed_ = null;
        } else {
          responseCompressed_ = null;
          responseCompressedBuilder_ = null;
        }
        if (responseStatusBuilder_ == null) {
          responseStatus_ = null;
        } else {
          responseStatus_ = null;
          responseStatusBuilder_ = null;
        }
        if (expectCompressedBuilder_ == null) {
          expectCompressed_ = null;
        } else {
          expectCompressed_ = null;
          expectCompressedBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleRequest_descriptor;
      }

      public io.grpc.testing.integration.Messages.SimpleRequest getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.SimpleRequest.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.SimpleRequest build() {
        io.grpc.testing.integration.Messages.SimpleRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.SimpleRequest buildPartial() {
        io.grpc.testing.integration.Messages.SimpleRequest result = new io.grpc.testing.integration.Messages.SimpleRequest(this);
        result.responseType_ = responseType_;
        result.responseSize_ = responseSize_;
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        result.fillUsername_ = fillUsername_;
        result.fillOauthScope_ = fillOauthScope_;
        if (responseCompressedBuilder_ == null) {
          result.responseCompressed_ = responseCompressed_;
        } else {
          result.responseCompressed_ = responseCompressedBuilder_.build();
        }
        if (responseStatusBuilder_ == null) {
          result.responseStatus_ = responseStatus_;
        } else {
          result.responseStatus_ = responseStatusBuilder_.build();
        }
        if (expectCompressedBuilder_ == null) {
          result.expectCompressed_ = expectCompressed_;
        } else {
          result.expectCompressed_ = expectCompressedBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.SimpleRequest) {
          return mergeFrom((io.grpc.testing.integration.Messages.SimpleRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.SimpleRequest other) {
        if (other == io.grpc.testing.integration.Messages.SimpleRequest.getDefaultInstance()) return this;
        if (other.responseType_ != 0) {
          setResponseTypeValue(other.getResponseTypeValue());
        }
        if (other.getResponseSize() != 0) {
          setResponseSize(other.getResponseSize());
        }
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        if (other.getFillUsername() != false) {
          setFillUsername(other.getFillUsername());
        }
        if (other.getFillOauthScope() != false) {
          setFillOauthScope(other.getFillOauthScope());
        }
        if (other.hasResponseCompressed()) {
          mergeResponseCompressed(other.getResponseCompressed());
        }
        if (other.hasResponseStatus()) {
          mergeResponseStatus(other.getResponseStatus());
        }
        if (other.hasExpectCompressed()) {
          mergeExpectCompressed(other.getExpectCompressed());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.SimpleRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.SimpleRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int responseType_ = 0;
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, server randomly chooses one from other formats.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public int getResponseTypeValue() {
        return responseType_;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, server randomly chooses one from other formats.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public Builder setResponseTypeValue(int value) {
        responseType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, server randomly chooses one from other formats.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadType getResponseType() {
        io.grpc.testing.integration.Messages.PayloadType result = io.grpc.testing.integration.Messages.PayloadType.valueOf(responseType_);
        return result == null ? io.grpc.testing.integration.Messages.PayloadType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, server randomly chooses one from other formats.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public Builder setResponseType(io.grpc.testing.integration.Messages.PayloadType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        responseType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, server randomly chooses one from other formats.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public Builder clearResponseType() {
        
        responseType_ = 0;
        onChanged();
        return this;
      }

      private int responseSize_ ;
      /**
       * <pre>
       * Desired payload size in the response from the server.
       * </pre>
       *
       * <code>int32 response_size = 2;</code>
       */
      public int getResponseSize() {
        return responseSize_;
      }
      /**
       * <pre>
       * Desired payload size in the response from the server.
       * </pre>
       *
       * <code>int32 response_size = 2;</code>
       */
      public Builder setResponseSize(int value) {
        
        responseSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Desired payload size in the response from the server.
       * </pre>
       *
       * <code>int32 response_size = 2;</code>
       */
      public Builder clearResponseSize() {
        
        responseSize_ = 0;
        onChanged();
        return this;
      }

      private io.grpc.testing.integration.Messages.Payload payload_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public boolean hasPayload() {
        return payloadBuilder_ != null || payload_ != null;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public io.grpc.testing.integration.Messages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder setPayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder setPayload(
          io.grpc.testing.integration.Messages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder mergePayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (payload_ != null) {
            payload_ =
              io.grpc.testing.integration.Messages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = null;
          onChanged();
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public io.grpc.testing.integration.Messages.Payload.Builder getPayloadBuilder() {
        
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_ == null ?
              io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        }
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder>(
                  getPayload(),
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      private boolean fillUsername_ ;
      /**
       * <pre>
       * Whether SimpleResponse should include username.
       * </pre>
       *
       * <code>bool fill_username = 4;</code>
       */
      public boolean getFillUsername() {
        return fillUsername_;
      }
      /**
       * <pre>
       * Whether SimpleResponse should include username.
       * </pre>
       *
       * <code>bool fill_username = 4;</code>
       */
      public Builder setFillUsername(boolean value) {
        
        fillUsername_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether SimpleResponse should include username.
       * </pre>
       *
       * <code>bool fill_username = 4;</code>
       */
      public Builder clearFillUsername() {
        
        fillUsername_ = false;
        onChanged();
        return this;
      }

      private boolean fillOauthScope_ ;
      /**
       * <pre>
       * Whether SimpleResponse should include OAuth scope.
       * </pre>
       *
       * <code>bool fill_oauth_scope = 5;</code>
       */
      public boolean getFillOauthScope() {
        return fillOauthScope_;
      }
      /**
       * <pre>
       * Whether SimpleResponse should include OAuth scope.
       * </pre>
       *
       * <code>bool fill_oauth_scope = 5;</code>
       */
      public Builder setFillOauthScope(boolean value) {
        
        fillOauthScope_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Whether SimpleResponse should include OAuth scope.
       * </pre>
       *
       * <code>bool fill_oauth_scope = 5;</code>
       */
      public Builder clearFillOauthScope() {
        
        fillOauthScope_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.BoolValue responseCompressed_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> responseCompressedBuilder_;
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public boolean hasResponseCompressed() {
        return responseCompressedBuilder_ != null || responseCompressed_ != null;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public com.google.protobuf.BoolValue getResponseCompressed() {
        if (responseCompressedBuilder_ == null) {
          return responseCompressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : responseCompressed_;
        } else {
          return responseCompressedBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public Builder setResponseCompressed(com.google.protobuf.BoolValue value) {
        if (responseCompressedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          responseCompressed_ = value;
          onChanged();
        } else {
          responseCompressedBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public Builder setResponseCompressed(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (responseCompressedBuilder_ == null) {
          responseCompressed_ = builderForValue.build();
          onChanged();
        } else {
          responseCompressedBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public Builder mergeResponseCompressed(com.google.protobuf.BoolValue value) {
        if (responseCompressedBuilder_ == null) {
          if (responseCompressed_ != null) {
            responseCompressed_ =
              com.google.protobuf.BoolValue.newBuilder(responseCompressed_).mergeFrom(value).buildPartial();
          } else {
            responseCompressed_ = value;
          }
          onChanged();
        } else {
          responseCompressedBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public Builder clearResponseCompressed() {
        if (responseCompressedBuilder_ == null) {
          responseCompressed_ = null;
          onChanged();
        } else {
          responseCompressed_ = null;
          responseCompressedBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public com.google.protobuf.BoolValue.Builder getResponseCompressedBuilder() {
        
        onChanged();
        return getResponseCompressedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getResponseCompressedOrBuilder() {
        if (responseCompressedBuilder_ != null) {
          return responseCompressedBuilder_.getMessageOrBuilder();
        } else {
          return responseCompressed_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : responseCompressed_;
        }
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue response_compressed = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getResponseCompressedFieldBuilder() {
        if (responseCompressedBuilder_ == null) {
          responseCompressedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getResponseCompressed(),
                  getParentForChildren(),
                  isClean());
          responseCompressed_ = null;
        }
        return responseCompressedBuilder_;
      }

      private io.grpc.testing.integration.Messages.EchoStatus responseStatus_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.EchoStatus, io.grpc.testing.integration.Messages.EchoStatus.Builder, io.grpc.testing.integration.Messages.EchoStatusOrBuilder> responseStatusBuilder_;
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public boolean hasResponseStatus() {
        return responseStatusBuilder_ != null || responseStatus_ != null;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public io.grpc.testing.integration.Messages.EchoStatus getResponseStatus() {
        if (responseStatusBuilder_ == null) {
          return responseStatus_ == null ? io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance() : responseStatus_;
        } else {
          return responseStatusBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder setResponseStatus(io.grpc.testing.integration.Messages.EchoStatus value) {
        if (responseStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          responseStatus_ = value;
          onChanged();
        } else {
          responseStatusBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder setResponseStatus(
          io.grpc.testing.integration.Messages.EchoStatus.Builder builderForValue) {
        if (responseStatusBuilder_ == null) {
          responseStatus_ = builderForValue.build();
          onChanged();
        } else {
          responseStatusBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder mergeResponseStatus(io.grpc.testing.integration.Messages.EchoStatus value) {
        if (responseStatusBuilder_ == null) {
          if (responseStatus_ != null) {
            responseStatus_ =
              io.grpc.testing.integration.Messages.EchoStatus.newBuilder(responseStatus_).mergeFrom(value).buildPartial();
          } else {
            responseStatus_ = value;
          }
          onChanged();
        } else {
          responseStatusBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder clearResponseStatus() {
        if (responseStatusBuilder_ == null) {
          responseStatus_ = null;
          onChanged();
        } else {
          responseStatus_ = null;
          responseStatusBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public io.grpc.testing.integration.Messages.EchoStatus.Builder getResponseStatusBuilder() {
        
        onChanged();
        return getResponseStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public io.grpc.testing.integration.Messages.EchoStatusOrBuilder getResponseStatusOrBuilder() {
        if (responseStatusBuilder_ != null) {
          return responseStatusBuilder_.getMessageOrBuilder();
        } else {
          return responseStatus_ == null ?
              io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance() : responseStatus_;
        }
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.EchoStatus, io.grpc.testing.integration.Messages.EchoStatus.Builder, io.grpc.testing.integration.Messages.EchoStatusOrBuilder> 
          getResponseStatusFieldBuilder() {
        if (responseStatusBuilder_ == null) {
          responseStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.EchoStatus, io.grpc.testing.integration.Messages.EchoStatus.Builder, io.grpc.testing.integration.Messages.EchoStatusOrBuilder>(
                  getResponseStatus(),
                  getParentForChildren(),
                  isClean());
          responseStatus_ = null;
        }
        return responseStatusBuilder_;
      }

      private com.google.protobuf.BoolValue expectCompressed_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> expectCompressedBuilder_;
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public boolean hasExpectCompressed() {
        return expectCompressedBuilder_ != null || expectCompressed_ != null;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public com.google.protobuf.BoolValue getExpectCompressed() {
        if (expectCompressedBuilder_ == null) {
          return expectCompressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : expectCompressed_;
        } else {
          return expectCompressedBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public Builder setExpectCompressed(com.google.protobuf.BoolValue value) {
        if (expectCompressedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expectCompressed_ = value;
          onChanged();
        } else {
          expectCompressedBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public Builder setExpectCompressed(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (expectCompressedBuilder_ == null) {
          expectCompressed_ = builderForValue.build();
          onChanged();
        } else {
          expectCompressedBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public Builder mergeExpectCompressed(com.google.protobuf.BoolValue value) {
        if (expectCompressedBuilder_ == null) {
          if (expectCompressed_ != null) {
            expectCompressed_ =
              com.google.protobuf.BoolValue.newBuilder(expectCompressed_).mergeFrom(value).buildPartial();
          } else {
            expectCompressed_ = value;
          }
          onChanged();
        } else {
          expectCompressedBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public Builder clearExpectCompressed() {
        if (expectCompressedBuilder_ == null) {
          expectCompressed_ = null;
          onChanged();
        } else {
          expectCompressed_ = null;
          expectCompressedBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public com.google.protobuf.BoolValue.Builder getExpectCompressedBuilder() {
        
        onChanged();
        return getExpectCompressedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getExpectCompressedOrBuilder() {
        if (expectCompressedBuilder_ != null) {
          return expectCompressedBuilder_.getMessageOrBuilder();
        } else {
          return expectCompressed_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : expectCompressed_;
        }
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getExpectCompressedFieldBuilder() {
        if (expectCompressedBuilder_ == null) {
          expectCompressedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getExpectCompressed(),
                  getParentForChildren(),
                  isClean());
          expectCompressed_ = null;
        }
        return expectCompressedBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.SimpleRequest)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.SimpleRequest)
    private static final io.grpc.testing.integration.Messages.SimpleRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.SimpleRequest();
    }

    public static io.grpc.testing.integration.Messages.SimpleRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SimpleRequest>
        PARSER = new com.google.protobuf.AbstractParser<SimpleRequest>() {
      public SimpleRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SimpleRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SimpleRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SimpleRequest> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.SimpleRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SimpleResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.SimpleResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Payload to increase message size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    boolean hasPayload();
    /**
     * <pre>
     * Payload to increase message size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    io.grpc.testing.integration.Messages.Payload getPayload();
    /**
     * <pre>
     * Payload to increase message size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder();

    /**
     * <pre>
     * The user the request came from, for verifying authentication was
     * successful when the client expected it.
     * </pre>
     *
     * <code>string username = 2;</code>
     */
    java.lang.String getUsername();
    /**
     * <pre>
     * The user the request came from, for verifying authentication was
     * successful when the client expected it.
     * </pre>
     *
     * <code>string username = 2;</code>
     */
    com.google.protobuf.ByteString
        getUsernameBytes();

    /**
     * <pre>
     * OAuth scope.
     * </pre>
     *
     * <code>string oauth_scope = 3;</code>
     */
    java.lang.String getOauthScope();
    /**
     * <pre>
     * OAuth scope.
     * </pre>
     *
     * <code>string oauth_scope = 3;</code>
     */
    com.google.protobuf.ByteString
        getOauthScopeBytes();
  }
  /**
   * <pre>
   * Unary response, as configured by the request.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.SimpleResponse}
   */
  public  static final class SimpleResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.SimpleResponse)
      SimpleResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SimpleResponse.newBuilder() to construct.
    private SimpleResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SimpleResponse() {
      username_ = "";
      oauthScope_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SimpleResponse(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              io.grpc.testing.integration.Messages.Payload.Builder subBuilder = null;
              if (payload_ != null) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(io.grpc.testing.integration.Messages.Payload.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              username_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              oauthScope_ = s;
              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.SimpleResponse.class, io.grpc.testing.integration.Messages.SimpleResponse.Builder.class);
    }

    public static final int PAYLOAD_FIELD_NUMBER = 1;
    private io.grpc.testing.integration.Messages.Payload payload_;
    /**
     * <pre>
     * Payload to increase message size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public boolean hasPayload() {
      return payload_ != null;
    }
    /**
     * <pre>
     * Payload to increase message size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public io.grpc.testing.integration.Messages.Payload getPayload() {
      return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
    }
    /**
     * <pre>
     * Payload to increase message size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
      return getPayload();
    }

    public static final int USERNAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object username_;
    /**
     * <pre>
     * The user the request came from, for verifying authentication was
     * successful when the client expected it.
     * </pre>
     *
     * <code>string username = 2;</code>
     */
    public java.lang.String getUsername() {
      java.lang.Object ref = username_;
      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();
        username_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * The user the request came from, for verifying authentication was
     * successful when the client expected it.
     * </pre>
     *
     * <code>string username = 2;</code>
     */
    public com.google.protobuf.ByteString
        getUsernameBytes() {
      java.lang.Object ref = username_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        username_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OAUTH_SCOPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object oauthScope_;
    /**
     * <pre>
     * OAuth scope.
     * </pre>
     *
     * <code>string oauth_scope = 3;</code>
     */
    public java.lang.String getOauthScope() {
      java.lang.Object ref = oauthScope_;
      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();
        oauthScope_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * OAuth scope.
     * </pre>
     *
     * <code>string oauth_scope = 3;</code>
     */
    public com.google.protobuf.ByteString
        getOauthScopeBytes() {
      java.lang.Object ref = oauthScope_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        oauthScope_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (payload_ != null) {
        output.writeMessage(1, getPayload());
      }
      if (!getUsernameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, username_);
      }
      if (!getOauthScopeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, oauthScope_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (payload_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getPayload());
      }
      if (!getUsernameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, username_);
      }
      if (!getOauthScopeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, oauthScope_);
      }
      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 io.grpc.testing.integration.Messages.SimpleResponse)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.SimpleResponse other = (io.grpc.testing.integration.Messages.SimpleResponse) obj;

      boolean result = true;
      result = result && (hasPayload() == other.hasPayload());
      if (hasPayload()) {
        result = result && getPayload()
            .equals(other.getPayload());
      }
      result = result && getUsername()
          .equals(other.getUsername());
      result = result && getOauthScope()
          .equals(other.getOauthScope());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPayload()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getPayload().hashCode();
      }
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUsername().hashCode();
      hash = (37 * hash) + OAUTH_SCOPE_FIELD_NUMBER;
      hash = (53 * hash) + getOauthScope().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse 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 io.grpc.testing.integration.Messages.SimpleResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse 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 io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.SimpleResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Unary response, as configured by the request.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.SimpleResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.SimpleResponse)
        io.grpc.testing.integration.Messages.SimpleResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.SimpleResponse.class, io.grpc.testing.integration.Messages.SimpleResponse.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.SimpleResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (payloadBuilder_ == null) {
          payload_ = null;
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }
        username_ = "";

        oauthScope_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleResponse_descriptor;
      }

      public io.grpc.testing.integration.Messages.SimpleResponse getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.SimpleResponse.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.SimpleResponse build() {
        io.grpc.testing.integration.Messages.SimpleResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.SimpleResponse buildPartial() {
        io.grpc.testing.integration.Messages.SimpleResponse result = new io.grpc.testing.integration.Messages.SimpleResponse(this);
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        result.username_ = username_;
        result.oauthScope_ = oauthScope_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.SimpleResponse) {
          return mergeFrom((io.grpc.testing.integration.Messages.SimpleResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.SimpleResponse other) {
        if (other == io.grpc.testing.integration.Messages.SimpleResponse.getDefaultInstance()) return this;
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        if (!other.getUsername().isEmpty()) {
          username_ = other.username_;
          onChanged();
        }
        if (!other.getOauthScope().isEmpty()) {
          oauthScope_ = other.oauthScope_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.SimpleResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.SimpleResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.grpc.testing.integration.Messages.Payload payload_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public boolean hasPayload() {
        return payloadBuilder_ != null || payload_ != null;
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder setPayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder setPayload(
          io.grpc.testing.integration.Messages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder mergePayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (payload_ != null) {
            payload_ =
              io.grpc.testing.integration.Messages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = null;
          onChanged();
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.Payload.Builder getPayloadBuilder() {
        
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_ == null ?
              io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        }
      }
      /**
       * <pre>
       * Payload to increase message size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder>(
                  getPayload(),
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      private java.lang.Object username_ = "";
      /**
       * <pre>
       * The user the request came from, for verifying authentication was
       * successful when the client expected it.
       * </pre>
       *
       * <code>string username = 2;</code>
       */
      public java.lang.String getUsername() {
        java.lang.Object ref = username_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          username_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * The user the request came from, for verifying authentication was
       * successful when the client expected it.
       * </pre>
       *
       * <code>string username = 2;</code>
       */
      public com.google.protobuf.ByteString
          getUsernameBytes() {
        java.lang.Object ref = username_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          username_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * The user the request came from, for verifying authentication was
       * successful when the client expected it.
       * </pre>
       *
       * <code>string username = 2;</code>
       */
      public Builder setUsername(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        username_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The user the request came from, for verifying authentication was
       * successful when the client expected it.
       * </pre>
       *
       * <code>string username = 2;</code>
       */
      public Builder clearUsername() {
        
        username_ = getDefaultInstance().getUsername();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * The user the request came from, for verifying authentication was
       * successful when the client expected it.
       * </pre>
       *
       * <code>string username = 2;</code>
       */
      public Builder setUsernameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        username_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object oauthScope_ = "";
      /**
       * <pre>
       * OAuth scope.
       * </pre>
       *
       * <code>string oauth_scope = 3;</code>
       */
      public java.lang.String getOauthScope() {
        java.lang.Object ref = oauthScope_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          oauthScope_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * OAuth scope.
       * </pre>
       *
       * <code>string oauth_scope = 3;</code>
       */
      public com.google.protobuf.ByteString
          getOauthScopeBytes() {
        java.lang.Object ref = oauthScope_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          oauthScope_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * OAuth scope.
       * </pre>
       *
       * <code>string oauth_scope = 3;</code>
       */
      public Builder setOauthScope(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        oauthScope_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OAuth scope.
       * </pre>
       *
       * <code>string oauth_scope = 3;</code>
       */
      public Builder clearOauthScope() {
        
        oauthScope_ = getDefaultInstance().getOauthScope();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * OAuth scope.
       * </pre>
       *
       * <code>string oauth_scope = 3;</code>
       */
      public Builder setOauthScopeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        oauthScope_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.SimpleResponse)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.SimpleResponse)
    private static final io.grpc.testing.integration.Messages.SimpleResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.SimpleResponse();
    }

    public static io.grpc.testing.integration.Messages.SimpleResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SimpleResponse>
        PARSER = new com.google.protobuf.AbstractParser<SimpleResponse>() {
      public SimpleResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SimpleResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SimpleResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SimpleResponse> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.SimpleResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SimpleContextOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.SimpleContext)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string value = 1;</code>
     */
    java.lang.String getValue();
    /**
     * <code>string value = 1;</code>
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code grpc.testing.SimpleContext}
   */
  public  static final class SimpleContext extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.SimpleContext)
      SimpleContextOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SimpleContext.newBuilder() to construct.
    private SimpleContext(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SimpleContext() {
      value_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SimpleContext(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              value_ = s;
              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleContext_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleContext_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.SimpleContext.class, io.grpc.testing.integration.Messages.SimpleContext.Builder.class);
    }

    public static final int VALUE_FIELD_NUMBER = 1;
    private volatile java.lang.Object value_;
    /**
     * <code>string value = 1;</code>
     */
    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 = 1;</code>
     */
    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;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getValueBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, value_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getValueBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, value_);
      }
      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 io.grpc.testing.integration.Messages.SimpleContext)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.SimpleContext other = (io.grpc.testing.integration.Messages.SimpleContext) obj;

      boolean result = true;
      result = result && getValue()
          .equals(other.getValue());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getValue().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext 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 io.grpc.testing.integration.Messages.SimpleContext parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext 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 io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.SimpleContext parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.SimpleContext prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 grpc.testing.SimpleContext}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.SimpleContext)
        io.grpc.testing.integration.Messages.SimpleContextOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleContext_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleContext_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.SimpleContext.class, io.grpc.testing.integration.Messages.SimpleContext.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.SimpleContext.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        value_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_SimpleContext_descriptor;
      }

      public io.grpc.testing.integration.Messages.SimpleContext getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.SimpleContext.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.SimpleContext build() {
        io.grpc.testing.integration.Messages.SimpleContext result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.SimpleContext buildPartial() {
        io.grpc.testing.integration.Messages.SimpleContext result = new io.grpc.testing.integration.Messages.SimpleContext(this);
        result.value_ = value_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.SimpleContext) {
          return mergeFrom((io.grpc.testing.integration.Messages.SimpleContext)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.SimpleContext other) {
        if (other == io.grpc.testing.integration.Messages.SimpleContext.getDefaultInstance()) return this;
        if (!other.getValue().isEmpty()) {
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.SimpleContext parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.SimpleContext) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       * <code>string value = 1;</code>
       */
      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 = 1;</code>
       */
      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 = 1;</code>
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string value = 1;</code>
       */
      public Builder clearValue() {
        
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * <code>string value = 1;</code>
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        value_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.SimpleContext)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.SimpleContext)
    private static final io.grpc.testing.integration.Messages.SimpleContext DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.SimpleContext();
    }

    public static io.grpc.testing.integration.Messages.SimpleContext getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SimpleContext>
        PARSER = new com.google.protobuf.AbstractParser<SimpleContext>() {
      public SimpleContext parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SimpleContext(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SimpleContext> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SimpleContext> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.SimpleContext getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamingInputCallRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.StreamingInputCallRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    boolean hasPayload();
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    io.grpc.testing.integration.Messages.Payload getPayload();
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder();

    /**
     * <pre>
     * Whether the server should expect this request to be compressed. This field
     * is "nullable" in order to interoperate seamlessly with servers not able to
     * implement the full compression tests by introspecting the call to verify
     * the request's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
     */
    boolean hasExpectCompressed();
    /**
     * <pre>
     * Whether the server should expect this request to be compressed. This field
     * is "nullable" in order to interoperate seamlessly with servers not able to
     * implement the full compression tests by introspecting the call to verify
     * the request's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
     */
    com.google.protobuf.BoolValue getExpectCompressed();
    /**
     * <pre>
     * Whether the server should expect this request to be compressed. This field
     * is "nullable" in order to interoperate seamlessly with servers not able to
     * implement the full compression tests by introspecting the call to verify
     * the request's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getExpectCompressedOrBuilder();
  }
  /**
   * <pre>
   * Client-streaming request.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.StreamingInputCallRequest}
   */
  public  static final class StreamingInputCallRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.StreamingInputCallRequest)
      StreamingInputCallRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StreamingInputCallRequest.newBuilder() to construct.
    private StreamingInputCallRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StreamingInputCallRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StreamingInputCallRequest(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              io.grpc.testing.integration.Messages.Payload.Builder subBuilder = null;
              if (payload_ != null) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(io.grpc.testing.integration.Messages.Payload.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (expectCompressed_ != null) {
                subBuilder = expectCompressed_.toBuilder();
              }
              expectCompressed_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(expectCompressed_);
                expectCompressed_ = subBuilder.buildPartial();
              }

              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.StreamingInputCallRequest.class, io.grpc.testing.integration.Messages.StreamingInputCallRequest.Builder.class);
    }

    public static final int PAYLOAD_FIELD_NUMBER = 1;
    private io.grpc.testing.integration.Messages.Payload payload_;
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public boolean hasPayload() {
      return payload_ != null;
    }
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public io.grpc.testing.integration.Messages.Payload getPayload() {
      return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
    }
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
      return getPayload();
    }

    public static final int EXPECT_COMPRESSED_FIELD_NUMBER = 2;
    private com.google.protobuf.BoolValue expectCompressed_;
    /**
     * <pre>
     * Whether the server should expect this request to be compressed. This field
     * is "nullable" in order to interoperate seamlessly with servers not able to
     * implement the full compression tests by introspecting the call to verify
     * the request's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
     */
    public boolean hasExpectCompressed() {
      return expectCompressed_ != null;
    }
    /**
     * <pre>
     * Whether the server should expect this request to be compressed. This field
     * is "nullable" in order to interoperate seamlessly with servers not able to
     * implement the full compression tests by introspecting the call to verify
     * the request's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
     */
    public com.google.protobuf.BoolValue getExpectCompressed() {
      return expectCompressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : expectCompressed_;
    }
    /**
     * <pre>
     * Whether the server should expect this request to be compressed. This field
     * is "nullable" in order to interoperate seamlessly with servers not able to
     * implement the full compression tests by introspecting the call to verify
     * the request's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
     */
    public com.google.protobuf.BoolValueOrBuilder getExpectCompressedOrBuilder() {
      return getExpectCompressed();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (payload_ != null) {
        output.writeMessage(1, getPayload());
      }
      if (expectCompressed_ != null) {
        output.writeMessage(2, getExpectCompressed());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (payload_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getPayload());
      }
      if (expectCompressed_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getExpectCompressed());
      }
      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 io.grpc.testing.integration.Messages.StreamingInputCallRequest)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.StreamingInputCallRequest other = (io.grpc.testing.integration.Messages.StreamingInputCallRequest) obj;

      boolean result = true;
      result = result && (hasPayload() == other.hasPayload());
      if (hasPayload()) {
        result = result && getPayload()
            .equals(other.getPayload());
      }
      result = result && (hasExpectCompressed() == other.hasExpectCompressed());
      if (hasExpectCompressed()) {
        result = result && getExpectCompressed()
            .equals(other.getExpectCompressed());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPayload()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getPayload().hashCode();
      }
      if (hasExpectCompressed()) {
        hash = (37 * hash) + EXPECT_COMPRESSED_FIELD_NUMBER;
        hash = (53 * hash) + getExpectCompressed().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest 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 io.grpc.testing.integration.Messages.StreamingInputCallRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest 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 io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.StreamingInputCallRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Client-streaming request.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.StreamingInputCallRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.StreamingInputCallRequest)
        io.grpc.testing.integration.Messages.StreamingInputCallRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.StreamingInputCallRequest.class, io.grpc.testing.integration.Messages.StreamingInputCallRequest.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.StreamingInputCallRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (payloadBuilder_ == null) {
          payload_ = null;
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }
        if (expectCompressedBuilder_ == null) {
          expectCompressed_ = null;
        } else {
          expectCompressed_ = null;
          expectCompressedBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallRequest_descriptor;
      }

      public io.grpc.testing.integration.Messages.StreamingInputCallRequest getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.StreamingInputCallRequest.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.StreamingInputCallRequest build() {
        io.grpc.testing.integration.Messages.StreamingInputCallRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.StreamingInputCallRequest buildPartial() {
        io.grpc.testing.integration.Messages.StreamingInputCallRequest result = new io.grpc.testing.integration.Messages.StreamingInputCallRequest(this);
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        if (expectCompressedBuilder_ == null) {
          result.expectCompressed_ = expectCompressed_;
        } else {
          result.expectCompressed_ = expectCompressedBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.StreamingInputCallRequest) {
          return mergeFrom((io.grpc.testing.integration.Messages.StreamingInputCallRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.StreamingInputCallRequest other) {
        if (other == io.grpc.testing.integration.Messages.StreamingInputCallRequest.getDefaultInstance()) return this;
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        if (other.hasExpectCompressed()) {
          mergeExpectCompressed(other.getExpectCompressed());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.StreamingInputCallRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.StreamingInputCallRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.grpc.testing.integration.Messages.Payload payload_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public boolean hasPayload() {
        return payloadBuilder_ != null || payload_ != null;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder setPayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder setPayload(
          io.grpc.testing.integration.Messages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder mergePayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (payload_ != null) {
            payload_ =
              io.grpc.testing.integration.Messages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = null;
          onChanged();
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.Payload.Builder getPayloadBuilder() {
        
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_ == null ?
              io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        }
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder>(
                  getPayload(),
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      private com.google.protobuf.BoolValue expectCompressed_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> expectCompressedBuilder_;
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public boolean hasExpectCompressed() {
        return expectCompressedBuilder_ != null || expectCompressed_ != null;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public com.google.protobuf.BoolValue getExpectCompressed() {
        if (expectCompressedBuilder_ == null) {
          return expectCompressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : expectCompressed_;
        } else {
          return expectCompressedBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public Builder setExpectCompressed(com.google.protobuf.BoolValue value) {
        if (expectCompressedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expectCompressed_ = value;
          onChanged();
        } else {
          expectCompressedBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public Builder setExpectCompressed(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (expectCompressedBuilder_ == null) {
          expectCompressed_ = builderForValue.build();
          onChanged();
        } else {
          expectCompressedBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public Builder mergeExpectCompressed(com.google.protobuf.BoolValue value) {
        if (expectCompressedBuilder_ == null) {
          if (expectCompressed_ != null) {
            expectCompressed_ =
              com.google.protobuf.BoolValue.newBuilder(expectCompressed_).mergeFrom(value).buildPartial();
          } else {
            expectCompressed_ = value;
          }
          onChanged();
        } else {
          expectCompressedBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public Builder clearExpectCompressed() {
        if (expectCompressedBuilder_ == null) {
          expectCompressed_ = null;
          onChanged();
        } else {
          expectCompressed_ = null;
          expectCompressedBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public com.google.protobuf.BoolValue.Builder getExpectCompressedBuilder() {
        
        onChanged();
        return getExpectCompressedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getExpectCompressedOrBuilder() {
        if (expectCompressedBuilder_ != null) {
          return expectCompressedBuilder_.getMessageOrBuilder();
        } else {
          return expectCompressed_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : expectCompressed_;
        }
      }
      /**
       * <pre>
       * Whether the server should expect this request to be compressed. This field
       * is "nullable" in order to interoperate seamlessly with servers not able to
       * implement the full compression tests by introspecting the call to verify
       * the request's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue expect_compressed = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getExpectCompressedFieldBuilder() {
        if (expectCompressedBuilder_ == null) {
          expectCompressedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getExpectCompressed(),
                  getParentForChildren(),
                  isClean());
          expectCompressed_ = null;
        }
        return expectCompressedBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.StreamingInputCallRequest)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.StreamingInputCallRequest)
    private static final io.grpc.testing.integration.Messages.StreamingInputCallRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.StreamingInputCallRequest();
    }

    public static io.grpc.testing.integration.Messages.StreamingInputCallRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StreamingInputCallRequest>
        PARSER = new com.google.protobuf.AbstractParser<StreamingInputCallRequest>() {
      public StreamingInputCallRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StreamingInputCallRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<StreamingInputCallRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StreamingInputCallRequest> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.StreamingInputCallRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamingInputCallResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.StreamingInputCallResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Aggregated size of payloads received from the client.
     * </pre>
     *
     * <code>int32 aggregated_payload_size = 1;</code>
     */
    int getAggregatedPayloadSize();
  }
  /**
   * <pre>
   * Client-streaming response.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.StreamingInputCallResponse}
   */
  public  static final class StreamingInputCallResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.StreamingInputCallResponse)
      StreamingInputCallResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StreamingInputCallResponse.newBuilder() to construct.
    private StreamingInputCallResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StreamingInputCallResponse() {
      aggregatedPayloadSize_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StreamingInputCallResponse(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              aggregatedPayloadSize_ = input.readInt32();
              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.StreamingInputCallResponse.class, io.grpc.testing.integration.Messages.StreamingInputCallResponse.Builder.class);
    }

    public static final int AGGREGATED_PAYLOAD_SIZE_FIELD_NUMBER = 1;
    private int aggregatedPayloadSize_;
    /**
     * <pre>
     * Aggregated size of payloads received from the client.
     * </pre>
     *
     * <code>int32 aggregated_payload_size = 1;</code>
     */
    public int getAggregatedPayloadSize() {
      return aggregatedPayloadSize_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (aggregatedPayloadSize_ != 0) {
        output.writeInt32(1, aggregatedPayloadSize_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (aggregatedPayloadSize_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, aggregatedPayloadSize_);
      }
      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 io.grpc.testing.integration.Messages.StreamingInputCallResponse)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.StreamingInputCallResponse other = (io.grpc.testing.integration.Messages.StreamingInputCallResponse) obj;

      boolean result = true;
      result = result && (getAggregatedPayloadSize()
          == other.getAggregatedPayloadSize());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + AGGREGATED_PAYLOAD_SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getAggregatedPayloadSize();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse 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 io.grpc.testing.integration.Messages.StreamingInputCallResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse 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 io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.StreamingInputCallResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Client-streaming response.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.StreamingInputCallResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.StreamingInputCallResponse)
        io.grpc.testing.integration.Messages.StreamingInputCallResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.StreamingInputCallResponse.class, io.grpc.testing.integration.Messages.StreamingInputCallResponse.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.StreamingInputCallResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        aggregatedPayloadSize_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingInputCallResponse_descriptor;
      }

      public io.grpc.testing.integration.Messages.StreamingInputCallResponse getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.StreamingInputCallResponse.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.StreamingInputCallResponse build() {
        io.grpc.testing.integration.Messages.StreamingInputCallResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.StreamingInputCallResponse buildPartial() {
        io.grpc.testing.integration.Messages.StreamingInputCallResponse result = new io.grpc.testing.integration.Messages.StreamingInputCallResponse(this);
        result.aggregatedPayloadSize_ = aggregatedPayloadSize_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.StreamingInputCallResponse) {
          return mergeFrom((io.grpc.testing.integration.Messages.StreamingInputCallResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.StreamingInputCallResponse other) {
        if (other == io.grpc.testing.integration.Messages.StreamingInputCallResponse.getDefaultInstance()) return this;
        if (other.getAggregatedPayloadSize() != 0) {
          setAggregatedPayloadSize(other.getAggregatedPayloadSize());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.StreamingInputCallResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.StreamingInputCallResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int aggregatedPayloadSize_ ;
      /**
       * <pre>
       * Aggregated size of payloads received from the client.
       * </pre>
       *
       * <code>int32 aggregated_payload_size = 1;</code>
       */
      public int getAggregatedPayloadSize() {
        return aggregatedPayloadSize_;
      }
      /**
       * <pre>
       * Aggregated size of payloads received from the client.
       * </pre>
       *
       * <code>int32 aggregated_payload_size = 1;</code>
       */
      public Builder setAggregatedPayloadSize(int value) {
        
        aggregatedPayloadSize_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Aggregated size of payloads received from the client.
       * </pre>
       *
       * <code>int32 aggregated_payload_size = 1;</code>
       */
      public Builder clearAggregatedPayloadSize() {
        
        aggregatedPayloadSize_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.StreamingInputCallResponse)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.StreamingInputCallResponse)
    private static final io.grpc.testing.integration.Messages.StreamingInputCallResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.StreamingInputCallResponse();
    }

    public static io.grpc.testing.integration.Messages.StreamingInputCallResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StreamingInputCallResponse>
        PARSER = new com.google.protobuf.AbstractParser<StreamingInputCallResponse>() {
      public StreamingInputCallResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StreamingInputCallResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<StreamingInputCallResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StreamingInputCallResponse> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.StreamingInputCallResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ResponseParametersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.ResponseParameters)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Desired payload sizes in responses from the server.
     * </pre>
     *
     * <code>int32 size = 1;</code>
     */
    int getSize();

    /**
     * <pre>
     * Desired interval between consecutive responses in the response stream in
     * microseconds.
     * </pre>
     *
     * <code>int32 interval_us = 2;</code>
     */
    int getIntervalUs();

    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue compressed = 3;</code>
     */
    boolean hasCompressed();
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue compressed = 3;</code>
     */
    com.google.protobuf.BoolValue getCompressed();
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue compressed = 3;</code>
     */
    com.google.protobuf.BoolValueOrBuilder getCompressedOrBuilder();
  }
  /**
   * <pre>
   * Configuration for a particular response.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.ResponseParameters}
   */
  public  static final class ResponseParameters extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.ResponseParameters)
      ResponseParametersOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ResponseParameters.newBuilder() to construct.
    private ResponseParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ResponseParameters() {
      size_ = 0;
      intervalUs_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ResponseParameters(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              size_ = input.readInt32();
              break;
            }
            case 16: {

              intervalUs_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.BoolValue.Builder subBuilder = null;
              if (compressed_ != null) {
                subBuilder = compressed_.toBuilder();
              }
              compressed_ = input.readMessage(com.google.protobuf.BoolValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(compressed_);
                compressed_ = subBuilder.buildPartial();
              }

              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_ResponseParameters_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ResponseParameters_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.ResponseParameters.class, io.grpc.testing.integration.Messages.ResponseParameters.Builder.class);
    }

    public static final int SIZE_FIELD_NUMBER = 1;
    private int size_;
    /**
     * <pre>
     * Desired payload sizes in responses from the server.
     * </pre>
     *
     * <code>int32 size = 1;</code>
     */
    public int getSize() {
      return size_;
    }

    public static final int INTERVAL_US_FIELD_NUMBER = 2;
    private int intervalUs_;
    /**
     * <pre>
     * Desired interval between consecutive responses in the response stream in
     * microseconds.
     * </pre>
     *
     * <code>int32 interval_us = 2;</code>
     */
    public int getIntervalUs() {
      return intervalUs_;
    }

    public static final int COMPRESSED_FIELD_NUMBER = 3;
    private com.google.protobuf.BoolValue compressed_;
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue compressed = 3;</code>
     */
    public boolean hasCompressed() {
      return compressed_ != null;
    }
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue compressed = 3;</code>
     */
    public com.google.protobuf.BoolValue getCompressed() {
      return compressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : compressed_;
    }
    /**
     * <pre>
     * Whether to request the server to compress the response. This field is
     * "nullable" in order to interoperate seamlessly with clients not able to
     * implement the full compression tests by introspecting the call to verify
     * the response's compression status.
     * </pre>
     *
     * <code>.google.protobuf.BoolValue compressed = 3;</code>
     */
    public com.google.protobuf.BoolValueOrBuilder getCompressedOrBuilder() {
      return getCompressed();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (size_ != 0) {
        output.writeInt32(1, size_);
      }
      if (intervalUs_ != 0) {
        output.writeInt32(2, intervalUs_);
      }
      if (compressed_ != null) {
        output.writeMessage(3, getCompressed());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (size_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, size_);
      }
      if (intervalUs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, intervalUs_);
      }
      if (compressed_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getCompressed());
      }
      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 io.grpc.testing.integration.Messages.ResponseParameters)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.ResponseParameters other = (io.grpc.testing.integration.Messages.ResponseParameters) obj;

      boolean result = true;
      result = result && (getSize()
          == other.getSize());
      result = result && (getIntervalUs()
          == other.getIntervalUs());
      result = result && (hasCompressed() == other.hasCompressed());
      if (hasCompressed()) {
        result = result && getCompressed()
            .equals(other.getCompressed());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SIZE_FIELD_NUMBER;
      hash = (53 * hash) + getSize();
      hash = (37 * hash) + INTERVAL_US_FIELD_NUMBER;
      hash = (53 * hash) + getIntervalUs();
      if (hasCompressed()) {
        hash = (37 * hash) + COMPRESSED_FIELD_NUMBER;
        hash = (53 * hash) + getCompressed().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters 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 io.grpc.testing.integration.Messages.ResponseParameters parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters 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 io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ResponseParameters parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.ResponseParameters prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Configuration for a particular response.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.ResponseParameters}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.ResponseParameters)
        io.grpc.testing.integration.Messages.ResponseParametersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ResponseParameters_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ResponseParameters_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.ResponseParameters.class, io.grpc.testing.integration.Messages.ResponseParameters.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.ResponseParameters.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        size_ = 0;

        intervalUs_ = 0;

        if (compressedBuilder_ == null) {
          compressed_ = null;
        } else {
          compressed_ = null;
          compressedBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ResponseParameters_descriptor;
      }

      public io.grpc.testing.integration.Messages.ResponseParameters getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.ResponseParameters.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.ResponseParameters build() {
        io.grpc.testing.integration.Messages.ResponseParameters result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.ResponseParameters buildPartial() {
        io.grpc.testing.integration.Messages.ResponseParameters result = new io.grpc.testing.integration.Messages.ResponseParameters(this);
        result.size_ = size_;
        result.intervalUs_ = intervalUs_;
        if (compressedBuilder_ == null) {
          result.compressed_ = compressed_;
        } else {
          result.compressed_ = compressedBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.ResponseParameters) {
          return mergeFrom((io.grpc.testing.integration.Messages.ResponseParameters)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.ResponseParameters other) {
        if (other == io.grpc.testing.integration.Messages.ResponseParameters.getDefaultInstance()) return this;
        if (other.getSize() != 0) {
          setSize(other.getSize());
        }
        if (other.getIntervalUs() != 0) {
          setIntervalUs(other.getIntervalUs());
        }
        if (other.hasCompressed()) {
          mergeCompressed(other.getCompressed());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.ResponseParameters parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.ResponseParameters) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int size_ ;
      /**
       * <pre>
       * Desired payload sizes in responses from the server.
       * </pre>
       *
       * <code>int32 size = 1;</code>
       */
      public int getSize() {
        return size_;
      }
      /**
       * <pre>
       * Desired payload sizes in responses from the server.
       * </pre>
       *
       * <code>int32 size = 1;</code>
       */
      public Builder setSize(int value) {
        
        size_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Desired payload sizes in responses from the server.
       * </pre>
       *
       * <code>int32 size = 1;</code>
       */
      public Builder clearSize() {
        
        size_ = 0;
        onChanged();
        return this;
      }

      private int intervalUs_ ;
      /**
       * <pre>
       * Desired interval between consecutive responses in the response stream in
       * microseconds.
       * </pre>
       *
       * <code>int32 interval_us = 2;</code>
       */
      public int getIntervalUs() {
        return intervalUs_;
      }
      /**
       * <pre>
       * Desired interval between consecutive responses in the response stream in
       * microseconds.
       * </pre>
       *
       * <code>int32 interval_us = 2;</code>
       */
      public Builder setIntervalUs(int value) {
        
        intervalUs_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Desired interval between consecutive responses in the response stream in
       * microseconds.
       * </pre>
       *
       * <code>int32 interval_us = 2;</code>
       */
      public Builder clearIntervalUs() {
        
        intervalUs_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.BoolValue compressed_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> compressedBuilder_;
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public boolean hasCompressed() {
        return compressedBuilder_ != null || compressed_ != null;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public com.google.protobuf.BoolValue getCompressed() {
        if (compressedBuilder_ == null) {
          return compressed_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : compressed_;
        } else {
          return compressedBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public Builder setCompressed(com.google.protobuf.BoolValue value) {
        if (compressedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          compressed_ = value;
          onChanged();
        } else {
          compressedBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public Builder setCompressed(
          com.google.protobuf.BoolValue.Builder builderForValue) {
        if (compressedBuilder_ == null) {
          compressed_ = builderForValue.build();
          onChanged();
        } else {
          compressedBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public Builder mergeCompressed(com.google.protobuf.BoolValue value) {
        if (compressedBuilder_ == null) {
          if (compressed_ != null) {
            compressed_ =
              com.google.protobuf.BoolValue.newBuilder(compressed_).mergeFrom(value).buildPartial();
          } else {
            compressed_ = value;
          }
          onChanged();
        } else {
          compressedBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public Builder clearCompressed() {
        if (compressedBuilder_ == null) {
          compressed_ = null;
          onChanged();
        } else {
          compressed_ = null;
          compressedBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public com.google.protobuf.BoolValue.Builder getCompressedBuilder() {
        
        onChanged();
        return getCompressedFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      public com.google.protobuf.BoolValueOrBuilder getCompressedOrBuilder() {
        if (compressedBuilder_ != null) {
          return compressedBuilder_.getMessageOrBuilder();
        } else {
          return compressed_ == null ?
              com.google.protobuf.BoolValue.getDefaultInstance() : compressed_;
        }
      }
      /**
       * <pre>
       * Whether to request the server to compress the response. This field is
       * "nullable" in order to interoperate seamlessly with clients not able to
       * implement the full compression tests by introspecting the call to verify
       * the response's compression status.
       * </pre>
       *
       * <code>.google.protobuf.BoolValue compressed = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> 
          getCompressedFieldBuilder() {
        if (compressedBuilder_ == null) {
          compressedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>(
                  getCompressed(),
                  getParentForChildren(),
                  isClean());
          compressed_ = null;
        }
        return compressedBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.ResponseParameters)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.ResponseParameters)
    private static final io.grpc.testing.integration.Messages.ResponseParameters DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.ResponseParameters();
    }

    public static io.grpc.testing.integration.Messages.ResponseParameters getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ResponseParameters>
        PARSER = new com.google.protobuf.AbstractParser<ResponseParameters>() {
      public ResponseParameters parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ResponseParameters(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ResponseParameters> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResponseParameters> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.ResponseParameters getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamingOutputCallRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.StreamingOutputCallRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, the payload from each response in the stream
     * might be of different types. This is to simulate a mixed type of payload
     * stream.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    int getResponseTypeValue();
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, the payload from each response in the stream
     * might be of different types. This is to simulate a mixed type of payload
     * stream.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    io.grpc.testing.integration.Messages.PayloadType getResponseType();

    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    java.util.List<io.grpc.testing.integration.Messages.ResponseParameters> 
        getResponseParametersList();
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    io.grpc.testing.integration.Messages.ResponseParameters getResponseParameters(int index);
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    int getResponseParametersCount();
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    java.util.List<? extends io.grpc.testing.integration.Messages.ResponseParametersOrBuilder> 
        getResponseParametersOrBuilderList();
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    io.grpc.testing.integration.Messages.ResponseParametersOrBuilder getResponseParametersOrBuilder(
        int index);

    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    boolean hasPayload();
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    io.grpc.testing.integration.Messages.Payload getPayload();
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder();

    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    boolean hasResponseStatus();
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    io.grpc.testing.integration.Messages.EchoStatus getResponseStatus();
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    io.grpc.testing.integration.Messages.EchoStatusOrBuilder getResponseStatusOrBuilder();
  }
  /**
   * <pre>
   * Server-streaming request.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.StreamingOutputCallRequest}
   */
  public  static final class StreamingOutputCallRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.StreamingOutputCallRequest)
      StreamingOutputCallRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StreamingOutputCallRequest.newBuilder() to construct.
    private StreamingOutputCallRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StreamingOutputCallRequest() {
      responseType_ = 0;
      responseParameters_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StreamingOutputCallRequest(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              responseType_ = rawValue;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                responseParameters_ = new java.util.ArrayList<io.grpc.testing.integration.Messages.ResponseParameters>();
                mutable_bitField0_ |= 0x00000002;
              }
              responseParameters_.add(
                  input.readMessage(io.grpc.testing.integration.Messages.ResponseParameters.parser(), extensionRegistry));
              break;
            }
            case 26: {
              io.grpc.testing.integration.Messages.Payload.Builder subBuilder = null;
              if (payload_ != null) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(io.grpc.testing.integration.Messages.Payload.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }

              break;
            }
            case 58: {
              io.grpc.testing.integration.Messages.EchoStatus.Builder subBuilder = null;
              if (responseStatus_ != null) {
                subBuilder = responseStatus_.toBuilder();
              }
              responseStatus_ = input.readMessage(io.grpc.testing.integration.Messages.EchoStatus.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(responseStatus_);
                responseStatus_ = subBuilder.buildPartial();
              }

              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_ & 0x00000002) == 0x00000002)) {
          responseParameters_ = java.util.Collections.unmodifiableList(responseParameters_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.StreamingOutputCallRequest.class, io.grpc.testing.integration.Messages.StreamingOutputCallRequest.Builder.class);
    }

    private int bitField0_;
    public static final int RESPONSE_TYPE_FIELD_NUMBER = 1;
    private int responseType_;
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, the payload from each response in the stream
     * might be of different types. This is to simulate a mixed type of payload
     * stream.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    public int getResponseTypeValue() {
      return responseType_;
    }
    /**
     * <pre>
     * DEPRECATED, don't use. To be removed shortly.
     * Desired payload type in the response from the server.
     * If response_type is RANDOM, the payload from each response in the stream
     * might be of different types. This is to simulate a mixed type of payload
     * stream.
     * </pre>
     *
     * <code>.grpc.testing.PayloadType response_type = 1;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadType getResponseType() {
      io.grpc.testing.integration.Messages.PayloadType result = io.grpc.testing.integration.Messages.PayloadType.valueOf(responseType_);
      return result == null ? io.grpc.testing.integration.Messages.PayloadType.UNRECOGNIZED : result;
    }

    public static final int RESPONSE_PARAMETERS_FIELD_NUMBER = 2;
    private java.util.List<io.grpc.testing.integration.Messages.ResponseParameters> responseParameters_;
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    public java.util.List<io.grpc.testing.integration.Messages.ResponseParameters> getResponseParametersList() {
      return responseParameters_;
    }
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    public java.util.List<? extends io.grpc.testing.integration.Messages.ResponseParametersOrBuilder> 
        getResponseParametersOrBuilderList() {
      return responseParameters_;
    }
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    public int getResponseParametersCount() {
      return responseParameters_.size();
    }
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    public io.grpc.testing.integration.Messages.ResponseParameters getResponseParameters(int index) {
      return responseParameters_.get(index);
    }
    /**
     * <pre>
     * Configuration for each expected response message.
     * </pre>
     *
     * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
     */
    public io.grpc.testing.integration.Messages.ResponseParametersOrBuilder getResponseParametersOrBuilder(
        int index) {
      return responseParameters_.get(index);
    }

    public static final int PAYLOAD_FIELD_NUMBER = 3;
    private io.grpc.testing.integration.Messages.Payload payload_;
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    public boolean hasPayload() {
      return payload_ != null;
    }
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    public io.grpc.testing.integration.Messages.Payload getPayload() {
      return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
    }
    /**
     * <pre>
     * Optional input payload sent along with the request.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 3;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
      return getPayload();
    }

    public static final int RESPONSE_STATUS_FIELD_NUMBER = 7;
    private io.grpc.testing.integration.Messages.EchoStatus responseStatus_;
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    public boolean hasResponseStatus() {
      return responseStatus_ != null;
    }
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    public io.grpc.testing.integration.Messages.EchoStatus getResponseStatus() {
      return responseStatus_ == null ? io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance() : responseStatus_;
    }
    /**
     * <pre>
     * Whether server should return a given status
     * </pre>
     *
     * <code>.grpc.testing.EchoStatus response_status = 7;</code>
     */
    public io.grpc.testing.integration.Messages.EchoStatusOrBuilder getResponseStatusOrBuilder() {
      return getResponseStatus();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (responseType_ != io.grpc.testing.integration.Messages.PayloadType.COMPRESSABLE.getNumber()) {
        output.writeEnum(1, responseType_);
      }
      for (int i = 0; i < responseParameters_.size(); i++) {
        output.writeMessage(2, responseParameters_.get(i));
      }
      if (payload_ != null) {
        output.writeMessage(3, getPayload());
      }
      if (responseStatus_ != null) {
        output.writeMessage(7, getResponseStatus());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (responseType_ != io.grpc.testing.integration.Messages.PayloadType.COMPRESSABLE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, responseType_);
      }
      for (int i = 0; i < responseParameters_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, responseParameters_.get(i));
      }
      if (payload_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPayload());
      }
      if (responseStatus_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getResponseStatus());
      }
      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 io.grpc.testing.integration.Messages.StreamingOutputCallRequest)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.StreamingOutputCallRequest other = (io.grpc.testing.integration.Messages.StreamingOutputCallRequest) obj;

      boolean result = true;
      result = result && responseType_ == other.responseType_;
      result = result && getResponseParametersList()
          .equals(other.getResponseParametersList());
      result = result && (hasPayload() == other.hasPayload());
      if (hasPayload()) {
        result = result && getPayload()
            .equals(other.getPayload());
      }
      result = result && (hasResponseStatus() == other.hasResponseStatus());
      if (hasResponseStatus()) {
        result = result && getResponseStatus()
            .equals(other.getResponseStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + responseType_;
      if (getResponseParametersCount() > 0) {
        hash = (37 * hash) + RESPONSE_PARAMETERS_FIELD_NUMBER;
        hash = (53 * hash) + getResponseParametersList().hashCode();
      }
      if (hasPayload()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getPayload().hashCode();
      }
      if (hasResponseStatus()) {
        hash = (37 * hash) + RESPONSE_STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getResponseStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest 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 io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest 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 io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.StreamingOutputCallRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Server-streaming request.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.StreamingOutputCallRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.StreamingOutputCallRequest)
        io.grpc.testing.integration.Messages.StreamingOutputCallRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.StreamingOutputCallRequest.class, io.grpc.testing.integration.Messages.StreamingOutputCallRequest.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.StreamingOutputCallRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getResponseParametersFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        responseType_ = 0;

        if (responseParametersBuilder_ == null) {
          responseParameters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          responseParametersBuilder_.clear();
        }
        if (payloadBuilder_ == null) {
          payload_ = null;
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }
        if (responseStatusBuilder_ == null) {
          responseStatus_ = null;
        } else {
          responseStatus_ = null;
          responseStatusBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallRequest_descriptor;
      }

      public io.grpc.testing.integration.Messages.StreamingOutputCallRequest getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.StreamingOutputCallRequest.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.StreamingOutputCallRequest build() {
        io.grpc.testing.integration.Messages.StreamingOutputCallRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.StreamingOutputCallRequest buildPartial() {
        io.grpc.testing.integration.Messages.StreamingOutputCallRequest result = new io.grpc.testing.integration.Messages.StreamingOutputCallRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.responseType_ = responseType_;
        if (responseParametersBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            responseParameters_ = java.util.Collections.unmodifiableList(responseParameters_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.responseParameters_ = responseParameters_;
        } else {
          result.responseParameters_ = responseParametersBuilder_.build();
        }
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        if (responseStatusBuilder_ == null) {
          result.responseStatus_ = responseStatus_;
        } else {
          result.responseStatus_ = responseStatusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.StreamingOutputCallRequest) {
          return mergeFrom((io.grpc.testing.integration.Messages.StreamingOutputCallRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.StreamingOutputCallRequest other) {
        if (other == io.grpc.testing.integration.Messages.StreamingOutputCallRequest.getDefaultInstance()) return this;
        if (other.responseType_ != 0) {
          setResponseTypeValue(other.getResponseTypeValue());
        }
        if (responseParametersBuilder_ == null) {
          if (!other.responseParameters_.isEmpty()) {
            if (responseParameters_.isEmpty()) {
              responseParameters_ = other.responseParameters_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureResponseParametersIsMutable();
              responseParameters_.addAll(other.responseParameters_);
            }
            onChanged();
          }
        } else {
          if (!other.responseParameters_.isEmpty()) {
            if (responseParametersBuilder_.isEmpty()) {
              responseParametersBuilder_.dispose();
              responseParametersBuilder_ = null;
              responseParameters_ = other.responseParameters_;
              bitField0_ = (bitField0_ & ~0x00000002);
              responseParametersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getResponseParametersFieldBuilder() : null;
            } else {
              responseParametersBuilder_.addAllMessages(other.responseParameters_);
            }
          }
        }
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        if (other.hasResponseStatus()) {
          mergeResponseStatus(other.getResponseStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.StreamingOutputCallRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.StreamingOutputCallRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int responseType_ = 0;
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, the payload from each response in the stream
       * might be of different types. This is to simulate a mixed type of payload
       * stream.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public int getResponseTypeValue() {
        return responseType_;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, the payload from each response in the stream
       * might be of different types. This is to simulate a mixed type of payload
       * stream.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public Builder setResponseTypeValue(int value) {
        responseType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, the payload from each response in the stream
       * might be of different types. This is to simulate a mixed type of payload
       * stream.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadType getResponseType() {
        io.grpc.testing.integration.Messages.PayloadType result = io.grpc.testing.integration.Messages.PayloadType.valueOf(responseType_);
        return result == null ? io.grpc.testing.integration.Messages.PayloadType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, the payload from each response in the stream
       * might be of different types. This is to simulate a mixed type of payload
       * stream.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public Builder setResponseType(io.grpc.testing.integration.Messages.PayloadType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        responseType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * DEPRECATED, don't use. To be removed shortly.
       * Desired payload type in the response from the server.
       * If response_type is RANDOM, the payload from each response in the stream
       * might be of different types. This is to simulate a mixed type of payload
       * stream.
       * </pre>
       *
       * <code>.grpc.testing.PayloadType response_type = 1;</code>
       */
      public Builder clearResponseType() {
        
        responseType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<io.grpc.testing.integration.Messages.ResponseParameters> responseParameters_ =
        java.util.Collections.emptyList();
      private void ensureResponseParametersIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          responseParameters_ = new java.util.ArrayList<io.grpc.testing.integration.Messages.ResponseParameters>(responseParameters_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.grpc.testing.integration.Messages.ResponseParameters, io.grpc.testing.integration.Messages.ResponseParameters.Builder, io.grpc.testing.integration.Messages.ResponseParametersOrBuilder> responseParametersBuilder_;

      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public java.util.List<io.grpc.testing.integration.Messages.ResponseParameters> getResponseParametersList() {
        if (responseParametersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(responseParameters_);
        } else {
          return responseParametersBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public int getResponseParametersCount() {
        if (responseParametersBuilder_ == null) {
          return responseParameters_.size();
        } else {
          return responseParametersBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public io.grpc.testing.integration.Messages.ResponseParameters getResponseParameters(int index) {
        if (responseParametersBuilder_ == null) {
          return responseParameters_.get(index);
        } else {
          return responseParametersBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder setResponseParameters(
          int index, io.grpc.testing.integration.Messages.ResponseParameters value) {
        if (responseParametersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseParametersIsMutable();
          responseParameters_.set(index, value);
          onChanged();
        } else {
          responseParametersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder setResponseParameters(
          int index, io.grpc.testing.integration.Messages.ResponseParameters.Builder builderForValue) {
        if (responseParametersBuilder_ == null) {
          ensureResponseParametersIsMutable();
          responseParameters_.set(index, builderForValue.build());
          onChanged();
        } else {
          responseParametersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder addResponseParameters(io.grpc.testing.integration.Messages.ResponseParameters value) {
        if (responseParametersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseParametersIsMutable();
          responseParameters_.add(value);
          onChanged();
        } else {
          responseParametersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder addResponseParameters(
          int index, io.grpc.testing.integration.Messages.ResponseParameters value) {
        if (responseParametersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResponseParametersIsMutable();
          responseParameters_.add(index, value);
          onChanged();
        } else {
          responseParametersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder addResponseParameters(
          io.grpc.testing.integration.Messages.ResponseParameters.Builder builderForValue) {
        if (responseParametersBuilder_ == null) {
          ensureResponseParametersIsMutable();
          responseParameters_.add(builderForValue.build());
          onChanged();
        } else {
          responseParametersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder addResponseParameters(
          int index, io.grpc.testing.integration.Messages.ResponseParameters.Builder builderForValue) {
        if (responseParametersBuilder_ == null) {
          ensureResponseParametersIsMutable();
          responseParameters_.add(index, builderForValue.build());
          onChanged();
        } else {
          responseParametersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder addAllResponseParameters(
          java.lang.Iterable<? extends io.grpc.testing.integration.Messages.ResponseParameters> values) {
        if (responseParametersBuilder_ == null) {
          ensureResponseParametersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, responseParameters_);
          onChanged();
        } else {
          responseParametersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder clearResponseParameters() {
        if (responseParametersBuilder_ == null) {
          responseParameters_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          responseParametersBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public Builder removeResponseParameters(int index) {
        if (responseParametersBuilder_ == null) {
          ensureResponseParametersIsMutable();
          responseParameters_.remove(index);
          onChanged();
        } else {
          responseParametersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public io.grpc.testing.integration.Messages.ResponseParameters.Builder getResponseParametersBuilder(
          int index) {
        return getResponseParametersFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public io.grpc.testing.integration.Messages.ResponseParametersOrBuilder getResponseParametersOrBuilder(
          int index) {
        if (responseParametersBuilder_ == null) {
          return responseParameters_.get(index);  } else {
          return responseParametersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public java.util.List<? extends io.grpc.testing.integration.Messages.ResponseParametersOrBuilder> 
           getResponseParametersOrBuilderList() {
        if (responseParametersBuilder_ != null) {
          return responseParametersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(responseParameters_);
        }
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public io.grpc.testing.integration.Messages.ResponseParameters.Builder addResponseParametersBuilder() {
        return getResponseParametersFieldBuilder().addBuilder(
            io.grpc.testing.integration.Messages.ResponseParameters.getDefaultInstance());
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public io.grpc.testing.integration.Messages.ResponseParameters.Builder addResponseParametersBuilder(
          int index) {
        return getResponseParametersFieldBuilder().addBuilder(
            index, io.grpc.testing.integration.Messages.ResponseParameters.getDefaultInstance());
      }
      /**
       * <pre>
       * Configuration for each expected response message.
       * </pre>
       *
       * <code>repeated .grpc.testing.ResponseParameters response_parameters = 2;</code>
       */
      public java.util.List<io.grpc.testing.integration.Messages.ResponseParameters.Builder> 
           getResponseParametersBuilderList() {
        return getResponseParametersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.grpc.testing.integration.Messages.ResponseParameters, io.grpc.testing.integration.Messages.ResponseParameters.Builder, io.grpc.testing.integration.Messages.ResponseParametersOrBuilder> 
          getResponseParametersFieldBuilder() {
        if (responseParametersBuilder_ == null) {
          responseParametersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.grpc.testing.integration.Messages.ResponseParameters, io.grpc.testing.integration.Messages.ResponseParameters.Builder, io.grpc.testing.integration.Messages.ResponseParametersOrBuilder>(
                  responseParameters_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          responseParameters_ = null;
        }
        return responseParametersBuilder_;
      }

      private io.grpc.testing.integration.Messages.Payload payload_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public boolean hasPayload() {
        return payloadBuilder_ != null || payload_ != null;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public io.grpc.testing.integration.Messages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder setPayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder setPayload(
          io.grpc.testing.integration.Messages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder mergePayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (payload_ != null) {
            payload_ =
              io.grpc.testing.integration.Messages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = null;
          onChanged();
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public io.grpc.testing.integration.Messages.Payload.Builder getPayloadBuilder() {
        
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_ == null ?
              io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        }
      }
      /**
       * <pre>
       * Optional input payload sent along with the request.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder>(
                  getPayload(),
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      private io.grpc.testing.integration.Messages.EchoStatus responseStatus_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.EchoStatus, io.grpc.testing.integration.Messages.EchoStatus.Builder, io.grpc.testing.integration.Messages.EchoStatusOrBuilder> responseStatusBuilder_;
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public boolean hasResponseStatus() {
        return responseStatusBuilder_ != null || responseStatus_ != null;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public io.grpc.testing.integration.Messages.EchoStatus getResponseStatus() {
        if (responseStatusBuilder_ == null) {
          return responseStatus_ == null ? io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance() : responseStatus_;
        } else {
          return responseStatusBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder setResponseStatus(io.grpc.testing.integration.Messages.EchoStatus value) {
        if (responseStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          responseStatus_ = value;
          onChanged();
        } else {
          responseStatusBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder setResponseStatus(
          io.grpc.testing.integration.Messages.EchoStatus.Builder builderForValue) {
        if (responseStatusBuilder_ == null) {
          responseStatus_ = builderForValue.build();
          onChanged();
        } else {
          responseStatusBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder mergeResponseStatus(io.grpc.testing.integration.Messages.EchoStatus value) {
        if (responseStatusBuilder_ == null) {
          if (responseStatus_ != null) {
            responseStatus_ =
              io.grpc.testing.integration.Messages.EchoStatus.newBuilder(responseStatus_).mergeFrom(value).buildPartial();
          } else {
            responseStatus_ = value;
          }
          onChanged();
        } else {
          responseStatusBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public Builder clearResponseStatus() {
        if (responseStatusBuilder_ == null) {
          responseStatus_ = null;
          onChanged();
        } else {
          responseStatus_ = null;
          responseStatusBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public io.grpc.testing.integration.Messages.EchoStatus.Builder getResponseStatusBuilder() {
        
        onChanged();
        return getResponseStatusFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      public io.grpc.testing.integration.Messages.EchoStatusOrBuilder getResponseStatusOrBuilder() {
        if (responseStatusBuilder_ != null) {
          return responseStatusBuilder_.getMessageOrBuilder();
        } else {
          return responseStatus_ == null ?
              io.grpc.testing.integration.Messages.EchoStatus.getDefaultInstance() : responseStatus_;
        }
      }
      /**
       * <pre>
       * Whether server should return a given status
       * </pre>
       *
       * <code>.grpc.testing.EchoStatus response_status = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.EchoStatus, io.grpc.testing.integration.Messages.EchoStatus.Builder, io.grpc.testing.integration.Messages.EchoStatusOrBuilder> 
          getResponseStatusFieldBuilder() {
        if (responseStatusBuilder_ == null) {
          responseStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.EchoStatus, io.grpc.testing.integration.Messages.EchoStatus.Builder, io.grpc.testing.integration.Messages.EchoStatusOrBuilder>(
                  getResponseStatus(),
                  getParentForChildren(),
                  isClean());
          responseStatus_ = null;
        }
        return responseStatusBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.StreamingOutputCallRequest)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.StreamingOutputCallRequest)
    private static final io.grpc.testing.integration.Messages.StreamingOutputCallRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.StreamingOutputCallRequest();
    }

    public static io.grpc.testing.integration.Messages.StreamingOutputCallRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StreamingOutputCallRequest>
        PARSER = new com.google.protobuf.AbstractParser<StreamingOutputCallRequest>() {
      public StreamingOutputCallRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StreamingOutputCallRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<StreamingOutputCallRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StreamingOutputCallRequest> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.StreamingOutputCallRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StreamingOutputCallResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.StreamingOutputCallResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * Payload to increase response size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    boolean hasPayload();
    /**
     * <pre>
     * Payload to increase response size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    io.grpc.testing.integration.Messages.Payload getPayload();
    /**
     * <pre>
     * Payload to increase response size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder();
  }
  /**
   * <pre>
   * Server-streaming response, as configured by the request and parameters.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.StreamingOutputCallResponse}
   */
  public  static final class StreamingOutputCallResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.StreamingOutputCallResponse)
      StreamingOutputCallResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StreamingOutputCallResponse.newBuilder() to construct.
    private StreamingOutputCallResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StreamingOutputCallResponse() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StreamingOutputCallResponse(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              io.grpc.testing.integration.Messages.Payload.Builder subBuilder = null;
              if (payload_ != null) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(io.grpc.testing.integration.Messages.Payload.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }

              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.StreamingOutputCallResponse.class, io.grpc.testing.integration.Messages.StreamingOutputCallResponse.Builder.class);
    }

    public static final int PAYLOAD_FIELD_NUMBER = 1;
    private io.grpc.testing.integration.Messages.Payload payload_;
    /**
     * <pre>
     * Payload to increase response size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public boolean hasPayload() {
      return payload_ != null;
    }
    /**
     * <pre>
     * Payload to increase response size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public io.grpc.testing.integration.Messages.Payload getPayload() {
      return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
    }
    /**
     * <pre>
     * Payload to increase response size.
     * </pre>
     *
     * <code>.grpc.testing.Payload payload = 1;</code>
     */
    public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
      return getPayload();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (payload_ != null) {
        output.writeMessage(1, getPayload());
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (payload_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getPayload());
      }
      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 io.grpc.testing.integration.Messages.StreamingOutputCallResponse)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.StreamingOutputCallResponse other = (io.grpc.testing.integration.Messages.StreamingOutputCallResponse) obj;

      boolean result = true;
      result = result && (hasPayload() == other.hasPayload());
      if (hasPayload()) {
        result = result && getPayload()
            .equals(other.getPayload());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPayload()) {
        hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
        hash = (53 * hash) + getPayload().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse 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 io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse 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 io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.StreamingOutputCallResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * Server-streaming response, as configured by the request and parameters.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.StreamingOutputCallResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.StreamingOutputCallResponse)
        io.grpc.testing.integration.Messages.StreamingOutputCallResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.StreamingOutputCallResponse.class, io.grpc.testing.integration.Messages.StreamingOutputCallResponse.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.StreamingOutputCallResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (payloadBuilder_ == null) {
          payload_ = null;
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_StreamingOutputCallResponse_descriptor;
      }

      public io.grpc.testing.integration.Messages.StreamingOutputCallResponse getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.StreamingOutputCallResponse.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.StreamingOutputCallResponse build() {
        io.grpc.testing.integration.Messages.StreamingOutputCallResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.StreamingOutputCallResponse buildPartial() {
        io.grpc.testing.integration.Messages.StreamingOutputCallResponse result = new io.grpc.testing.integration.Messages.StreamingOutputCallResponse(this);
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.StreamingOutputCallResponse) {
          return mergeFrom((io.grpc.testing.integration.Messages.StreamingOutputCallResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.StreamingOutputCallResponse other) {
        if (other == io.grpc.testing.integration.Messages.StreamingOutputCallResponse.getDefaultInstance()) return this;
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.StreamingOutputCallResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.StreamingOutputCallResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.grpc.testing.integration.Messages.Payload payload_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public boolean hasPayload() {
        return payloadBuilder_ != null || payload_ != null;
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_ == null ? io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder setPayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder setPayload(
          io.grpc.testing.integration.Messages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder mergePayload(io.grpc.testing.integration.Messages.Payload value) {
        if (payloadBuilder_ == null) {
          if (payload_ != null) {
            payload_ =
              io.grpc.testing.integration.Messages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = null;
          onChanged();
        } else {
          payload_ = null;
          payloadBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.Payload.Builder getPayloadBuilder() {
        
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      public io.grpc.testing.integration.Messages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_ == null ?
              io.grpc.testing.integration.Messages.Payload.getDefaultInstance() : payload_;
        }
      }
      /**
       * <pre>
       * Payload to increase response size.
       * </pre>
       *
       * <code>.grpc.testing.Payload payload = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.grpc.testing.integration.Messages.Payload, io.grpc.testing.integration.Messages.Payload.Builder, io.grpc.testing.integration.Messages.PayloadOrBuilder>(
                  getPayload(),
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.StreamingOutputCallResponse)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.StreamingOutputCallResponse)
    private static final io.grpc.testing.integration.Messages.StreamingOutputCallResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.StreamingOutputCallResponse();
    }

    public static io.grpc.testing.integration.Messages.StreamingOutputCallResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<StreamingOutputCallResponse>
        PARSER = new com.google.protobuf.AbstractParser<StreamingOutputCallResponse>() {
      public StreamingOutputCallResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new StreamingOutputCallResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<StreamingOutputCallResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StreamingOutputCallResponse> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.StreamingOutputCallResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReconnectParamsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.ReconnectParams)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 max_reconnect_backoff_ms = 1;</code>
     */
    int getMaxReconnectBackoffMs();
  }
  /**
   * <pre>
   * For reconnect interop test only.
   * Client tells server what reconnection parameters it used.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.ReconnectParams}
   */
  public  static final class ReconnectParams extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.ReconnectParams)
      ReconnectParamsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReconnectParams.newBuilder() to construct.
    private ReconnectParams(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReconnectParams() {
      maxReconnectBackoffMs_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ReconnectParams(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              maxReconnectBackoffMs_ = input.readInt32();
              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 io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectParams_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectParams_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.ReconnectParams.class, io.grpc.testing.integration.Messages.ReconnectParams.Builder.class);
    }

    public static final int MAX_RECONNECT_BACKOFF_MS_FIELD_NUMBER = 1;
    private int maxReconnectBackoffMs_;
    /**
     * <code>int32 max_reconnect_backoff_ms = 1;</code>
     */
    public int getMaxReconnectBackoffMs() {
      return maxReconnectBackoffMs_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (maxReconnectBackoffMs_ != 0) {
        output.writeInt32(1, maxReconnectBackoffMs_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (maxReconnectBackoffMs_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, maxReconnectBackoffMs_);
      }
      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 io.grpc.testing.integration.Messages.ReconnectParams)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.ReconnectParams other = (io.grpc.testing.integration.Messages.ReconnectParams) obj;

      boolean result = true;
      result = result && (getMaxReconnectBackoffMs()
          == other.getMaxReconnectBackoffMs());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MAX_RECONNECT_BACKOFF_MS_FIELD_NUMBER;
      hash = (53 * hash) + getMaxReconnectBackoffMs();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams 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 io.grpc.testing.integration.Messages.ReconnectParams parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams 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 io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ReconnectParams parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.ReconnectParams prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * For reconnect interop test only.
     * Client tells server what reconnection parameters it used.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.ReconnectParams}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.ReconnectParams)
        io.grpc.testing.integration.Messages.ReconnectParamsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectParams_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectParams_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.ReconnectParams.class, io.grpc.testing.integration.Messages.ReconnectParams.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.ReconnectParams.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        maxReconnectBackoffMs_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectParams_descriptor;
      }

      public io.grpc.testing.integration.Messages.ReconnectParams getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.ReconnectParams.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.ReconnectParams build() {
        io.grpc.testing.integration.Messages.ReconnectParams result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.ReconnectParams buildPartial() {
        io.grpc.testing.integration.Messages.ReconnectParams result = new io.grpc.testing.integration.Messages.ReconnectParams(this);
        result.maxReconnectBackoffMs_ = maxReconnectBackoffMs_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.ReconnectParams) {
          return mergeFrom((io.grpc.testing.integration.Messages.ReconnectParams)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.ReconnectParams other) {
        if (other == io.grpc.testing.integration.Messages.ReconnectParams.getDefaultInstance()) return this;
        if (other.getMaxReconnectBackoffMs() != 0) {
          setMaxReconnectBackoffMs(other.getMaxReconnectBackoffMs());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.ReconnectParams parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.ReconnectParams) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int maxReconnectBackoffMs_ ;
      /**
       * <code>int32 max_reconnect_backoff_ms = 1;</code>
       */
      public int getMaxReconnectBackoffMs() {
        return maxReconnectBackoffMs_;
      }
      /**
       * <code>int32 max_reconnect_backoff_ms = 1;</code>
       */
      public Builder setMaxReconnectBackoffMs(int value) {
        
        maxReconnectBackoffMs_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 max_reconnect_backoff_ms = 1;</code>
       */
      public Builder clearMaxReconnectBackoffMs() {
        
        maxReconnectBackoffMs_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.ReconnectParams)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.ReconnectParams)
    private static final io.grpc.testing.integration.Messages.ReconnectParams DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.ReconnectParams();
    }

    public static io.grpc.testing.integration.Messages.ReconnectParams getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ReconnectParams>
        PARSER = new com.google.protobuf.AbstractParser<ReconnectParams>() {
      public ReconnectParams parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReconnectParams(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ReconnectParams> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReconnectParams> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.ReconnectParams getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReconnectInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:grpc.testing.ReconnectInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool passed = 1;</code>
     */
    boolean getPassed();

    /**
     * <code>repeated int32 backoff_ms = 2;</code>
     */
    java.util.List<java.lang.Integer> getBackoffMsList();
    /**
     * <code>repeated int32 backoff_ms = 2;</code>
     */
    int getBackoffMsCount();
    /**
     * <code>repeated int32 backoff_ms = 2;</code>
     */
    int getBackoffMs(int index);
  }
  /**
   * <pre>
   * For reconnect interop test only.
   * Server tells client whether its reconnects are following the spec and the
   * reconnect backoffs it saw.
   * </pre>
   *
   * Protobuf type {@code grpc.testing.ReconnectInfo}
   */
  public  static final class ReconnectInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:grpc.testing.ReconnectInfo)
      ReconnectInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReconnectInfo.newBuilder() to construct.
    private ReconnectInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReconnectInfo() {
      passed_ = false;
      backoffMs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ReconnectInfo(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              passed_ = input.readBool();
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                backoffMs_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000002;
              }
              backoffMs_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                backoffMs_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                backoffMs_.add(input.readInt32());
              }
              input.popLimit(limit);
              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_ & 0x00000002) == 0x00000002)) {
          backoffMs_ = java.util.Collections.unmodifiableList(backoffMs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.grpc.testing.integration.Messages.ReconnectInfo.class, io.grpc.testing.integration.Messages.ReconnectInfo.Builder.class);
    }

    private int bitField0_;
    public static final int PASSED_FIELD_NUMBER = 1;
    private boolean passed_;
    /**
     * <code>bool passed = 1;</code>
     */
    public boolean getPassed() {
      return passed_;
    }

    public static final int BACKOFF_MS_FIELD_NUMBER = 2;
    private java.util.List<java.lang.Integer> backoffMs_;
    /**
     * <code>repeated int32 backoff_ms = 2;</code>
     */
    public java.util.List<java.lang.Integer>
        getBackoffMsList() {
      return backoffMs_;
    }
    /**
     * <code>repeated int32 backoff_ms = 2;</code>
     */
    public int getBackoffMsCount() {
      return backoffMs_.size();
    }
    /**
     * <code>repeated int32 backoff_ms = 2;</code>
     */
    public int getBackoffMs(int index) {
      return backoffMs_.get(index);
    }
    private int backoffMsMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (passed_ != false) {
        output.writeBool(1, passed_);
      }
      if (getBackoffMsList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(backoffMsMemoizedSerializedSize);
      }
      for (int i = 0; i < backoffMs_.size(); i++) {
        output.writeInt32NoTag(backoffMs_.get(i));
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (passed_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, passed_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < backoffMs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(backoffMs_.get(i));
        }
        size += dataSize;
        if (!getBackoffMsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        backoffMsMemoizedSerializedSize = 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 io.grpc.testing.integration.Messages.ReconnectInfo)) {
        return super.equals(obj);
      }
      io.grpc.testing.integration.Messages.ReconnectInfo other = (io.grpc.testing.integration.Messages.ReconnectInfo) obj;

      boolean result = true;
      result = result && (getPassed()
          == other.getPassed());
      result = result && getBackoffMsList()
          .equals(other.getBackoffMsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PASSED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPassed());
      if (getBackoffMsCount() > 0) {
        hash = (37 * hash) + BACKOFF_MS_FIELD_NUMBER;
        hash = (53 * hash) + getBackoffMsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo 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 io.grpc.testing.integration.Messages.ReconnectInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo 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 io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.grpc.testing.integration.Messages.ReconnectInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(io.grpc.testing.integration.Messages.ReconnectInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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>
     * For reconnect interop test only.
     * Server tells client whether its reconnects are following the spec and the
     * reconnect backoffs it saw.
     * </pre>
     *
     * Protobuf type {@code grpc.testing.ReconnectInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:grpc.testing.ReconnectInfo)
        io.grpc.testing.integration.Messages.ReconnectInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.grpc.testing.integration.Messages.ReconnectInfo.class, io.grpc.testing.integration.Messages.ReconnectInfo.Builder.class);
      }

      // Construct using io.grpc.testing.integration.Messages.ReconnectInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        passed_ = false;

        backoffMs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return io.grpc.testing.integration.Messages.internal_static_grpc_testing_ReconnectInfo_descriptor;
      }

      public io.grpc.testing.integration.Messages.ReconnectInfo getDefaultInstanceForType() {
        return io.grpc.testing.integration.Messages.ReconnectInfo.getDefaultInstance();
      }

      public io.grpc.testing.integration.Messages.ReconnectInfo build() {
        io.grpc.testing.integration.Messages.ReconnectInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public io.grpc.testing.integration.Messages.ReconnectInfo buildPartial() {
        io.grpc.testing.integration.Messages.ReconnectInfo result = new io.grpc.testing.integration.Messages.ReconnectInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.passed_ = passed_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          backoffMs_ = java.util.Collections.unmodifiableList(backoffMs_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.backoffMs_ = backoffMs_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.grpc.testing.integration.Messages.ReconnectInfo) {
          return mergeFrom((io.grpc.testing.integration.Messages.ReconnectInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.grpc.testing.integration.Messages.ReconnectInfo other) {
        if (other == io.grpc.testing.integration.Messages.ReconnectInfo.getDefaultInstance()) return this;
        if (other.getPassed() != false) {
          setPassed(other.getPassed());
        }
        if (!other.backoffMs_.isEmpty()) {
          if (backoffMs_.isEmpty()) {
            backoffMs_ = other.backoffMs_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureBackoffMsIsMutable();
            backoffMs_.addAll(other.backoffMs_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.grpc.testing.integration.Messages.ReconnectInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.grpc.testing.integration.Messages.ReconnectInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean passed_ ;
      /**
       * <code>bool passed = 1;</code>
       */
      public boolean getPassed() {
        return passed_;
      }
      /**
       * <code>bool passed = 1;</code>
       */
      public Builder setPassed(boolean value) {
        
        passed_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool passed = 1;</code>
       */
      public Builder clearPassed() {
        
        passed_ = false;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> backoffMs_ = java.util.Collections.emptyList();
      private void ensureBackoffMsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          backoffMs_ = new java.util.ArrayList<java.lang.Integer>(backoffMs_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public java.util.List<java.lang.Integer>
          getBackoffMsList() {
        return java.util.Collections.unmodifiableList(backoffMs_);
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public int getBackoffMsCount() {
        return backoffMs_.size();
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public int getBackoffMs(int index) {
        return backoffMs_.get(index);
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public Builder setBackoffMs(
          int index, int value) {
        ensureBackoffMsIsMutable();
        backoffMs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public Builder addBackoffMs(int value) {
        ensureBackoffMsIsMutable();
        backoffMs_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public Builder addAllBackoffMs(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureBackoffMsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, backoffMs_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 backoff_ms = 2;</code>
       */
      public Builder clearBackoffMs() {
        backoffMs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:grpc.testing.ReconnectInfo)
    }

    // @@protoc_insertion_point(class_scope:grpc.testing.ReconnectInfo)
    private static final io.grpc.testing.integration.Messages.ReconnectInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new io.grpc.testing.integration.Messages.ReconnectInfo();
    }

    public static io.grpc.testing.integration.Messages.ReconnectInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ReconnectInfo>
        PARSER = new com.google.protobuf.AbstractParser<ReconnectInfo>() {
      public ReconnectInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReconnectInfo(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ReconnectInfo> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReconnectInfo> getParserForType() {
      return PARSER;
    }

    public io.grpc.testing.integration.Messages.ReconnectInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_Payload_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_Payload_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_EchoStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_EchoStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_SimpleRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_SimpleRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_SimpleResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_SimpleResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_SimpleContext_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_SimpleContext_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_StreamingInputCallRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_StreamingInputCallRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_StreamingInputCallResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_StreamingInputCallResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_ResponseParameters_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_ResponseParameters_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_StreamingOutputCallRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_StreamingOutputCallRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_StreamingOutputCallResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_StreamingOutputCallResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_ReconnectParams_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_ReconnectParams_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_grpc_testing_ReconnectInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_grpc_testing_ReconnectInfo_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*io/grpc/testing/integration/messages.p" +
      "roto\022\014grpc.testing\032\036google/protobuf/wrap" +
      "pers.proto\"@\n\007Payload\022\'\n\004type\030\001 \001(\0162\031.gr" +
      "pc.testing.PayloadType\022\014\n\004body\030\002 \001(\014\"+\n\n" +
      "EchoStatus\022\014\n\004code\030\001 \001(\005\022\017\n\007message\030\002 \001(" +
      "\t\"\324\002\n\rSimpleRequest\0220\n\rresponse_type\030\001 \001" +
      "(\0162\031.grpc.testing.PayloadType\022\025\n\rrespons" +
      "e_size\030\002 \001(\005\022&\n\007payload\030\003 \001(\0132\025.grpc.tes" +
      "ting.Payload\022\025\n\rfill_username\030\004 \001(\010\022\030\n\020f" +
      "ill_oauth_scope\030\005 \001(\010\0227\n\023response_compre" +
      "ssed\030\006 \001(\0132\032.google.protobuf.BoolValue\0221" +
      "\n\017response_status\030\007 \001(\0132\030.grpc.testing.E" +
      "choStatus\0225\n\021expect_compressed\030\010 \001(\0132\032.g" +
      "oogle.protobuf.BoolValue\"_\n\016SimpleRespon" +
      "se\022&\n\007payload\030\001 \001(\0132\025.grpc.testing.Paylo" +
      "ad\022\020\n\010username\030\002 \001(\t\022\023\n\013oauth_scope\030\003 \001(" +
      "\t\"\036\n\rSimpleContext\022\r\n\005value\030\001 \001(\t\"z\n\031Str" +
      "eamingInputCallRequest\022&\n\007payload\030\001 \001(\0132" +
      "\025.grpc.testing.Payload\0225\n\021expect_compres" +
      "sed\030\002 \001(\0132\032.google.protobuf.BoolValue\"=\n" +
      "\032StreamingInputCallResponse\022\037\n\027aggregate" +
      "d_payload_size\030\001 \001(\005\"g\n\022ResponseParamete" +
      "rs\022\014\n\004size\030\001 \001(\005\022\023\n\013interval_us\030\002 \001(\005\022.\n" +
      "\ncompressed\030\003 \001(\0132\032.google.protobuf.Bool" +
      "Value\"\350\001\n\032StreamingOutputCallRequest\0220\n\r" +
      "response_type\030\001 \001(\0162\031.grpc.testing.Paylo" +
      "adType\022=\n\023response_parameters\030\002 \003(\0132 .gr" +
      "pc.testing.ResponseParameters\022&\n\007payload" +
      "\030\003 \001(\0132\025.grpc.testing.Payload\0221\n\017respons" +
      "e_status\030\007 \001(\0132\030.grpc.testing.EchoStatus" +
      "\"E\n\033StreamingOutputCallResponse\022&\n\007paylo" +
      "ad\030\001 \001(\0132\025.grpc.testing.Payload\"3\n\017Recon" +
      "nectParams\022 \n\030max_reconnect_backoff_ms\030\001" +
      " \001(\005\"3\n\rReconnectInfo\022\016\n\006passed\030\001 \001(\010\022\022\n" +
      "\nbackoff_ms\030\002 \003(\005*?\n\013PayloadType\022\020\n\014COMP" +
      "RESSABLE\020\000\022\022\n\016UNCOMPRESSABLE\020\001\022\n\n\006RANDOM" +
      "\020\002B\035\n\033io.grpc.testing.integrationb\006proto" +
      "3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.WrappersProto.getDescriptor(),
        }, assigner);
    internal_static_grpc_testing_Payload_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_grpc_testing_Payload_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_Payload_descriptor,
        new java.lang.String[] { "Type", "Body", });
    internal_static_grpc_testing_EchoStatus_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_grpc_testing_EchoStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_EchoStatus_descriptor,
        new java.lang.String[] { "Code", "Message", });
    internal_static_grpc_testing_SimpleRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_grpc_testing_SimpleRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_SimpleRequest_descriptor,
        new java.lang.String[] { "ResponseType", "ResponseSize", "Payload", "FillUsername", "FillOauthScope", "ResponseCompressed", "ResponseStatus", "ExpectCompressed", });
    internal_static_grpc_testing_SimpleResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_grpc_testing_SimpleResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_SimpleResponse_descriptor,
        new java.lang.String[] { "Payload", "Username", "OauthScope", });
    internal_static_grpc_testing_SimpleContext_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_grpc_testing_SimpleContext_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_SimpleContext_descriptor,
        new java.lang.String[] { "Value", });
    internal_static_grpc_testing_StreamingInputCallRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_grpc_testing_StreamingInputCallRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_StreamingInputCallRequest_descriptor,
        new java.lang.String[] { "Payload", "ExpectCompressed", });
    internal_static_grpc_testing_StreamingInputCallResponse_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_grpc_testing_StreamingInputCallResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_StreamingInputCallResponse_descriptor,
        new java.lang.String[] { "AggregatedPayloadSize", });
    internal_static_grpc_testing_ResponseParameters_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_grpc_testing_ResponseParameters_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_ResponseParameters_descriptor,
        new java.lang.String[] { "Size", "IntervalUs", "Compressed", });
    internal_static_grpc_testing_StreamingOutputCallRequest_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_grpc_testing_StreamingOutputCallRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_StreamingOutputCallRequest_descriptor,
        new java.lang.String[] { "ResponseType", "ResponseParameters", "Payload", "ResponseStatus", });
    internal_static_grpc_testing_StreamingOutputCallResponse_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_grpc_testing_StreamingOutputCallResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_StreamingOutputCallResponse_descriptor,
        new java.lang.String[] { "Payload", });
    internal_static_grpc_testing_ReconnectParams_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_grpc_testing_ReconnectParams_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_ReconnectParams_descriptor,
        new java.lang.String[] { "MaxReconnectBackoffMs", });
    internal_static_grpc_testing_ReconnectInfo_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_grpc_testing_ReconnectInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_grpc_testing_ReconnectInfo_descriptor,
        new java.lang.String[] { "Passed", "BackoffMs", });
    com.google.protobuf.WrappersProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
